summaryrefslogtreecommitdiffstats
path: root/results/classifier/118/none/1357206
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--results/classifier/118/none/135720698
1 files changed, 98 insertions, 0 deletions
diff --git a/results/classifier/118/none/1357206 b/results/classifier/118/none/1357206
new file mode 100644
index 00000000..0d9ed752
--- /dev/null
+++ b/results/classifier/118/none/1357206
@@ -0,0 +1,98 @@
+performance: 0.323
+i386: 0.271
+device: 0.250
+graphic: 0.250
+semantic: 0.202
+mistranslation: 0.199
+user-level: 0.187
+debug: 0.183
+ppc: 0.181
+socket: 0.177
+PID: 0.166
+architecture: 0.150
+assembly: 0.141
+peripherals: 0.139
+permissions: 0.137
+kernel: 0.132
+vnc: 0.131
+network: 0.124
+hypervisor: 0.108
+arm: 0.099
+boot: 0.098
+risc-v: 0.091
+register: 0.085
+virtual: 0.083
+TCG: 0.079
+x86: 0.074
+VMM: 0.074
+KVM: 0.071
+files: 0.031
+
+QEMU user mode still crashes in multi-thread code.
+
+I compiled the qemu 2.0 release source and find out qemu crashing when emulating multi-thread code in user mode.
+
+I did a little search and found LP:668799 but it is far from now and it is probably not the problem here.
+
+I used program below as the test program:
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <pthread.h>
+
+void *print_message_function( void *ptr );
+
+main()
+{
+ pthread_t thread1, thread2;
+ const char *message1 = "Thread 1";
+ const char *message2 = "Thread 2";
+ int iret1, iret2;
+
+ /* Create independent threads each of which will execute function */
+
+ iret1 = pthread_create( &thread1, NULL, print_message_function, (void*) message1);
+ if(iret1)
+ {
+ fprintf(stderr,"Error - pthread_create() return code: %d\n",iret1);
+ exit(EXIT_FAILURE);
+ }
+
+ iret2 = pthread_create( &thread2, NULL, print_message_function, (void*) message2);
+ if(iret2)
+ {
+ fprintf(stderr,"Error - pthread_create() return code: %d\n",iret2);
+ exit(EXIT_FAILURE);
+ }
+
+ printf("pthread_create() for thread 1 returns: %d\n",iret1);
+ printf("pthread_create() for thread 2 returns: %d\n",iret2);
+
+ /* Wait till threads are complete before main continues. Unless we */
+ /* wait we run the risk of executing an exit which will terminate */
+ /* the process and all threads before the threads have completed. */
+
+ pthread_join( thread1, NULL);
+ pthread_join( thread2, NULL);
+
+ exit(EXIT_SUCCESS);
+}
+
+void *print_message_function( void *ptr )
+{
+ char *message;
+ message = (char *) ptr;
+ printf("%s \n", message);
+}
+
+Compiled to i386 and aarch64 object,
+and both qemu-i386 and qemu-aarch64 had segmentation faults.
+
+I think this if bug lp:1098729 which is still open.
+
+
+
+
+This test case now works for me, so I think we have resolved the bug that was showing up here.
+
+