[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH 00/27] xen/x86: Per-domain CPUID policies



Hello,

Presented herewith is 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-v1

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.

Jan: This series textually conflicts with some of your register renaming.  I
am happy to rebase if needs be.

Andrew Cooper (27):
  x86/cpuid: Untangle the <asm/cpufeature.h> include hierachy
  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/domctl: Make XEN_DOMCTL_set_address_size singleshot
  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 bitmaps
  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/x86/cpuid.c                   | 837 ++++++++++++++++++++++++++++++---
 xen/arch/x86/domain.c                  |  44 +-
 xen/arch/x86/domctl.c                  |  52 +-
 xen/arch/x86/hvm/emulate.c             |  10 +-
 xen/arch/x86/hvm/hvm.c                 | 521 +++-----------------
 xen/arch/x86/hvm/mtrr.c                |  13 +-
 xen/arch/x86/hvm/nestedhvm.c           |   6 +-
 xen/arch/x86/hvm/svm/svm.c             |  62 +--
 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/traps.c                   | 476 ++-----------------
 xen/arch/x86/x86_emulate/x86_emulate.c |  31 +-
 xen/arch/x86/x86_emulate/x86_emulate.h |  12 +-
 xen/include/asm-x86/bitops.h           |   3 +-
 xen/include/asm-x86/cpufeature.h       |  30 +-
 xen/include/asm-x86/cpufeatures.h      |  24 +
 xen/include/asm-x86/cpufeatureset.h    |   6 +-
 xen/include/asm-x86/cpuid.h            | 254 +++++++++-
 xen/include/asm-x86/domain.h           |   5 +-
 xen/include/asm-x86/hvm/emulate.h      |   8 +-
 xen/include/asm-x86/hvm/hvm.h          |   7 +-
 xen/include/asm-x86/hvm/nestedhvm.h    |   2 +-
 xen/include/asm-x86/hvm/viridian.h     |   9 +-
 xen/include/asm-x86/mm.h               |   4 +-
 xen/include/asm-x86/processor.h        |   6 +-
 xen/include/xen/compat.h               |   1 -
 31 files changed, 1381 insertions(+), 1300 deletions(-)
 create mode 100644 xen/include/asm-x86/cpufeatures.h

-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.