This patch is intended to fix "Oops: time tick before it's due" issue in
VTI-domain.
itc_at_irq and stime_irq should be protected by read/write lock 'xtime_lock'.
Signed-off-by: Anthony Xu <anthony.xu@xxxxxxxxx>
diff -r de0c04ed4ab7 xen/arch/ia64/vmx/vlsapic.c
--- a/xen/arch/ia64/vmx/vlsapic.c Fri Apr 21 16:40:17 2006
+++ b/xen/arch/ia64/vmx/vlsapic.c Tue Apr 25 22:05:27 2006
@@ -121,7 +121,7 @@
itc_freq = local_cpu_data->itc_freq;
vtm->cfg_max_jump=itc_freq*MAX_JUMP_STEP/1000;
vtm->cfg_min_grun=itc_freq*MIN_GUEST_RUNNING_TIME/1000;
- init_timer(&vtm->vtm_timer, vtm_timer_fn, vcpu, 0);
+ init_timer(&vtm->vtm_timer, vtm_timer_fn, vcpu, vcpu->processor);
vtm_reset(vcpu);
}
diff -r de0c04ed4ab7 xen/arch/ia64/xen/xentime.c
--- a/xen/arch/ia64/xen/xentime.c Fri Apr 21 16:40:17 2006
+++ b/xen/arch/ia64/xen/xentime.c Tue Apr 25 22:05:27 2006
@@ -146,9 +146,9 @@
* another CPU. We need to avoid to SMP race by
acquiring the
* xtime_lock.
*/
-#ifdef TURN_ME_OFF_FOR_NOW_IA64_XEN
+//#ifdef TURN_ME_OFF_FOR_NOW_IA64_XEN
write_seqlock(&xtime_lock);
-#endif
+//#endif
#ifdef TURN_ME_OFF_FOR_NOW_IA64_XEN
do_timer(regs);
#endif
@@ -159,9 +159,9 @@
itc_at_irq = ia64_get_itc();
stime_irq += cycle_to_ns(itc_at_irq - old_itc);
-#ifdef TURN_ME_OFF_FOR_NOW_IA64_XEN
+//#ifdef TURN_ME_OFF_FOR_NOW_IA64_XEN
write_sequnlock(&xtime_lock);
-#endif
+//#endif
} else
local_cpu_data->itm_next = new_itm;
Thanks,
-Anthony
timer_Oop.patch
Description: timer_Oop.patch
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|