On Sat, Apr 19, 2008 at 12:29:47PM -0300, Marcelo Tosatti wrote:
> > I just reproduced this on a UP guest. Were you seeing the exact same
> > stack trace in the guest with kvm-64 ?
> 
> I've been able to reproduce the problem. Symptoms are that when using
> NOHZ vcpu0 LAPIC timer is ticking far less than the others (apparently vcpu0
> is the only one ticking "correctly"):
> 
> 
> nohz=on with kvmclock
> [EMAIL PROTECTED] ~]# cat /proc/timer_stats | grep apic
>  13214,  8590 qemu-system-x86  apic_mmio_write (apic_timer_fn)
>  13214,  8589 qemu-system-x86  apic_mmio_write (apic_timer_fn)
>  13211,  8588 qemu-system-x86  apic_mmio_write (apic_timer_fn)
>   389,  8587 qemu-system-x86  apic_mmio_write (apic_timer_fn)
> 
> nohz=off
>  3253,  8672 qemu-system-x86  apic_mmio_write (apic_timer_fn)
>  2876,  8673 qemu-system-x86  apic_mmio_write (apic_timer_fn)
>  2543,  8674 qemu-system-x86  apic_mmio_write (apic_timer_fn)
>  2179,  8675 qemu-system-x86  apic_mmio_write (apic_timer_fn)
> 
> no-kvmclock
>  1017,  8808 qemu-system-x86  apic_mmio_write (apic_timer_fn)
>  1577,  8809 qemu-system-x86  apic_mmio_write (apic_timer_fn)
>  1708,  8807 qemu-system-x86  apic_mmio_write (apic_timer_fn)
>  1812,  8806 qemu-system-x86  apic_mmio_write (apic_timer_fn)
> 
> 
> Glauber will start looking at this next week.

Glauber, that printk you suggested has just triggered, but in a
different condition. Guest was working fine (SMP 2-way), then suddenly:

[EMAIL PROTECTED] bonnie++-1.03c]# ./bonnie++
You must use the "-u" switch when running as root.
usage: bonnie++ [-d scratch-dir] [-s size(Mb)[:chunk-size(b)]]
                [-n number-to-stat[:max-size[:min-size][:num-directories]]]
                [-m machine-name]
                [-r ram-size-iserial8250: too much work for irq4
n-Mb]
                [-x number-of-tests] [-u uid-to-use:gid-to-use] [-g gid-to-use]
                [-q] [-f] [-b] [-p processes | -y]

Version: 1.03c
[EMAIL PROTECTED] bonnie++-1.03c]# ./bonnie++  dirty_portuguese_word: -361322

And there it hanged.

diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index a3fa587..7785fcc 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -453,6 +453,8 @@ void update_wall_time(void)
 #else
        offset = clock->cycle_interval;
 #endif
+        if ((s64) offset < 0)
+                printk("...! %lld\n", (s64)offset);
        clock->xtime_nsec += (s64)xtime.tv_nsec << clock->shift;

        /* normally this loop will run just once, however in the





-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to