ia64/xen-unstable

changeset 19545:34dca01addc9

x86: Disable cpuidle by default unless hpet broadcast is available.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Wed Apr 15 08:40:12 2009 +0100 (2009-04-15)
parents 94ffd85005c5
children 9e29ba71e169
files xen/arch/x86/setup.c xen/arch/x86/time.c
line diff
     1.1 --- a/xen/arch/x86/setup.c	Tue Apr 14 15:23:53 2009 +0100
     1.2 +++ b/xen/arch/x86/setup.c	Wed Apr 15 08:40:12 2009 +0100
     1.3 @@ -89,7 +89,7 @@ boolean_param("noapic", skip_ioapic_setu
     1.4  
     1.5  /* **** Linux config option: propagated to domain0. */
     1.6  /* xen_cpuidle: xen control cstate. */
     1.7 -/*static*/ int xen_cpuidle = 1;
     1.8 +/*static*/ int xen_cpuidle = -1;
     1.9  boolean_param("cpuidle", xen_cpuidle);
    1.10  
    1.11  int early_boot = 1;
     2.1 --- a/xen/arch/x86/time.c	Tue Apr 14 15:23:53 2009 +0100
     2.2 +++ b/xen/arch/x86/time.c	Wed Apr 15 08:40:12 2009 +0100
     2.3 @@ -1279,8 +1279,17 @@ static int disable_pit_irq(void)
     2.4          hpet_broadcast_init();
     2.5          if ( !hpet_broadcast_is_available() )
     2.6          {
     2.7 -            printk("HPET broadcast init failed, turn to PIT broadcast.\n");
     2.8 -            return 0;
     2.9 +            if ( xen_cpuidle == -1 )
    2.10 +            {
    2.11 +                xen_cpuidle = 0;
    2.12 +                printk("CPUIDLE: disabled due to no HPET. "
    2.13 +                       "Force enable with 'cpuidle'.\n");
    2.14 +            }
    2.15 +            else
    2.16 +            {
    2.17 +                printk("HPET broadcast init failed, turn to PIT broadcast.\n");
    2.18 +                return 0;
    2.19 +            }
    2.20          }
    2.21      }
    2.22