mbox series

[XEN,v5,00/13] x86: make CPU virtualisation support configurable

Message ID cover.1722333634.git.Sergiy_Kibrik@epam.com (mailing list archive)
Headers show
Series x86: make CPU virtualisation support configurable | expand

Message

Sergiy Kibrik July 30, 2024, 10:14 a.m. UTC
This is another series to provide a means to render the CPU virtualisation
technology support in Xen configurable.
Currently, irrespectively of the target platform, both AMD-V and Intel VT-x
drivers are built.
The series adds three new Kconfig controls, ALT2PM, AMD_SVM and INTEL_VMX,
that can be used to switch to a finer-grained configuration for a given
platform, and reduce dead code.

The code separation is done using the new config guards.

Major changes in this series, comparing to v4, are renaming of config options
from SVM to AMD_SVM and from VMX to INTEL_VMX -- the way they were in initial
RFC series. Also patch for ioreq has been remade once again trying to make it
clearer and simplify a bit.
More specific changes are provided in per-patch changelog. 

v4 series here:
https://lore.kernel.org/xen-devel/cover.1720501197.git.Sergiy_Kibrik@epam.com/

 -Sergiy


Sergiy Kibrik (6):
  x86/monitor: guard altp2m usage
  x86: introduce CONFIG_ALTP2M Kconfig option
  x86: introduce using_{svm,vmx}() helpers
  x86/vmx: guard access to cpu_has_vmx_* in common code
  x86/vpmu: guard calls to vmx/svm functions
  x86/vmx: replace CONFIG_HVM with CONFIG_INTEL_VMX in vmx.h

Xenia Ragiadakou (7):
  x86: introduce AMD-V and Intel VT-x Kconfig options
  x86/p2m: guard EPT functions with using_vmx() check
  x86/traps: guard vmx specific functions with usinc_vmx() check
  x86/PV: guard svm specific functions with usinc_svm() check
  x86/oprofile: guard svm specific symbols with CONFIG_AMD_SVM
  ioreq: do not build arch_vcpu_ioreq_completion() for non-VMX
    configurations
  x86/hvm: make AMD-V and Intel VT-x support configurable

 xen/Kconfig                             |  3 +++
 xen/arch/arm/ioreq.c                    |  6 -----
 xen/arch/x86/Kconfig                    | 32 ++++++++++++++++++++++++
 xen/arch/x86/cpu/vpmu_amd.c             | 11 +++++----
 xen/arch/x86/cpu/vpmu_intel.c           | 32 +++++++++++++-----------
 xen/arch/x86/domain.c                   |  8 +++---
 xen/arch/x86/hvm/Makefile               |  4 +--
 xen/arch/x86/hvm/hvm.c                  |  4 +--
 xen/arch/x86/hvm/ioreq.c                |  2 ++
 xen/arch/x86/hvm/monitor.c              |  4 ++-
 xen/arch/x86/hvm/nestedhvm.c            |  4 +--
 xen/arch/x86/include/asm/altp2m.h       |  5 +++-
 xen/arch/x86/include/asm/hvm/hvm.h      | 12 ++++++++-
 xen/arch/x86/include/asm/hvm/vmx/vmcs.h | 33 ++++++++++++++++---------
 xen/arch/x86/include/asm/hvm/vmx/vmx.h  |  2 +-
 xen/arch/x86/include/asm/p2m.h          | 23 +++++++++++++----
 xen/arch/x86/mm/Makefile                |  5 ++--
 xen/arch/x86/mm/hap/Makefile            |  2 +-
 xen/arch/x86/mm/p2m-basic.c             |  4 +--
 xen/arch/x86/oprofile/op_model_athlon.c |  2 +-
 xen/arch/x86/traps.c                    |  8 ++----
 xen/include/xen/ioreq.h                 | 10 ++++++++
 22 files changed, 147 insertions(+), 69 deletions(-)