x86/msr: introduce struct msr_vcpu_policy
authorSergey Dyasli <sergey.dyasli@citrix.com>
Mon, 25 Sep 2017 08:54:09 +0000 (10:54 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 25 Sep 2017 08:54:09 +0000 (10:54 +0200)
commit4187f79dc7184d90a1aa7a0439ccee2bc25355c2
tree42e9b96014345b5f04b7739971a1c6a37a77eb03
parent4098b092e1902de9925342a527f8173cdb376426
x86/msr: introduce struct msr_vcpu_policy

The new structure contains information about guest's MSRs that are
unique to each vCPU. It starts with only 1 MSR:

    MSR_INTEL_MISC_FEATURES_ENABLES

Which currently has only 1 usable bit: cpuid_faulting.

Add 2 global policy objects: hvm_max and pv_max that are inited during
boot up. Availability of MSR_INTEL_MISC_FEATURES_ENABLES depends on
availability of MSR_INTEL_PLATFORM_INFO.

Add init_vcpu_msr_policy() which sets initial MSR policy for every vCPU
during domain creation with a special case for Dom0.

Signed-off-by: Sergey Dyasli <sergey.dyasli@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
xen/arch/x86/domain.c
xen/arch/x86/msr.c
xen/include/asm-x86/domain.h
xen/include/asm-x86/msr.h