All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/25] xen/x86: Per-domain CPUID policies
@ 2017-01-09 11:03 Andrew Cooper
  2017-01-09 11:03 ` [PATCH v2 01/25] x86/cpuid: Introduce guest_cpuid() and struct cpuid_leaf Andrew Cooper
                   ` (24 more replies)
  0 siblings, 25 replies; 60+ messages in thread
From: Andrew Cooper @ 2017-01-09 11:03 UTC (permalink / raw)
  To: Xen-devel; +Cc: Andrew Cooper

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@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 60+ messages in thread

end of thread, other threads:[~2017-01-13  2:19 UTC | newest]

Thread overview: 60+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-09 11:03 [PATCH v2 00/25] xen/x86: Per-domain CPUID policies Andrew Cooper
2017-01-09 11:03 ` [PATCH v2 01/25] x86/cpuid: Introduce guest_cpuid() and struct cpuid_leaf Andrew Cooper
2017-01-09 11:38   ` Paul Durrant
2017-01-09 15:04   ` Jan Beulich
2017-01-09 15:09     ` Andrew Cooper
2017-01-09 15:40       ` Jan Beulich
2017-01-09 15:45         ` Andrew Cooper
2017-01-09 23:31   ` Boris Ostrovsky
2017-01-11  5:47   ` Tian, Kevin
2017-01-09 11:03 ` [PATCH v2 02/25] x86/cpuid: Introduce struct cpuid_policy Andrew Cooper
2017-01-09 15:15   ` Jan Beulich
2017-01-09 16:08     ` Andrew Cooper
2017-01-09 16:10       ` Jan Beulich
2017-01-09 11:03 ` [PATCH v2 03/25] x86/cpuid: Move featuresets into " Andrew Cooper
2017-01-09 11:03 ` [PATCH v2 04/25] x86/cpuid: Allocate a CPUID policy for every domain Andrew Cooper
2017-01-09 11:03 ` [PATCH v2 05/25] x86/cpuid: Recalculate a domains CPUID policy when appropriate Andrew Cooper
2017-01-09 11:35   ` Andrew Cooper
2017-01-09 18:11     ` Stefano Stabellini
2017-01-09 15:22   ` Jan Beulich
2017-01-09 11:03 ` [PATCH v2 06/25] x86/hvm: Dispatch cpuid_viridian_leaves() from guest_cpuid() Andrew Cooper
2017-01-09 11:36   ` Paul Durrant
2017-01-09 15:29   ` Jan Beulich
2017-01-09 11:03 ` [PATCH v2 07/25] x86/cpuid: Dispatch cpuid_hypervisor_leaves() " Andrew Cooper
2017-01-09 16:21   ` Jan Beulich
2017-01-09 16:28     ` Andrew Cooper
2017-01-09 16:35       ` Jan Beulich
2017-01-09 11:03 ` [PATCH v2 08/25] x86/cpuid: Introduce named feature bitfields Andrew Cooper
2017-01-09 16:31   ` Jan Beulich
2017-01-09 16:39     ` Andrew Cooper
2017-01-09 11:03 ` [PATCH v2 09/25] x86/hvm: Improve hvm_efer_valid() using named features Andrew Cooper
2017-01-09 11:03 ` [PATCH v2 10/25] x86/hvm: Improve CR4 verification " Andrew Cooper
2017-01-09 11:03 ` [PATCH v2 11/25] x86/vvmx: Use hvm_cr4_guest_valid_bits() to calculate MSR_IA32_VMX_CR4_FIXED1 Andrew Cooper
2017-01-09 11:03 ` [PATCH v2 12/25] x86/pv: Improve pv_cpuid() using named features Andrew Cooper
2017-01-09 11:03 ` [PATCH v2 13/25] x86/hvm: Improve CPUID and MSR handling " Andrew Cooper
2017-01-09 11:03 ` [PATCH v2 14/25] x86/svm: Improvements " Andrew Cooper
2017-01-09 16:38   ` Jan Beulich
2017-01-09 23:34   ` Boris Ostrovsky
2017-01-09 11:03 ` [PATCH v2 15/25] x86/pv: Use per-domain policy information when calculating the cpumasks Andrew Cooper
2017-01-09 11:03 ` [PATCH v2 16/25] x86/pv: Use per-domain policy information in pv_cpuid() Andrew Cooper
2017-01-12 15:22   ` Boris Ostrovsky
2017-01-12 15:31     ` Andrew Cooper
2017-01-12 15:50       ` Boris Ostrovsky
2017-01-12 16:14         ` Andrew Cooper
2017-01-12 18:00           ` Boris Ostrovsky
2017-01-12 19:27             ` Andrew Cooper
2017-01-12 20:46               ` Boris Ostrovsky
2017-01-12 20:48                 ` Andrew Cooper
2017-01-12 20:51                   ` Boris Ostrovsky
2017-01-13  2:19                     ` Boris Ostrovsky
2017-01-09 11:03 ` [PATCH v2 17/25] x86/hvm: Use per-domain policy information in hvm_cpuid() Andrew Cooper
2017-01-09 11:03 ` [PATCH v2 18/25] x86/cpuid: Drop the temporary linear feature bitmap from struct cpuid_policy Andrew Cooper
2017-01-09 11:03 ` [PATCH v2 19/25] x86/cpuid: Calculate appropriate max_leaf values for the global policies Andrew Cooper
2017-01-09 11:03 ` [PATCH v2 20/25] x86/cpuid: Perform max_leaf calculations in guest_cpuid() Andrew Cooper
2017-01-09 16:40   ` Jan Beulich
2017-01-09 11:03 ` [PATCH v2 21/25] x86/cpuid: Move all leaf 7 handling into guest_cpuid() Andrew Cooper
2017-01-09 16:46   ` Jan Beulich
2017-01-09 11:03 ` [PATCH v2 22/25] x86/hvm: Use guest_cpuid() rather than hvm_cpuid() Andrew Cooper
2017-01-09 11:03 ` [PATCH v2 23/25] x86/svm: " Andrew Cooper
2017-01-09 11:03 ` [PATCH v2 24/25] x86/cpuid: Effectively remove pv_cpuid() and hvm_cpuid() Andrew Cooper
2017-01-09 11:03 ` [PATCH v2 25/25] x86/cpuid: Alter the legacy-path prototypes to match guest_cpuid() Andrew Cooper

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.