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

Reply via email to