On Thu, May 26, 2011 at 1:27 PM, Kai Tietz <ktiet...@googlemail.com> wrote:
> 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?

I certainly did not :)

If it is OK'ed, I will need the patch file again if I will be the one to apply
it.  (and to trunk only, the release branch doesn't have msvcr90 defs.)

>
> Kai

--
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

Reply via email to