summary refs log tree commit diff stats
path: root/results/classifier/105/instruction/1694998
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/105/instruction/1694998')
-rw-r--r--results/classifier/105/instruction/169499862
1 files changed, 62 insertions, 0 deletions
diff --git a/results/classifier/105/instruction/1694998 b/results/classifier/105/instruction/1694998
new file mode 100644
index 00000000..5120a73d
--- /dev/null
+++ b/results/classifier/105/instruction/1694998
@@ -0,0 +1,62 @@
+instruction: 0.955
+device: 0.830
+network: 0.825
+graphic: 0.795
+socket: 0.792
+semantic: 0.758
+mistranslation: 0.749
+boot: 0.706
+vnc: 0.688
+other: 0.671
+KVM: 0.667
+assembly: 0.444
+
+PPC: msgsnd instruction leads to assertion
+
+I tried to send doorbells (using msgsnd) between cores in guest OS. On QEMU v2.9.0 usage of msgsnd instruction leads to error:
+ERROR: <...>/qemu-new/translate-common.c:34:tcg_handle_interrupt: assertion failed: (qemu_mutex_iothread_locked())
+
+
+QEMU v2.8.0 works fine.
+
+QEMU run options: qemu-system-ppc -serial stdio -M ppce500 -cpu e500mc -smp 2 -m 512M -kernel pok.elf
+
+pok.elf attached
+
+
+
+Could you please check whether this patch fixes the issue for you:
+
+diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c
+--- a/target/ppc/excp_helper.c
++++ b/target/ppc/excp_helper.c
+@@ -17,6 +17,7 @@
+  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
+  */
+ #include "qemu/osdep.h"
++#include "qemu/main-loop.h"
+ #include "cpu.h"
+ #include "exec/helper-proto.h"
+ #include "exec/exec-all.h"
+@@ -1132,6 +1133,7 @@ void helper_msgsnd(target_ulong rb)
+         return;
+     }
+ 
++    qemu_mutex_lock_iothread();
+     CPU_FOREACH(cs) {
+         PowerPCCPU *cpu = POWERPC_CPU(cs);
+         CPUPPCState *cenv = &cpu->env;
+@@ -1141,5 +1143,6 @@ void helper_msgsnd(target_ulong rb)
+             cpu_interrupt(cs, CPU_INTERRUPT_HARD);
+         }
+     }
++    qemu_mutex_unlock_iothread();
+ }
+ #endif
+
+
+Yes, Thomas, this patch fixes the issue.
+
+Fix has now been included:
+http://git.qemu.org/?p=qemu.git;a=commitdiff;h=f1c29ebc51be77bd64178c8d
+