vmm: x86: allow guests to poke MSR_IA32_PRED_CMD (XCC)
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 22 Aug 2019 18:40:53 +0000 (14:40 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 22 Aug 2019 18:46:06 +0000 (14:46 -0400)
commit446203ffe66fef5a6674e86162609e5dec4795d5
tree78a84a57e5e961f33fd8fd89de31ec260bf90ab2
parenta06b628eed86ae8cbd60ac0d7277285613bd22c4
vmm: x86: allow guests to poke MSR_IA32_PRED_CMD (XCC)

This is the Indirect Branch Predictor Barrier (IBPB).  Writing to it
similar to a cache flush, in that there are no effects or settings that
persist in the processor, such that we would be worried about letting
the guest use the same MSR as the kernel.

Guests who detect support for IBPB in CPUID may try and use this MSR on
context switches.  Letting them do so is harmless.  In the future, if we
decide to pretend to be a different processor or otherwise lie about
CPUID values, then this would be a mechanism for guests to detect IBPB
support.

Reinstall your kernel headers if you want to use the MSRs from
userspace, such as in vmxmsr.c.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/arch/x86/ros/msr-index.h
kern/arch/x86/vmm/intel/vmx.c