[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-devel] [PATCH] Append 'nohpet' in dom0 cmdline to prevent dom0 from using HPET
Resend. Disable HPET in Xen pv dom0 Xen is using HPET to wakeup cpu from deep c-states, so the HPET usage in dom0 must be fobidden. In 2.6.18-xen, the HPET was by default disabled in config file. For upstream kernel built for pv dom0, it is not practical to disable dom0 HPET usage in that way because the same image may be also using as bare metal kernerl. So do it in Xen specific setup code. Signed-off-by: Wei Gang <gang.wei@xxxxxxxxx> diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c index 9b32c88..366e1e5 100644 --- a/arch/x86/kernel/hpet.c +++ b/arch/x86/kernel/hpet.c @@ -96,7 +96,7 @@ static int __init hpet_setup(char *str) } __setup("hpet=", hpet_setup); -static int __init disable_hpet(char *str) +int __init disable_hpet(char *str) { boot_hpet_disable = 1; return 1; diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c index 5eeeedb..c73381b 100644 --- a/arch/x86/xen/setup.c +++ b/arch/x86/xen/setup.c @@ -34,6 +34,12 @@ extern void xen_sysenter_target(void); extern void xen_syscall_target(void); extern void xen_syscall32_target(void); +#ifdef CONFIG_HPET_TIMER +extern int __init disable_hpet(char *str); +#else +static inline int disable_hpet(char *str) { return 0; } +#endif + static unsigned long __init xen_release_chunk(phys_addr_t start_addr, phys_addr_t end_addr) { struct xen_memory_reservation reservation = { @@ -282,6 +288,12 @@ void __init xen_arch_setup(void) } #endif + /* + * Xen hypervisor uses HPET to wakeup cpu from deep c-states, + * so the HPET usage in dom0 must be forbidden. + */ + disable_hpet(NULL); + memcpy(boot_command_line, xen_start_info->cmd_line, MAX_GUEST_CMDLINE > COMMAND_LINE_SIZE ? COMMAND_LINE_SIZE : MAX_GUEST_CMDLINE); Attachment:
pv-dom0-nohpet-v3.patch _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |