At the top of function cpu_unlink_tb() in translate-all.c: /* FIXME: TB unchaining isn't SMP safe. For now just ignore the problem and hope the cpu will stop of its own accord. For userspace emulation this often isn't actually as bad as it sounds. Often signals are used primarily to interrupt blocking syscalls. */
-- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1098729 Title: qemu-user-static for armhf: segfault in threaded code Status in QEMU: New Bug description: Currently running QEMU from git (fedf2de31023) and running the armhf version of qemu-user-static which I have renamed qemu-armhf-static to follow the naming convention used in Debian. The host systems is a Debian testing x86_64-linux and I have an Debian testing armhf chroot which I invoke using schroot. Majority of program in the armhf chroot run fine, but I'm getting qemu segfaults in multi-threaded programs. As an example, I've grabbed the threads demo program here: https://computing.llnl.gov/tutorials/pthreads/samples/dotprod_mutex.c and changed NUMTHRDS from 4 to 10. I compile it as (same compile command on both x86_64 host and armhf guest): gcc -Wall -lpthread dotprod_mutex.c -o dotprod_mutex When compiled for x86_64 host it runs perfectly and even under Valgrind displays no errors whatsoever. However, when I compile the program in my armhs chroot and run it it usually (but not always) segaults or hangs or crashes. Example output: (armhf) $ ./dotprod_mutex Thread 1 did 100000 to 200000: mysum=100000.000000 global sum=100000.000000 Thread 0 did 0 to 100000: mysum=100000.000000 global sum=200000.000000 TCG temporary leak before f6731ca0 qemu-arm-static: /home/erikd/Git/qemu-posix-timer-hacking/Upstream/tcg/tcg-op.h:2371: tcg_gen_goto_tb: Assertion `(tcg_ctx.goto_tb_issue_mask & (1 << idx)) == 0' failed. (armhf) $ ./dotprod_mutex qemu: uncaught target signal 11 (Segmentation fault) - core dumped Segmentation fault (armhf) $ ./dotprod_mutex qemu-arm-static: /home/erikd/Git/qemu-posix-timer-hacking/Upstream/tcg/tcg.c:519: tcg_temp_free_internal: Assertion `idx >= s->nb_globals && idx < s->nb_temps' failed. (armhf) $ ./dotprod_mutex Thread 1 did 100000 to 200000: mysum=100000.000000 global sum=100000.000000 qemu: uncaught target signal 11 (Segmentation fault) - core dumped Segmentation fault To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1098729/+subscriptions