On 01/03/17 15:19, Alex Bennée wrote: > Actually looking at where cpu_check_irq is I've pushed the BQL wraps > higher up: > > > https://github.com/stsquad/qemu/commit/f52e01bf4d3415ce4fad54cbb491f6c30a8e1903 > > The reasoning is HW emulation code can expect to be run under the BQL. > Anything triggered by MMIO for example will automatically have the lock. > The problem is helpers which trigger hardware actions (ARM has ARM_CP_IO > for this). We talk about this in the design document: > > > http://git.qemu-project.org/?p=qemu.git;a=blob;f=docs/multi-thread-tcg.txt;h=a99b4564c6258576acfa141f51f4b80131969519;hb=HEAD#l201 > >> I ran out of time yesterday to run through all my SPARC64 tests, however >> if this is the case then the issue will definitely appear in >> qemu-system-sparc64 which seems to be supported by people seeing >> intermittent failures in prom-env-test. > > So I made the change to both sparc and sparc64 in the above commit. > > I haven't managed to run into the intermittent trigger yet. How do I run > the test directly? > > make tests/prom-env-test > > Just makes the test case and > > ./tests/prom-env-test > ** > ERROR:tests/libqtest.c:589:qtest_get_arch: assertion failed: (qemu != NULL) > Aborted (core dumped)
Yeah, I couldn't work out how to run a single test either so ended up cycling through a complete set of "make check" runs in order to try and provoke the assert(), and despite all this I was still unable to reproduce the "make check" error locally. Fortunately with the debian-40r4a-sparc-netinst.iso I was able to reproduce it fairly easily under qemu-system-sparc so I'd suggest that you go that route. If you can't find anywhere that hosts that particular image for testing, do contact me off-list and I'll temporarily upload it somewhere for you. ATB, Mark.