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

[Xen-ia64-devel] [PATCH][PV-OPS] Kconfig cleanup



Hi Isaku,

   This is for the pv_ops tree xen-ia64-domu-minimal-2008mar06 branch.
I tried to clean up the Kconfig options for PARAVIRT/XEN.  I removed the
long descriptions for the PARAVIRT sub options since they're way too
technical, and probably not things we want to do without.  I think these
are going to be non-XEN specific, so I set them if PARAVIRT is
enabled.  

   I also fixed the dependencies between IA64_GENERIC and IA64_XEN.  The
expectation for now is that if you're running a domU, you're using the
Xen machine vector either as a statically compiled option, or
dynamically via IA64_GENERIC.  I suppose when we add dom0 support, you
could have IA64_DIG and XEN, but until then, this seems sufficient.  Let
me know if you agree this is how it should work.  Thanks,

        Alex

Signed-off-by: Alex Williamson <alex.williamson@xxxxxx>
---

diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index c62f815..87cee75 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -120,48 +120,24 @@ menuconfig PARAVIRT_GUEST
          If you say N, all options in this submenu will be skipped and 
disabled.
 
 if PARAVIRT_GUEST
+config PARAVIRT_ALT
+       bool
 
-config PARAVIRT
+config PARAVIRT_ENTRY
        bool
+
+config PARAVIRT
+       bool "Enable paravirtualization code"
+       depends on PARAVIRT_GUEST
        default y
+       select PARAVIRT_ALT
+       select PARAVIRT_ENTRY
        help
          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.
 
-config PARAVIRT_ALT
-       bool "paravirt_alt binary patching infrastructure"
-       depends on PARAVIRT
-       default y
-       help
-         The binary patching infratstructure to replace some privileged
-         instructions with hypervisor specific instrutions.
-         There are several sensitive(i.e. non-virtualizable) instructions and
-         performance critical privileged instructions which Xen
-         paravirtualize as hyperprivops.
-         For transparent paravirtualization (i.e. single binary should run
-         on both baremetal and xen environment), xenLinux/IA64 needs
-         something like "if (is_running_on_xen()) {} else {}" where
-         is_running_on_xen() is determined at boot time.
-         This configuration tries to eliminate the overheads for hyperprivops
-         by annotating such instructions and replacing them with hyperprivops
-         at boot time.
-
-config PARAVIRT_ENTRY
-       bool "paravirt entry"
-       depends on PARAVIRT
-       default y
-       help
-         The entry point hooking infrastructure to change the execution path
-         at the boot time.
-         There are several paravirtualized paths in hand coded assembly code
-         which isn't binary patched easily by the paravirt_alt infrastructure.
-         E.g. ia64_switch_to, ia64_leave_syscall, ia64_leave_kernel and
-         ia64_pal_call_static.
-         For those hand written assembly code, change the execution path
-         by hooking them and jumping to hand paravirtualized code.
-
 source "arch/ia64/xen/Kconfig"
 
 endif
diff --git a/arch/ia64/xen/Kconfig b/arch/ia64/xen/Kconfig
index 73c087b..72b2e10 100644
--- a/arch/ia64/xen/Kconfig
+++ b/arch/ia64/xen/Kconfig
@@ -5,24 +5,22 @@
 config XEN
        bool "Xen hypervisor support"
        default y
-       select PARAVIRT
-       select PARAVIRT_ALT
-       select PARAVIRT_ENTRY
+       depends on PARAVIRT && !(IA64_DIG || IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB 
|| IA64_SGI_SN2 || IA64_HP_SIM) && MCKINLEY && IA64_PAGE_SIZE_16KB && 
EXPERIMENTAL
        select XEN_XENCOMM
-       select IA64_XEN
+       select NO_IDLE_HZ
        help
          Enable Xen hypervisor support.  Resulting kernel runs
          both as a guest OS on Xen and natively on hardware.
 
-if XEN
 config XEN_INTERFACE_VERSION
+       depends on XEN
        hex
        default 0x00030207
 
 config XEN_XENCOMM
-       def_bool y
+       depends on XEN
+       bool
 
 config NO_IDLE_HZ
-       def_bool y
-
-endif
+       depends on XEN
+       bool




_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel


 


Rackspace

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