Re: [PATCH v2 3/3] paravirt: rename paravirt_enabled to paravirt_legacy

From: Andy Lutomirski
Date: Wed Feb 17 2016 - 17:19:17 EST


On Wed, Feb 17, 2016 at 2:03 PM, Borislav Petkov <bp@xxxxxxxxx> wrote:
> On Wed, Feb 17, 2016 at 04:21:56PM -0500, Boris Ostrovsky wrote:
>> That's exactly the point: if something is mapped it's an error for a
>> non-PV kernel.
>
> How would something be mapped there? __PAGE_OFFSET is
> 0xffff880000000000.
>
> Or are you thinking about some insanely b0rked kernel code mapping stuff
> in there?
>
>> By removing paravirt_enabled() we may miss those errors. Worse, I think we
>> may even crash while doing pagetable walk (although it's probably better to
>> crash here than to use an unexpected translation in real code somewhere)
>
> Well, if this is the only site which keeps paravirt_enabled() from being
> buried, we need to think about a better way to detect a hypervisor.
> Maybe we should look at x86_hyper, use CPUID(0x4...) or something else.
>
> What's your preference?

I'm confused. Isn't it the other way around? That is, checking for
the hypervisor range on all systems should be safer, right? Or am I
missing something?

--Andy