On Thu, May 26, 2011 at 11:42 AM, Kai Tietz <ktiet...@googlemail.com> wrote: > 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
Off-topic: IIRC, Dongsheng's msvcr90 patch was OK'ed. Is it applied? -- O.S. ------------------------------------------------------------------------------ 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