[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] [RFC] x86/kconfig: Introduce CONFIG_PV and CONFIG_HVM



Making PV and HVM guests individually compilable is useful as a reduction in
hypervisor size, and as an aid to enforcing clean API boundaries.

Introduce CONFIG_PV and CONFIG_HVM, although there is a lot of work to do
until either can actually be disabled.

Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
CC: Jan Beulich <JBeulich@xxxxxxxx>
---
 xen/arch/x86/Kconfig               | 68 ++++++++++++++++++++++++++++----------
 xen/arch/x86/Makefile              |  4 +--
 xen/tools/kconfig/allrandom.config |  4 +++
 3 files changed, 56 insertions(+), 20 deletions(-)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index 96ca2bf..87b03f3 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -32,6 +32,56 @@ menu "Architecture Features"
 
 source "arch/Kconfig"
 
+config PV
+       def_bool y
+       prompt "PV guest support" if EXPERT = "y"
+       depends on X86
+       ---help---
+         Support for Xen Paravirtual guests.
+
+         Xen PV guests use Ring Deprivileging as a method of virtualisation.
+         This requires no specific hardware support, but does require an OS
+         capable of running PV under Xen.
+
+         If unsure, say Y.
+
+         TODO: This is a work in process, and Xen doesn't currently compile
+         if this option is disabled.
+
+config HVM
+       def_bool y
+       prompt "HVM guest support" if EXPERT = "y"
+       depends on X86
+       ---help---
+         Support for Xen Hardware Virtual Machine guests.
+
+         Xen HVM guests use hardware virtualisation extentions (Intel VT-x,
+         AMD SVM) to run OSes.  This requires a CPU with appropriate
+         extentions, but can in principle run any OS, even if unmodified.
+
+         If unsure, say Y.
+
+         TODO: This is a work in process, and Xen doesn't currently compile
+         if this option is disabled.
+
+config HVM_FEP
+       bool "HVM Forced Emulation Prefix support" if EXPERT = "y"
+       default DEBUG
+       depends on HVM
+       ---help---
+         Compiles in a feature that allows HVM guest to arbitrarily
+         exercise the instruction emulator.
+
+         This feature can only be enabled during boot time with
+         appropriate hypervisor command line option. Please read
+         hypervisor command line documentation before trying to use
+         this feature.
+
+         This is strictly for testing purposes, and not appropriate
+         for use in production.
+
+         If unsure, say N.
+
 config SHADOW_PAGING
         bool "Shadow Paging"
         default y
@@ -61,24 +111,6 @@ config BIGMEM
 
          If unsure, say N.
 
-config HVM_FEP
-       bool "HVM Forced Emulation Prefix support" if EXPERT = "y"
-       default DEBUG
-       ---help---
-
-         Compiles in a feature that allows HVM guest to arbitrarily
-         exercise the instruction emulator.
-
-         This feature can only be enabled during boot time with
-         appropriate hypervisor command line option. Please read
-         hypervisor command line documentation before trying to use
-         this feature.
-
-         This is strictly for testing purposes, and not appropriate
-         for use in production.
-
-         If unsure, say N.
-
 config TBOOT
        def_bool y
        prompt "Xen tboot support" if EXPERT = "y"
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 10f519e..d7c8970 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -1,10 +1,10 @@
 subdir-y += acpi
 subdir-y += cpu
 subdir-y += genapic
-subdir-y += hvm
+subdir-$(CONFIG_HVM) += hvm
 subdir-y += mm
 subdir-$(CONFIG_XENOPROF) += oprofile
-subdir-y += pv
+subdir-$(CONFIG_PV) += pv
 subdir-y += x86_64
 
 alternative-y := alternative.init.o
diff --git a/xen/tools/kconfig/allrandom.config 
b/xen/tools/kconfig/allrandom.config
index c7753ac..329ef59 100644
--- a/xen/tools/kconfig/allrandom.config
+++ b/xen/tools/kconfig/allrandom.config
@@ -1,3 +1,7 @@
 # Explicit option choices not subject to regular RANDCONFIG
 
 CONFIG_GCOV_FORMAT_AUTODETECT=y
+
+# Being able to compile-out guest subsystems is a work-in-progress.
+CONFIG_PV=y
+CONFIG_HVM=y
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.