diff options
Diffstat (limited to 'results/classifier/105/device/1357206')
| -rw-r--r-- | results/classifier/105/device/1357206 | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/results/classifier/105/device/1357206 b/results/classifier/105/device/1357206 new file mode 100644 index 000000000..170e33d46 --- /dev/null +++ b/results/classifier/105/device/1357206 @@ -0,0 +1,81 @@ +device: 0.250 +graphic: 0.250 +semantic: 0.202 +mistranslation: 0.199 +instruction: 0.191 +socket: 0.177 +assembly: 0.141 +vnc: 0.131 +network: 0.124 +boot: 0.098 +other: 0.093 +KVM: 0.071 + +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. + + |