Re: [PATCH] prctl,x86 Add PR_[GET|SET]_CPUID for controlling the CPUID instruction.

From: Andy Lutomirski
Date: Wed Sep 14 2016 - 14:52:43 EST


On Tue, Sep 13, 2016 at 11:13 PM, Kyle Huey <me@xxxxxxxxxxxx> wrote:
> On Mon, Sep 12, 2016 at 9:56 AM, Andy Lutomirski <luto@xxxxxxxxxxxxxx> wrote:
>> You should explicitly check that, if the
>> feature is set under Xen PV, then the MSR actually works as
>> advertised. This may require talking to the Xen folks to make sure
>> you're testing the right configuration.
>
> This is interesting. When running under Xen PV the kernel is allowed
> to read the real value of MSR_PLATFORM_INFO and see that CPUID
> faulting is supported. But as you suggested, writing to
> MSR_MISC_FEATURES_ENABLES doesn't actually enable CPUID faulting, at
> least not in any way that works.
>
> It's not obvious to me how to test this, because when this feature
> works, CPUID only faults in userspace, not in the kernel. Is there
> existing code somewhere that runs tests like this in userspace?
>

Andrew, Boris: should we expect Xen PV to do anything sensible when we
write to MSR_PLATFORM_INFO to turn on CPUID faulting? Should the Xen
PV rdmsr hooks or perhaps the hypervisor mask out the feature if it
isn't going to be supported?

--Andy