[RFC 00/10] x86: Make cpu virtualization support configurable

Xenia Ragiadakou posted 10 patches 1 year, 2 months ago
Test gitlab-ci failed
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/20230213145751.1047236-1-burzalodowa@gmail.com
xen/arch/x86/Kconfig                    | 20 ++++++++++++++
xen/arch/x86/cpu/Makefile               |  4 ++-
xen/arch/x86/domain.c                   |  4 +--
xen/arch/x86/hvm/Makefile               |  4 +--
xen/arch/x86/hvm/ioreq.c                |  2 ++
xen/arch/x86/include/asm/hvm/hvm.h      |  8 ++++++
xen/arch/x86/include/asm/hvm/svm/svm.h  | 17 ++++++++++++
xen/arch/x86/include/asm/hvm/vmx/vmcs.h | 35 +++++++++++++++++++++++++
xen/arch/x86/include/asm/hvm/vmx/vmx.h  | 18 +++++++++++++
xen/arch/x86/include/asm/vpmu.h         |  9 +++++++
xen/arch/x86/mm/Makefile                |  3 ++-
xen/arch/x86/mm/hap/Makefile            |  2 +-
xen/arch/x86/mm/p2m.h                   | 16 +++++++++++
xen/arch/x86/oprofile/op_model_athlon.c |  2 +-
xen/arch/x86/traps.c                    |  4 +--
xen/drivers/passthrough/Kconfig         |  2 +-
16 files changed, 139 insertions(+), 11 deletions(-)
[RFC 00/10] x86: Make cpu virtualization support configurable
Posted by Xenia Ragiadakou 1 year, 2 months ago
This series aims to provide a means to render the cpu virtualization
technology support in Xen configurable.
Currently, irrespectively of the target platform, both AMD-V and Intel VT-x
drivers are built.
The series adds two new Kconfig controls, 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.
The series is sent as an RFC to gather feedback in case the changes are in
the wrong direction (I m mostly concerned about hap (ept/npt))

It depends on patch
"x86/vlapic: call vmx_vlapic_msr_changed through an hvm_function callback"
(otherwise it won't compile with Intel VT-x support disabled)
and on the series "Make x86 IOMMU driver support configurable" (AFAIU, the
series has been reviewed but not merged yet) because Intel IOMMU depends on
Intel VT-x for posted interrupts. 

Xenia Ragiadakou (10):
  x86: introduce AMD-V and Intel VT-x Kconfig options
  x86/hvm: separate AMD-V and Intel VT-x hvm_function_table initializers
  x86/p2m: guard vmx specific ept functions with INTEL_VMX
  x86/vpmu: separate AMD-V and Intel VT-x init arch_vpmu_ops
    initializers
  x86/traps: guard vmx specific functions with INTEL_VMX
  x86/domain: guard svm specific functions with AMD_SVM
  x86/oprofile: guard svm specific symbols with AMD_SVM
  x86: wire cpu_has_svm/vmx_* to false when svm/vmx not enabled
  x86/ioreq: guard VIO_realmode_completion with INTEL_VMX
  x86/hvm: make AMD-V and Intel VT-x support configurable

 xen/arch/x86/Kconfig                    | 20 ++++++++++++++
 xen/arch/x86/cpu/Makefile               |  4 ++-
 xen/arch/x86/domain.c                   |  4 +--
 xen/arch/x86/hvm/Makefile               |  4 +--
 xen/arch/x86/hvm/ioreq.c                |  2 ++
 xen/arch/x86/include/asm/hvm/hvm.h      |  8 ++++++
 xen/arch/x86/include/asm/hvm/svm/svm.h  | 17 ++++++++++++
 xen/arch/x86/include/asm/hvm/vmx/vmcs.h | 35 +++++++++++++++++++++++++
 xen/arch/x86/include/asm/hvm/vmx/vmx.h  | 18 +++++++++++++
 xen/arch/x86/include/asm/vpmu.h         |  9 +++++++
 xen/arch/x86/mm/Makefile                |  3 ++-
 xen/arch/x86/mm/hap/Makefile            |  2 +-
 xen/arch/x86/mm/p2m.h                   | 16 +++++++++++
 xen/arch/x86/oprofile/op_model_athlon.c |  2 +-
 xen/arch/x86/traps.c                    |  4 +--
 xen/drivers/passthrough/Kconfig         |  2 +-
 16 files changed, 139 insertions(+), 11 deletions(-)

-- 
2.37.2