I have a native build under qemu that gets killed if it doesn't produce a line 
of output for 60 seconds (hang detection enforced by the host monitoring 
qemu's stdout with --nographic, not from within qemu).

In the most recent release version, it never came close to triggering on mips 
with a 30 second timeout.  In the current -git version (well, as of Thursday 
anyway), it triggers frequently (about 90% of the time) even with a 60 second 
timeout.

I bisected it to this:

commit 1828be316f6637d43dd4c4f5f32925b17fb8107f
Author: Paolo Bonzini <pbonz...@redhat.com>
Date:   Wed Mar 10 11:38:41 2010 +0100

    more alarm timer cleanup
    
    The timer_alarm_pending variable is related to the alarm timer but not
    placed in the struct.  Also, in qemu_mod_timer the wrong flag was being
    tested: the timer is rearmed in the alarm timer "bottom half", so the
    right flag to test there is the "pending" flag.
    
    Finally, I hoisted the NULL checks from alarm_has_dynticks to
    host_alarm_handler.
    
    Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
    Signed-off-by: Anthony Liguori <aligu...@us.ibm.com>

Reverting that patch fixed it (git show HEAD | patch -R -p1), by which I mean 
three consecutive runs with 30 second timeout didn't trigger the hang 
detection.

Unfortunately, I can't revert that patch in current origin/master because most 
of the hunks fail...

Help?

Rob
-- 
Latency is more important than throughput. It's that simple. - Linus Torvalds


Reply via email to