On Wed, Feb 22, 2017 at 4:02 PM, Alex Bennée <alex.ben...@linaro.org> wrote: > > Alex Bennée <alex.ben...@linaro.org> writes: > >> no-re...@patchew.org writes: >> >>> Hi, >>> >>> This series failed build test on s390x host. Please find the details >>> below. > > It also failed on x86-on-x86 MTTCG as well as other tests: > >>> ERROR:/var/tmp/patchew-tester-tmp-_186415r/src/cpus.c:1554:qemu_mutex_lock_iothread: >>> assertion failed: (!qemu_mutex_iothread_locked()) >>> GTester: last random seed: R02Sf1ce767b432f1559eaf8cc0c5a31eb02 >> >> Well I've seen this before if the IRQ chain doesn't do locking properly >> but I'm at a loss why this breaks on an s390 host as the code is common. >> >> Does anyone have a spare s390 that I can test on? > > Look like I'll have to roll this in: > > > https://github.com/stsquad/qemu/commit/c6f4245ffd9df8ffcd2d4d655c322189c19a6c1a >
I am able to successfully boot my test images using this patch (they fail without it). Another approach might be to reset the lock in the outer loop: diff --git a/cpu-exec.c b/cpu-exec.c index f3c78a9..8327050 100644 --- a/cpu-exec.c +++ b/cpu-exec.c @@ -684,6 +684,9 @@ int cpu_exec(CPUState *cpu) if the guest is in advance */ align_clocks(&sc, cpu); } + if (qemu_mutex_iothread_locked()) { + qemu_mutex_unlock_iothread(); + } } cc->cpu_exec_exit(cpu); I think either patch is fine. Thanks, -- Pranith