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
|