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