Browse Source

Normalize config options for guest support

1) Group all the "guest OS" support options together, under a PARAVIRT_GUEST
   menu.
2) Make those options select CONFIG_PARAVIRT, as suggested by Andi.
3) Make kconfig help titles consistent.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Cc: Andi Kleen <ak@suse.de>
Cc: Zach Amsden <zach@vmware.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Chris Wright <chrisw@sous-sol.org>
Rusty Russell 18 years ago
parent
commit
d3d1c4bdf1
3 changed files with 32 additions and 14 deletions
  1. 28 10
      arch/i386/Kconfig
  2. 3 2
      arch/x86/xen/Kconfig
  3. 1 2
      drivers/lguest/Kconfig

+ 28 - 10
arch/i386/Kconfig

@@ -227,28 +227,46 @@ config SCHED_NO_NO_OMIT_FRAME_POINTER
 	  If in doubt, say "Y".
 	  If in doubt, say "Y".
 
 
 config PARAVIRT
 config PARAVIRT
-	bool "Paravirtualization support (EXPERIMENTAL)"
-	depends on EXPERIMENTAL
+	bool
 	depends on !(X86_VISWS || X86_VOYAGER)
 	depends on !(X86_VISWS || X86_VOYAGER)
 	help
 	help
-	  Paravirtualization is a way of running multiple instances of
-	  Linux on the same machine, under a hypervisor.  This option
-	  changes the kernel so it can modify itself when it is run
-	  under a hypervisor, improving performance significantly.
-	  However, when run without a hypervisor the kernel is
-	  theoretically slower.  If in doubt, say N.
+	  This changes the kernel so it can modify itself when it is run
+	  under a hypervisor, potentially improving performance significantly
+	  over full virtualization.  However, when run without a hypervisor
+	  the kernel is theoretically slower and slightly larger.
+
+menuconfig PARAVIRT_GUEST
+	bool "Paravirtualized guest support"
+	help
+	  Say Y here to get to see options related to running Linux under
+	  various hypervisors.  This option alone does not add any kernel code.
+
+	  If you say N, all options in this submenu will be skipped and disabled.
+
+if PARAVIRT_GUEST
 
 
 source "arch/x86/xen/Kconfig"
 source "arch/x86/xen/Kconfig"
 
 
 config VMI
 config VMI
-	bool "VMI Paravirt-ops support"
-	depends on PARAVIRT
+	bool "VMI Guest support"
+	select PARAVIRT
+	depends on !(X86_VISWS || X86_VOYAGER)
 	help
 	help
 	  VMI provides a paravirtualized interface to the VMware ESX server
 	  VMI provides a paravirtualized interface to the VMware ESX server
 	  (it could be used by other hypervisors in theory too, but is not
 	  (it could be used by other hypervisors in theory too, but is not
 	  at the moment), by linking the kernel to a GPL-ed ROM module
 	  at the moment), by linking the kernel to a GPL-ed ROM module
 	  provided by the hypervisor.
 	  provided by the hypervisor.
 
 
+config LGUEST_GUEST
+	bool "Lguest guest support"
+	select PARAVIRT
+	depends on !X86_PAE
+	help
+	  Lguest is a tiny in-kernel hypervisor.  Selecting this will
+	  allow your kernel to boot under lguest.  This option will increase
+	  your kernel size by about 6k.  If in doubt, say N.
+endif
+
 config ACPI_SRAT
 config ACPI_SRAT
 	bool
 	bool
 	default y
 	default y

+ 3 - 2
arch/x86/xen/Kconfig

@@ -3,8 +3,9 @@
 #
 #
 
 
 config XEN
 config XEN
-	bool "Enable support for Xen hypervisor"
-	depends on PARAVIRT && X86_CMPXCHG && X86_TSC && !NEED_MULTIPLE_NODES
+	bool "Xen guest support"
+	select PARAVIRT
+	depends on X86_CMPXCHG && X86_TSC && !NEED_MULTIPLE_NODES && !(X86_VISWS || X86_VOYAGER)
 	help
 	help
 	  This is the Linux Xen port.  Enabling this will allow the
 	  This is the Linux Xen port.  Enabling this will allow the
 	  kernel to boot in a paravirtualized environment under the
 	  kernel to boot in a paravirtualized environment under the

+ 1 - 2
drivers/lguest/Kconfig

@@ -1,7 +1,6 @@
 config LGUEST
 config LGUEST
 	tristate "Linux hypervisor example code"
 	tristate "Linux hypervisor example code"
-	depends on X86 && PARAVIRT && EXPERIMENTAL && !X86_PAE && FUTEX
-	select LGUEST_GUEST
+	depends on X86 && EXPERIMENTAL && !X86_PAE && FUTEX && !(X86_VISWS || X86_VOYAGER)
 	select HVC_DRIVER
 	select HVC_DRIVER
 	---help---
 	---help---
 	  This is a very simple module which allows you to run
 	  This is a very simple module which allows you to run