2011/5/25 Dongsheng Song <dongsheng.s...@gmail.com>: > After I review the source, the failure was caused by sem_init only > support PTHREAD_PROCESS_PRIVATE, > but benchtest.c required PTHREAD_PROCESS_SHARED. > > Here is my patch. > > On Wed, May 25, 2011 at 22:11, Dongsheng Song <dongsheng.s...@gmail.com> > wrote: >> >> Hi, >> >> With the attached patch, I can building and testing WinPthread, but >> benchmark testing 5th failed on XP SP3: >> >> $ cd winpthreads/tests >> $ make clean GC >> ... >> ALL TESTS PASSED! Congratulations! >> >> $ make GC-bench >> Copying .././outlib/libpthreadGC2-32.dll.a >> Copying .././outlib/pthreadGC2-32.dll >> make -k TEST=GC CC=-gcc XXCFLAGS="-D__CLEANUP_C" XXLIBS="" all-bench >> make[1]: Entering directory >> `/o/vcs/svn/mingw-w64/experimental/winpthreads/tests >> ' >> Copying ../include/pthread.h >> Copying ../include/semaphore.h >> Running benchtest1 >> ./benchtest1 >> ============================================================================= >> >> Lock plus unlock on an unlocked mutex. >> 10000000 iterations >> >> Test Total(msec) average(usec) >> ----------------------------------------------------------------------------- >> Dummy call x 2 46 0.005 >> Dummy call -> Interlocked with cond x 2 344 0.034 >> InterlockedOp x 2 328 0.033 >> Simple Critical Section 360 0.036 >> Old PT Mutex using a Critical Section (WNT) 406 0.041 >> Old PT Mutex using a Win32 Mutex (W9x) 9969 0.997 >> ............................................................................. >> PTHREAD_MUTEX_DEFAULT (W9x,WNT) 12640 1.264 >> PTHREAD_MUTEX_NORMAL (W9x,WNT) 12610 1.261 >> PTHREAD_MUTEX_ERRORCHECK (W9x,WNT) 12656 1.266 >> PTHREAD_MUTEX_RECURSIVE (W9x,WNT) 12969 1.297 >> ============================================================================= >> Done >> Compiling benchtest2.exe >> -gcc -O3 -UNDEBUG -Wall -D__CLEANUP_C benchlib.o -o benchtest2.exe >> benchtest2.c >> -I./include -L../outlib -lpthreadGC2-32 -lsupc++ >> Running benchtest2 >> ./benchtest2 >> ============================================================================= >> >> Lock plus unlock on a locked mutex. >> 100000 iterations, four locks/unlocks per iteration. >> >> Test Total(msec) average(usec) >> ----------------------------------------------------------------------------- >> Simple Critical Section 375 0.938 >> Old PT Mutex using a Critical Section (WNT) 437 1.093 >> Old PT Mutex using a Win32 Mutex (W9x) 500 1.250 >> ............................................................................. >> PTHREAD_MUTEX_DEFAULT (W9x,WNT) 640 1.600 >> PTHREAD_MUTEX_NORMAL (W9x,WNT) 609 1.523 >> PTHREAD_MUTEX_ERRORCHECK (W9x,WNT) 656 1.640 >> PTHREAD_MUTEX_RECURSIVE (W9x,WNT) 594 1.485 >> ============================================================================= >> Done >> Compiling benchtest3.exe >> -gcc -O3 -UNDEBUG -Wall -D__CLEANUP_C benchlib.o -o benchtest3.exe >> benchtest3.c >> -I./include -L../outlib -lpthreadGC2-32 -lsupc++ >> Running benchtest3 >> ./benchtest3 >> ============================================================================= >> >> Trylock on a locked mutex. >> 10000000 iterations. >> >> Test Total(msec) average(usec) >> ----------------------------------------------------------------------------- >> Old PT Mutex using a Critical Section (WNT) 296 0.030 >> Old PT Mutex using a Win32 Mutex (W9x) 5375 0.537 >> ............................................................................. >> PTHREAD_MUTEX_DEFAULT (W9x,WNT) 1297 0.130 >> PTHREAD_MUTEX_NORMAL (W9x,WNT) 1297 0.130 >> PTHREAD_MUTEX_ERRORCHECK (W9x,WNT) 1297 0.130 >> PTHREAD_MUTEX_RECURSIVE (W9x,WNT) 1297 0.130 >> ============================================================================= >> Done >> Compiling benchtest4.exe >> -gcc -O3 -UNDEBUG -Wall -D__CLEANUP_C benchlib.o -o benchtest4.exe >> benchtest4.c >> -I./include -L../outlib -lpthreadGC2-32 -lsupc++ >> Running benchtest4 >> ./benchtest4 >> ============================================================================= >> Trylock plus unlock on an unlocked mutex. >> 10000000 iterations. >> >> Test Total(msec) average(usec) >> ----------------------------------------------------------------------------- >> Old PT Mutex using a Critical Section (WNT) 407 0.041 >> Old PT Mutex using a Win32 Mutex (W9x) 10031 1.003 >> ............................................................................. >> PTHREAD_MUTEX_DEFAULT (W9x,WNT) 12797 1.280 >> PTHREAD_MUTEX_NORMAL (W9x,WNT) 12828 1.283 >> PTHREAD_MUTEX_ERRORCHECK (W9x,WNT) 12797 1.280 >> PTHREAD_MUTEX_RECURSIVE (W9x,WNT) 12937 1.294 >> ============================================================================= >> Done >> Compiling benchtest5.exe >> -gcc -O3 -UNDEBUG -Wall -D__CLEANUP_C benchlib.o -o benchtest5.exe >> benchtest5.c >> -I./include -L../outlib -lpthreadGC2-32 -lsupc++ >> Running benchtest5 >> ./benchtest5 >> ============================================================================= >> >> Operations on a semaphore. >> 1000000 iterations >> >> Test Total(msec) average(usec) >> ----------------------------------------------------------------------------- >> W32 Post with no waiters 454 0.454 >> W32 Wait without blocking 515 0.515 >> Assertion failed: (sem_init(&sema, 0, 0) == 0), file benchtest5.c, line 134 >> make[1]: *** [benchtest5.bench] Error 1 >> make[1]: Target `all-bench' not remade because of errors. >> make[1]: Leaving directory >> `/o/vcs/svn/mingw-w64/experimental/winpthreads/tests' >> >> make: *** [GC-bench] Error 2 >>
Thanks for the patches. I will apply them next days together with license-disclaimer change. Regards, Kai ------------------------------------------------------------------------------ vRanger cuts backup time in half-while increasing security. With the market-leading solution for virtual backup and recovery, you get blazing-fast, flexible, and affordable data protection. Download your free trial now. http://p.sf.net/sfu/quest-d2dcopy1 _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public