2011/5/26 Ozkan Sezer <seze...@gmail.com>:
> 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.

Hmm, AFAIR (but I might be wrong) you applied it to branch and trunk, isn't it?

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