This is yet another attempt 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 three new Kconfig controls, ALT2PM, SVM and 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.
In this series, comparing to v1, new option CONFIG_ALT2PM introduced, that
can enable/disable altp2m support independently on VMX.
More specific changes are provided in per-patch changelog.
v1 series here:
https://lore.kernel.org/xen-devel/20240416061845.3467822-1-Sergiy_Kibrik@epam.com/
-Sergiy
Sergiy Kibrik (11):
x86/monitor: guard altp2m usage
x86/p2m: guard altp2m routines
x86/p2m: move altp2m-related code to separate file
x86: introduce CONFIG_ALTP2M Kconfig option
x86/p2m: guard altp2m code with CONFIG_ALTP2M option
x86: guard cpu_has_{svm/vmx} macros with CONFIG_{SVM/VMX}
x86/vpmu: guard vmx/svm calls with cpu_has_{vmx,svm}
x86/traps: clean up superfluous #idef-s
x86/domain: clean up superfluous #idef-s
x86/vmx: guard access to cpu_has_vmx_* in common code
iommu/vt-d: guard vmx_pi_hooks_* calls with cpu_has_vmx
Xenia Ragiadakou (4):
x86: introduce AMD-V and Intel VT-x Kconfig options
x86/oprofile: guard svm specific symbols with CONFIG_SVM
x86/ioreq: guard VIO_realmode_completion with CONFIG_VMX
x86/hvm: make AMD-V and Intel VT-x support configurable
xen/arch/x86/Kconfig | 25 +
xen/arch/x86/cpu/vpmu_amd.c | 8 +-
xen/arch/x86/cpu/vpmu_intel.c | 20 +-
xen/arch/x86/domain.c | 4 +-
xen/arch/x86/hvm/Makefile | 4 +-
xen/arch/x86/hvm/emulate.c | 2 +
xen/arch/x86/hvm/hvm.c | 2 +-
xen/arch/x86/hvm/ioreq.c | 2 +
xen/arch/x86/hvm/monitor.c | 4 +-
xen/arch/x86/hvm/viridian/viridian.c | 4 +-
xen/arch/x86/include/asm/altp2m.h | 5 +-
xen/arch/x86/include/asm/cpufeature.h | 6 +-
xen/arch/x86/include/asm/hvm/hvm.h | 2 +-
xen/arch/x86/include/asm/hvm/vmx/vmcs.h | 4 +-
xen/arch/x86/include/asm/p2m.h | 17 +-
xen/arch/x86/mm/Makefile | 5 +-
xen/arch/x86/mm/altp2m.c | 630 +++++++++++++++++++++++
xen/arch/x86/mm/hap/Makefile | 2 +-
xen/arch/x86/mm/p2m-basic.c | 19 +-
xen/arch/x86/mm/p2m-ept.c | 2 +-
xen/arch/x86/mm/p2m.c | 632 +-----------------------
xen/arch/x86/mm/p2m.h | 3 +
xen/arch/x86/oprofile/op_model_athlon.c | 2 +-
xen/arch/x86/traps.c | 9 +-
xen/drivers/passthrough/vtd/iommu.c | 6 +-
xen/include/xen/sched.h | 2 +-
26 files changed, 738 insertions(+), 683 deletions(-)
--
2.25.1