summary refs log tree commit diff stats
path: root/results/classifier/zero-shot-user-mode/instruction/1357206
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/zero-shot-user-mode/instruction/1357206')
-rw-r--r--results/classifier/zero-shot-user-mode/instruction/135720665
1 files changed, 65 insertions, 0 deletions
diff --git a/results/classifier/zero-shot-user-mode/instruction/1357206 b/results/classifier/zero-shot-user-mode/instruction/1357206
new file mode 100644
index 00000000..05e0960e
--- /dev/null
+++ b/results/classifier/zero-shot-user-mode/instruction/1357206
@@ -0,0 +1,65 @@
+instruction: 0.411
+runtime: 0.347
+syscall: 0.241
+
+
+
+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.
\ No newline at end of file