qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [Bug 1098729] Re: qemu-user-static for armhf: segfault in t


From: Peter Maydell
Subject: [Qemu-devel] [Bug 1098729] Re: qemu-user-static for armhf: segfault in threaded code
Date: Sun, 03 Mar 2013 22:41:18 -0000

The class of bugs exemplified by the symptoms described here are those
where the multithreaded guest program causes QEMU to misbehave because
we are sharing the code-translation globals (eg the generated code
buffer) between multiple threads and they trod on each others' toes.

(The race described in the comment in cpu_unlink_tb() has been fixed
under LP:668799.)

-- 
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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]