Message ID | 3f2168a337a192336e9a7fb797185c39978db11b.1715761386.git.Sergiy_Kibrik@epam.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | x86: make cpu virtualization support configurable | expand |
On 15.05.2024 10:59, Sergiy Kibrik wrote: > From: Xenia Ragiadakou <burzalodowa@gmail.com> > > Introduce two new Kconfig options, SVM and VMX, to allow code > specific to each virtualization technology to be separated and, when not > required, stripped. > CONFIG_SVM will be used to enable virtual machine extensions on platforms that > implement the AMD Virtualization Technology (AMD-V). > CONFIG_VMX will be used to enable virtual machine extensions on platforms that > implement the Intel Virtualization Technology (Intel VT-x). > > Both features depend on HVM support. > > Since, at this point, disabling any of them would cause Xen to not compile, > the options are enabled by default if HVM and are not selectable by the user. > > No functional change intended. > > Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com> > Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com> In principle I'm okay with this, so Acked-by: Jan Beulich <jbeulich@suse.com> Nevertheless, ... > --- a/xen/arch/x86/Kconfig > +++ b/xen/arch/x86/Kconfig > @@ -122,6 +122,12 @@ config HVM > > If unsure, say Y. > > +config SVM > + def_bool HVM > + > +config VMX > + def_bool HVM ... VT-x having a sub-technology abbreviated as SVM (Secure Virtual Memory), I wonder if we wouldn't be better off using AMD_SVM and INTEL_VMX. Andrew, Roger? > --- a/xen/arch/x86/mm/Makefile > +++ b/xen/arch/x86/mm/Makefile > @@ -10,6 +10,7 @@ obj-$(CONFIG_MEM_SHARING) += mem_sharing.o > obj-$(CONFIG_HVM) += nested.o > obj-$(CONFIG_HVM) += p2m.o > obj-y += p2m-basic.o > -obj-$(CONFIG_HVM) += p2m-ept.o p2m-pod.o p2m-pt.o > +obj-$(CONFIG_VMX) += p2m-ept.o > +obj-$(CONFIG_HVM) += p2m-pod.o p2m-pt.o > obj-y += paging.o > obj-y += physmap.o Just as a remark, with no request for you to change anything right here: With SVM=n and SHADOW_PAGING=n, I don't think we really need to build p2m-pt.c. Yet of course this may require adjustments outside of the Makefile to then actually build correctly. Jan
diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig index 7e03e4bc55..8c9f8431f0 100644 --- a/xen/arch/x86/Kconfig +++ b/xen/arch/x86/Kconfig @@ -122,6 +122,12 @@ config HVM If unsure, say Y. +config SVM + def_bool HVM + +config VMX + def_bool HVM + config XEN_SHSTK bool "Supervisor Shadow Stacks" depends on HAS_AS_CET_SS diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile index 3464191544..8434badc64 100644 --- a/xen/arch/x86/hvm/Makefile +++ b/xen/arch/x86/hvm/Makefile @@ -1,5 +1,5 @@ -obj-y += svm/ -obj-y += vmx/ +obj-$(CONFIG_SVM) += svm/ +obj-$(CONFIG_VMX) += vmx/ obj-y += viridian/ obj-y += asid.o diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile index 0803ac9297..0128ca7ab6 100644 --- a/xen/arch/x86/mm/Makefile +++ b/xen/arch/x86/mm/Makefile @@ -10,6 +10,7 @@ obj-$(CONFIG_MEM_SHARING) += mem_sharing.o obj-$(CONFIG_HVM) += nested.o obj-$(CONFIG_HVM) += p2m.o obj-y += p2m-basic.o -obj-$(CONFIG_HVM) += p2m-ept.o p2m-pod.o p2m-pt.o +obj-$(CONFIG_VMX) += p2m-ept.o +obj-$(CONFIG_HVM) += p2m-pod.o p2m-pt.o obj-y += paging.o obj-y += physmap.o diff --git a/xen/arch/x86/mm/hap/Makefile b/xen/arch/x86/mm/hap/Makefile index 8ef54b1faa..98c8a87819 100644 --- a/xen/arch/x86/mm/hap/Makefile +++ b/xen/arch/x86/mm/hap/Makefile @@ -3,4 +3,4 @@ obj-y += guest_walk_2.o obj-y += guest_walk_3.o obj-y += guest_walk_4.o obj-y += nested_hap.o -obj-y += nested_ept.o +obj-$(CONFIG_VMX) += nested_ept.o