* [Qemu-devel] [old BUG]: -watchdog-action pause hangs QEMU
@ 2014-06-26 20:19 Luiz Capitulino
2014-06-26 21:24 ` Paolo Bonzini
0 siblings, 1 reply; 5+ messages in thread
From: Luiz Capitulino @ 2014-06-26 20:19 UTC (permalink / raw)
To: rjones; +Cc: qemu-devel
Hi Richard,
If setup qemu to use a watchdog with action pause, like this:
# qemu [...] -watchdog i6300esb -watchdog-action pause
qemu will completely hang when the watchdog fires. I started trying to
bisect, but I went as down as qemu v1.7.0 and the bug exists there.
Here goes a gdb backtrace:
#0 0x00007f298ce31759 in syscall () from /lib64/libc.so.6
#1 0x00007f29939b0b56 in futex_wait (ev=0x7f2994548f18, val=4294967295)
at /home/lcapitulino/work/src/upstream/qmp-unstable/util/qemu-thread-posix.c:304
#2 0x00007f29939b0c68 in qemu_event_wait (ev=0x7f2994548f18)
at /home/lcapitulino/work/src/upstream/qmp-unstable/util/qemu-thread-posix.c:400
#3 0x00007f299392a066 in qemu_clock_enable (type=QEMU_CLOCK_VIRTUAL, enabled=false)
at /home/lcapitulino/work/src/upstream/qmp-unstable/qemu-timer.c:171
#4 0x00007f2993653cc1 in pause_all_vcpus () at /home/lcapitulino/work/src/upstream/qmp-unstable/cpus.c:1078
#5 0x00007f2993652d3f in do_vm_stop (state=RUN_STATE_WATCHDOG) at /home/lcapitulino/work/src/upstream/qmp-unstable/cpus.c:532
#6 0x00007f2993654273 in vm_stop (state=RUN_STATE_WATCHDOG) at /home/lcapitulino/work/src/upstream/qmp-unstable/cpus.c:1221
#7 0x00007f29938c638d in watchdog_perform_action () at /home/lcapitulino/work/src/upstream/qmp-unstable/hw/watchdog/watchdog.c:126
#8 0x00007f29938c679d in i6300esb_timer_expired (vp=0x7f2994d17d40)
at /home/lcapitulino/work/src/upstream/qmp-unstable/hw/watchdog/wdt_i6300esb.c:197
#9 0x00007f299392a8ce in timerlist_run_timers (timer_list=0x7f2994548ec0)
at /home/lcapitulino/work/src/upstream/qmp-unstable/qemu-timer.c:491
#10 0x00007f299392a916 in qemu_clock_run_timers (type=QEMU_CLOCK_VIRTUAL)
at /home/lcapitulino/work/src/upstream/qmp-unstable/qemu-timer.c:502
#11 0x00007f299392abfe in qemu_clock_run_all_timers () at /home/lcapitulino/work/src/upstream/qmp-unstable/qemu-timer.c:608
#12 0x00007f299392956a in main_loop_wait (nonblocking=0) at /home/lcapitulino/work/src/upstream/qmp-unstable/main-loop.c:490
#13 0x00007f299374b40c in main_loop () at /home/lcapitulino/work/src/upstream/qmp-unstable/vl.c:2007
#14 0x00007f2993752e5d in main (argc=23, argv=0x7fffc6a5a738, envp=0x7fffc6a5a7f8)
at /home/lcapitulino/work/src/upstream/qmp-unstable/vl.c:4526
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [old BUG]: -watchdog-action pause hangs QEMU
2014-06-26 20:19 [Qemu-devel] [old BUG]: -watchdog-action pause hangs QEMU Luiz Capitulino
@ 2014-06-26 21:24 ` Paolo Bonzini
2014-06-27 12:45 ` Luiz Capitulino
0 siblings, 1 reply; 5+ messages in thread
From: Paolo Bonzini @ 2014-06-26 21:24 UTC (permalink / raw)
To: Luiz Capitulino, rjones; +Cc: qemu-devel
Il 26/06/2014 22:19, Luiz Capitulino ha scritto:
> Here goes a gdb backtrace:
>
> #0 0x00007f298ce31759 in syscall () from /lib64/libc.so.6
> #1 0x00007f29939b0b56 in futex_wait (ev=0x7f2994548f18, val=4294967295)
> at /home/lcapitulino/work/src/upstream/qmp-unstable/util/qemu-thread-posix.c:304
> #2 0x00007f29939b0c68 in qemu_event_wait (ev=0x7f2994548f18)
> at /home/lcapitulino/work/src/upstream/qmp-unstable/util/qemu-thread-posix.c:400
> #3 0x00007f299392a066 in qemu_clock_enable (type=QEMU_CLOCK_VIRTUAL, enabled=false)
> at /home/lcapitulino/work/src/upstream/qmp-unstable/qemu-timer.c:171
> #4 0x00007f2993653cc1 in pause_all_vcpus () at /home/lcapitulino/work/src/upstream/qmp-unstable/cpus.c:1078
> #5 0x00007f2993652d3f in do_vm_stop (state=RUN_STATE_WATCHDOG) at /home/lcapitulino/work/src/upstream/qmp-unstable/cpus.c:532
> #6 0x00007f2993654273 in vm_stop (state=RUN_STATE_WATCHDOG) at /home/lcapitulino/work/src/upstream/qmp-unstable/cpus.c:1221
> #7 0x00007f29938c638d in watchdog_perform_action () at /home/lcapitulino/work/src/upstream/qmp-unstable/hw/watchdog/watchdog.c:126
> #8 0x00007f29938c679d in i6300esb_timer_expired (vp=0x7f2994d17d40)
> at /home/lcapitulino/work/src/upstream/qmp-unstable/hw/watchdog/wdt_i6300esb.c:197
> #9 0x00007f299392a8ce in timerlist_run_timers (timer_list=0x7f2994548ec0)
> at /home/lcapitulino/work/src/upstream/qmp-unstable/qemu-timer.c:491
> #10 0x00007f299392a916 in qemu_clock_run_timers (type=QEMU_CLOCK_VIRTUAL)
> at /home/lcapitulino/work/src/upstream/qmp-unstable/qemu-timer.c:502
> #11 0x00007f299392abfe in qemu_clock_run_all_timers () at /home/lcapitulino/work/src/upstream/qmp-unstable/qemu-timer.c:608
> #12 0x00007f299392956a in main_loop_wait (nonblocking=0) at /home/lcapitulino/work/src/upstream/qmp-unstable/main-loop.c:490
> #13 0x00007f299374b40c in main_loop () at /home/lcapitulino/work/src/upstream/qmp-unstable/vl.c:2007
> #14 0x00007f2993752e5d in main (argc=23, argv=0x7fffc6a5a738, envp=0x7fffc6a5a7f8)
> at /home/lcapitulino/work/src/upstream/qmp-unstable/vl.c:4526
>
Can you include the backtrace for the VCPU thread(s) too?
Paolo
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [old BUG]: -watchdog-action pause hangs QEMU
2014-06-26 21:24 ` Paolo Bonzini
@ 2014-06-27 12:45 ` Luiz Capitulino
2014-06-27 12:50 ` Paolo Bonzini
0 siblings, 1 reply; 5+ messages in thread
From: Luiz Capitulino @ 2014-06-27 12:45 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: rjones, qemu-devel
On Thu, 26 Jun 2014 23:24:09 +0200
Paolo Bonzini <pbonzini@redhat.com> wrote:
> Il 26/06/2014 22:19, Luiz Capitulino ha scritto:
> > Here goes a gdb backtrace:
> >
> > #0 0x00007f298ce31759 in syscall () from /lib64/libc.so.6
> > #1 0x00007f29939b0b56 in futex_wait (ev=0x7f2994548f18, val=4294967295)
> > at /home/lcapitulino/work/src/upstream/qmp-unstable/util/qemu-thread-posix.c:304
> > #2 0x00007f29939b0c68 in qemu_event_wait (ev=0x7f2994548f18)
> > at /home/lcapitulino/work/src/upstream/qmp-unstable/util/qemu-thread-posix.c:400
> > #3 0x00007f299392a066 in qemu_clock_enable (type=QEMU_CLOCK_VIRTUAL, enabled=false)
> > at /home/lcapitulino/work/src/upstream/qmp-unstable/qemu-timer.c:171
> > #4 0x00007f2993653cc1 in pause_all_vcpus () at /home/lcapitulino/work/src/upstream/qmp-unstable/cpus.c:1078
> > #5 0x00007f2993652d3f in do_vm_stop (state=RUN_STATE_WATCHDOG) at /home/lcapitulino/work/src/upstream/qmp-unstable/cpus.c:532
> > #6 0x00007f2993654273 in vm_stop (state=RUN_STATE_WATCHDOG) at /home/lcapitulino/work/src/upstream/qmp-unstable/cpus.c:1221
> > #7 0x00007f29938c638d in watchdog_perform_action () at /home/lcapitulino/work/src/upstream/qmp-unstable/hw/watchdog/watchdog.c:126
> > #8 0x00007f29938c679d in i6300esb_timer_expired (vp=0x7f2994d17d40)
> > at /home/lcapitulino/work/src/upstream/qmp-unstable/hw/watchdog/wdt_i6300esb.c:197
> > #9 0x00007f299392a8ce in timerlist_run_timers (timer_list=0x7f2994548ec0)
> > at /home/lcapitulino/work/src/upstream/qmp-unstable/qemu-timer.c:491
> > #10 0x00007f299392a916 in qemu_clock_run_timers (type=QEMU_CLOCK_VIRTUAL)
> > at /home/lcapitulino/work/src/upstream/qmp-unstable/qemu-timer.c:502
> > #11 0x00007f299392abfe in qemu_clock_run_all_timers () at /home/lcapitulino/work/src/upstream/qmp-unstable/qemu-timer.c:608
> > #12 0x00007f299392956a in main_loop_wait (nonblocking=0) at /home/lcapitulino/work/src/upstream/qmp-unstable/main-loop.c:490
> > #13 0x00007f299374b40c in main_loop () at /home/lcapitulino/work/src/upstream/qmp-unstable/vl.c:2007
> > #14 0x00007f2993752e5d in main (argc=23, argv=0x7fffc6a5a738, envp=0x7fffc6a5a7f8)
> > at /home/lcapitulino/work/src/upstream/qmp-unstable/vl.c:4526
> >
>
> Can you include the backtrace for the VCPU thread(s) too?
Here you go, I start the guest with only one vCPU.
#0 0x00007f9d89d2a59d in __lll_lock_wait () from /lib64/libpthread.so.0
#1 0x00007f9d89d26179 in _L_lock_814 () from /lib64/libpthread.so.0
#2 0x00007f9d89d26048 in pthread_mutex_lock () from /lib64/libpthread.so.0
#3 0x00007f9d8b5b4687 in qemu_mutex_lock (mutex=0x7f9d8ba9c340 <qemu_global_mutex>) at /home/lcapitulino/work/src/upstream/qmp-unstable/util/qemu-thread-posix.c:76
#4 0x00007f9d8b257c02 in qemu_mutex_lock_iothread () at /home/lcapitulino/work/src/upstream/qmp-unstable/cpus.c:1044
#5 0x00007f9d8b26e8bb in kvm_cpu_exec (cpu=0x7f9d8e04b830) at /home/lcapitulino/work/src/upstream/qmp-unstable/kvm-all.c:1716
#6 0x00007f9d8b2577c5 in qemu_kvm_cpu_thread_fn (arg=0x7f9d8e04b830) at /home/lcapitulino/work/src/upstream/qmp-unstable/cpus.c:874
#7 0x00007f9d89d23f33 in start_thread () from /lib64/libpthread.so.0
#8 0x00007f9d84a3aded in clone () from /lib64/libc.so.6
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [old BUG]: -watchdog-action pause hangs QEMU
2014-06-27 12:45 ` Luiz Capitulino
@ 2014-06-27 12:50 ` Paolo Bonzini
2014-06-27 13:42 ` Luiz Capitulino
0 siblings, 1 reply; 5+ messages in thread
From: Paolo Bonzini @ 2014-06-27 12:50 UTC (permalink / raw)
To: Luiz Capitulino; +Cc: rjones, qemu-devel
Il 27/06/2014 14:45, Luiz Capitulino ha scritto:
> On Thu, 26 Jun 2014 23:24:09 +0200
> Paolo Bonzini <pbonzini@redhat.com> wrote:
>
>> Il 26/06/2014 22:19, Luiz Capitulino ha scritto:
>>> Here goes a gdb backtrace:
>>>
>>> #0 0x00007f298ce31759 in syscall () from /lib64/libc.so.6
>>> #1 0x00007f29939b0b56 in futex_wait (ev=0x7f2994548f18, val=4294967295)
>>> at /home/lcapitulino/work/src/upstream/qmp-unstable/util/qemu-thread-posix.c:304
>>> #2 0x00007f29939b0c68 in qemu_event_wait (ev=0x7f2994548f18)
>>> at /home/lcapitulino/work/src/upstream/qmp-unstable/util/qemu-thread-posix.c:400
>>> #3 0x00007f299392a066 in qemu_clock_enable (type=QEMU_CLOCK_VIRTUAL, enabled=false)
>>> at /home/lcapitulino/work/src/upstream/qmp-unstable/qemu-timer.c:171
/* Disabling the clock will wait for related timerlists to stop
* executing qemu_run_timers. Thus, this functions should not
* be used from the callback of a timer that is based on @clock.
* Doing so would cause a deadlock.
*/
It does indeed. I'll post a fix during hard freeze.
Paolo
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [old BUG]: -watchdog-action pause hangs QEMU
2014-06-27 12:50 ` Paolo Bonzini
@ 2014-06-27 13:42 ` Luiz Capitulino
0 siblings, 0 replies; 5+ messages in thread
From: Luiz Capitulino @ 2014-06-27 13:42 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: rjones, qemu-devel
On Fri, 27 Jun 2014 14:50:27 +0200
Paolo Bonzini <pbonzini@redhat.com> wrote:
> Il 27/06/2014 14:45, Luiz Capitulino ha scritto:
> > On Thu, 26 Jun 2014 23:24:09 +0200
> > Paolo Bonzini <pbonzini@redhat.com> wrote:
> >
> >> Il 26/06/2014 22:19, Luiz Capitulino ha scritto:
> >>> Here goes a gdb backtrace:
> >>>
> >>> #0 0x00007f298ce31759 in syscall () from /lib64/libc.so.6
> >>> #1 0x00007f29939b0b56 in futex_wait (ev=0x7f2994548f18, val=4294967295)
> >>> at /home/lcapitulino/work/src/upstream/qmp-unstable/util/qemu-thread-posix.c:304
> >>> #2 0x00007f29939b0c68 in qemu_event_wait (ev=0x7f2994548f18)
> >>> at /home/lcapitulino/work/src/upstream/qmp-unstable/util/qemu-thread-posix.c:400
> >>> #3 0x00007f299392a066 in qemu_clock_enable (type=QEMU_CLOCK_VIRTUAL, enabled=false)
> >>> at /home/lcapitulino/work/src/upstream/qmp-unstable/qemu-timer.c:171
>
>
> /* Disabling the clock will wait for related timerlists to stop
> * executing qemu_run_timers. Thus, this functions should not
> * be used from the callback of a timer that is based on @clock.
> * Doing so would cause a deadlock.
> */
>
> It does indeed. I'll post a fix during hard freeze.
Thanks Paolo!
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-06-27 13:42 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-26 20:19 [Qemu-devel] [old BUG]: -watchdog-action pause hangs QEMU Luiz Capitulino
2014-06-26 21:24 ` Paolo Bonzini
2014-06-27 12:45 ` Luiz Capitulino
2014-06-27 12:50 ` Paolo Bonzini
2014-06-27 13:42 ` Luiz Capitulino
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).