WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ia64-devel

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

To: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Subject: [Xen-ia64-devel] [PATCH][PV-OPS] Kconfig cleanup
From: Alex Williamson <alex.williamson@xxxxxx>
Date: Mon, 17 Mar 2008 12:50:25 -0600
Cc: xen-ia64-devel <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Mon, 17 Mar 2008 11:50:35 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: OSLO R&D
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-ia64-devel] [PATCH][PV-OPS] Kconfig cleanup, Alex Williamson <=