[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 00/25] xen/x86: Per-domain CPUID policies
Presented herewith is v2 of the first part of improvement work to support full per-domain CPUID policies. More work is pending on top of this series. This series is available in git form from: http://xenbits.xen.org/gitweb/?p=people/andrewcoop/xen.git;a=shortlog;h=refs/heads/xen-cpuid-v2 Testing wise, this series has been bisected, checking at each stage that the guest-visibile CPUID information is identical (other than reported-frequency values) for different VMs in a number of configurations. All review comment from v1 have been addressed. Headline changes are the dynamic generation of bitfield names, and recalculation of policy in more places. Andrew Cooper (25): x86/cpuid: Introduce guest_cpuid() and struct cpuid_leaf x86/cpuid: Introduce struct cpuid_policy x86/cpuid: Move featuresets into struct cpuid_policy x86/cpuid: Allocate a CPUID policy for every domain x86/cpuid: Recalculate a domains CPUID policy when appropriate x86/hvm: Dispatch cpuid_viridian_leaves() from guest_cpuid() x86/cpuid: Dispatch cpuid_hypervisor_leaves() from guest_cpuid() x86/cpuid: Introduce named feature bitfields x86/hvm: Improve hvm_efer_valid() using named features x86/hvm: Improve CR4 verification using named features x86/vvmx: Use hvm_cr4_guest_valid_bits() to calculate MSR_IA32_VMX_CR4_FIXED1 x86/pv: Improve pv_cpuid() using named features x86/hvm: Improve CPUID and MSR handling using named features x86/svm: Improvements using named features x86/pv: Use per-domain policy information when calculating the cpumasks x86/pv: Use per-domain policy information in pv_cpuid() x86/hvm: Use per-domain policy information in hvm_cpuid() x86/cpuid: Drop the temporary linear feature bitmap from struct cpuid_policy x86/cpuid: Calculate appropriate max_leaf values for the global policies x86/cpuid: Perform max_leaf calculations in guest_cpuid() x86/cpuid: Move all leaf 7 handling into guest_cpuid() x86/hvm: Use guest_cpuid() rather than hvm_cpuid() x86/svm: Use guest_cpuid() rather than hvm_cpuid() x86/cpuid: Effectively remove pv_cpuid() and hvm_cpuid() x86/cpuid: Alter the legacy-path prototypes to match guest_cpuid() tools/tests/x86_emulator/x86_emulate.c | 15 +- tools/tests/x86_emulator/x86_emulate.h | 60 ++- xen/arch/arm/domctl.c | 5 + xen/arch/x86/cpuid.c | 860 ++++++++++++++++++++++++++++++--- xen/arch/x86/domain.c | 11 +- xen/arch/x86/domctl.c | 41 +- xen/arch/x86/hvm/emulate.c | 10 +- xen/arch/x86/hvm/hvm.c | 518 +++----------------- xen/arch/x86/hvm/mtrr.c | 13 +- xen/arch/x86/hvm/nestedhvm.c | 6 +- xen/arch/x86/hvm/svm/svm.c | 63 +-- xen/arch/x86/hvm/viridian.c | 65 ++- xen/arch/x86/hvm/vmx/vmx.c | 35 +- xen/arch/x86/hvm/vmx/vvmx.c | 58 +-- xen/arch/x86/setup.c | 4 +- xen/arch/x86/sysctl.c | 21 +- xen/arch/x86/time.c | 2 + xen/arch/x86/traps.c | 472 ++---------------- xen/arch/x86/x86_emulate/x86_emulate.c | 34 +- xen/arch/x86/x86_emulate/x86_emulate.h | 12 +- xen/common/domctl.c | 4 - xen/include/asm-x86/cpufeature.h | 1 + xen/include/asm-x86/cpuid.h | 194 +++++++- xen/include/asm-x86/domain.h | 5 +- xen/include/asm-x86/hvm/emulate.h | 8 +- xen/include/asm-x86/hvm/hvm.h | 4 +- xen/include/asm-x86/hvm/nestedhvm.h | 2 +- xen/include/asm-x86/hvm/vcpu.h | 10 +- xen/include/asm-x86/hvm/viridian.h | 9 +- xen/include/asm-x86/mm.h | 4 +- xen/include/asm-x86/processor.h | 6 +- xen/tools/gen-cpuid.py | 32 ++ 32 files changed, 1357 insertions(+), 1227 deletions(-) -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |