xen-devel
Re: [Xen-devel] Time stopped
> On Fri, 2005-10-14 at 16:48 +0200, Stephan Böni wrote:
> > Just for your information. I have the same problem on my installation.
> >
> Thanks for the feedback. I was wondering if I was the only one seeing
> it.
So managed to reproduce (once!) and now perhaps one step further to
solving it - basically the guest is /not/ to blame; Xen itself is
not updating time correctly. In my instance it was out (i.e. time
was running slower) by a factor of approximately 16 -- 20.
I'm trying to reproduce again to get more details - but it'd be
helpful if folks could apply the below and, if they repro the
problem:
(1) get serial console to Xen (i.e. hit 'Ctrl-A' three times)
(2) hit 'a' to dump the ac_timer queues and the scale info,
(3) post the results to the list
cheers,
S.
diff -r bd3268de4145 xen/arch/x86/time.c
--- a/xen/arch/x86/time.c Fri Oct 14 14:40:48 2005
+++ b/xen/arch/x86/time.c Fri Oct 14 17:44:46 2005
@@ -133,6 +133,15 @@
return product;
}
+void print_scale(int cpu)
+{
+ struct cpu_time *t = &cpu_time[cpu];
+ struct time_scale *s = &t->tsc_scale;
+
+ printk("CPU%d: scale->mul_frac = %x\n", cpu, s->mul_frac);
+ printk("CPU%d: scale->shift = %d\n", cpu, s->shift);
+}
+
void timer_interrupt(int irq, void *dev_id, struct cpu_user_regs *regs)
{
if ( timer_ack )
diff -r bd3268de4145 xen/common/ac_timer.c
--- a/xen/common/ac_timer.c Fri Oct 14 14:40:48 2005
+++ b/xen/common/ac_timer.c Fri Oct 14 17:44:46 2005
@@ -225,6 +225,7 @@
spin_unlock_irq(&ac_timers[cpu].lock);
}
+extern void print_scale(int cpu);
static void dump_timerq(unsigned char key)
{
@@ -239,6 +240,7 @@
for_each_online_cpu( i )
{
printk("CPU[%02d] ", i);
+ print_scale( i );
spin_lock_irqsave(&ac_timers[i].lock, flags);
for ( j = 1; j <= GET_HEAP_SIZE(ac_timers[i].heap); j++ )
{
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|