On Wed, Sep 26, 2018 at 10:23:25 +0200, Paolo Bonzini wrote: > On 24/09/2018 20:46, Emilio G. Cota wrote: > > Applying this on my local tree is deadlocking icount, since > > cpu_update_icount is called from cpu_get_icount_raw_locked: > > > > #6 cpu_update_icount (cpu=<optimized out>) at /data/src/qemu/cpus.c:257 > > #7 0x000055a6fbc7ae5c in cpu_get_icount_raw_locked () at > > /data/src/qemu/cpus.c:271 > > #8 0x000055a6fbc7ae99 in cpu_get_icount_locked () at > > /data/src/qemu/cpus.c:279 > > #9 0x000055a6fbc7b3ac in cpu_get_icount () at /data/src/qemu/cpus.c:302 > > #10 0x000055a6fc0f3a05 in qemu_clock_get_ns > > (type=type@entry=QEMU_CLOCK_VIRTUAL) at /data/src/qemu/util/qemu-timer.c:601 > > > > I am however not sure what Paolo's queued tree looks like, so I > > might be missing something. > > No, you're not missing anything. > > Looking at other callers of cpu_update_icount, this should be the fix: > > diff --git a/cpus.c b/cpus.c (snip)
This does indeed fix the deadlock. Feel free to add my Tested-by: Emilio G. Cota <c...@braap.org> in the eventual patch. Thanks, Emilio