ia64/xen-unstable

changeset 18187:9454fae58cb8

x86: reprogram LAPIC timer in pit_broadcast_exit

Thus to remove possible timer expiring delay caused by deep C state
LAPIC timer stopping.

Signed-off-by: Wei Gang <gang.wei@intel.com>
author Keir Fraser <keir.fraser@citrix.com>
date Tue Jul 29 10:42:30 2008 +0100 (2008-07-29)
parents 507045f254e9
children eb10a50752bc
files xen/arch/x86/time.c
line diff
     1.1 --- a/xen/arch/x86/time.c	Tue Jul 29 10:41:41 2008 +0100
     1.2 +++ b/xen/arch/x86/time.c	Tue Jul 29 10:42:30 2008 +0100
     1.3 @@ -1135,7 +1135,10 @@ void pit_broadcast_enter(void)
     1.4  
     1.5  void pit_broadcast_exit(void)
     1.6  {
     1.7 -    cpu_clear(smp_processor_id(), pit_broadcast_mask);
     1.8 +    int cpu = smp_processor_id();
     1.9 +
    1.10 +    if ( cpu_test_and_clear(cpu, pit_broadcast_mask) )
    1.11 +        reprogram_timer(per_cpu(timer_deadline, cpu));
    1.12  }
    1.13  
    1.14  int pit_broadcast_is_available(void)