# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1216212842 -3600
# Node ID 099aaca15ae6e9339c7c32d9488688ce99b37f5c
# Parent 9361e140fee3c657e10734cabdeefeaddd72b322
x86: Adjust handle_hpet_broadcast to let it run better before broadcast exit
Since hpet_broadcast_exit has been moved after interrupt enabled in C3
case, so adjust the handler of hpet broadcast to adapt to this.
Meanwhile, remove a freqently executed debug print line to simplify
the serial output.
Signed-off-by: Wei Gang <gang.wei@xxxxxxxxx>
---
xen/arch/x86/hpet.c | 15 +++------------
1 files changed, 3 insertions(+), 12 deletions(-)
diff -r 9361e140fee3 -r 099aaca15ae6 xen/arch/x86/hpet.c
--- a/xen/arch/x86/hpet.c Wed Jul 16 13:50:47 2008 +0100
+++ b/xen/arch/x86/hpet.c Wed Jul 16 13:54:02 2008 +0100
@@ -95,13 +95,8 @@ static int reprogram_hpet_evt_channel(
}
delta = expire - now;
- if ( delta <= 0 )
- {
- printk(KERN_DEBUG "reprogram: expire(%"PRIx64") < "
- "now(%"PRIx64")\n", expire, now);
- if ( !force )
- return -ETIME;
- }
+ if ( (delta <= 0) && !force )
+ return -ETIME;
ch->next_event = expire;
@@ -142,12 +137,10 @@ static void handle_hpet_broadcast(struct
{
cpumask_t mask;
s_time_t now, next_event;
- int cpu, current_cpu = smp_processor_id();
+ int cpu;
spin_lock(&ch->lock);
- if ( cpu_isset(current_cpu, ch->cpumask) )
- printk(KERN_DEBUG "WARNING: current cpu%d in bc_mask\n", current_cpu);
again:
ch->next_event = STIME_MAX;
next_event = STIME_MAX;
@@ -162,8 +155,6 @@ again:
else if ( per_cpu(timer_deadline, cpu) < next_event )
next_event = per_cpu(timer_deadline, cpu);
}
- if ( per_cpu(timer_deadline, current_cpu) <= now )
- cpu_set(current_cpu, mask);
/* wakeup the cpus which have an expired event. */
evt_do_broadcast(mask);
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|