bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Test-lock hang (not 100% reproducible) on GNU/Linux


From: Pádraig Brady
Subject: Re: Test-lock hang (not 100% reproducible) on GNU/Linux
Date: Fri, 23 Dec 2016 17:25:49 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0

On 22/12/16 21:58, Bruno Haible wrote:
> Pádraig Brady wrote:
>> There was a recent enough report on helgrind reporting issues with it:
>> https://lists.gnu.org/archive/html/bug-gnulib/2015-07/msg00032.html
> 
> I would view this as a false positive. The test uses some 'volatile'
> variables to communicate among threads, and 'valgrind --tool=helgrind'
> does not know about it. There are no mentions of 'volatile' in the
> helgrind documentation http://valgrind.org/docs/manual/hg-manual.html,
> and there are similar reports at
> https://sourceforge.net/p/valgrind/mailman/valgrind-users/thread/5038A955.6060108%40acm.org/#msg29721076
> 
>> I've seen this test take a minute or so on a 40 core system.
> 
> The running time is a different problem. I observe a long running time
> with "#define EXPLICIT_YIELD 0". But the default is "#define EXPLICIT_YIELD 
> 1".
> 
> When I use the attached patch to avoid the use of 'volatile' and replace it
> by a lock, like explained in
> http://stackoverflow.com/questions/10091112/using-a-global-variable-to-control-a-while-loop-in-a-separate-thread,
> it does not change the run time that I observe on a 4-core system:
> 
> $ time ./test-lock 
> Starting test_lock ... OK
> Starting test_rwlock ... OK
> Starting test_recursive_lock ... OK
> Starting test_once ... OK
> 
> real    0m1.770s
> user    0m1.240s
> sys     0m10.268s
> 
> Can someone test how this looks like on a 40-core system?

Wow that's much better on a 40 core system:

Before your patch:
=================
$ time ./test-lock
Starting test_lock ... OK
Starting test_rwlock ... OK
Starting test_recursive_lock ... OK
Starting test_once ... OK

real    1m32.547s
user    1m32.455s
sys     13m21.532s

After your patch:
=================
$ time ./test-lock
Starting test_lock ... OK
Starting test_rwlock ... OK
Starting test_recursive_lock ... OK
Starting test_once ... OK

real    0m3.364s
user    0m3.087s
sys     0m25.477s

thanks!
Pádraig



reply via email to

[Prev in Thread] Current Thread [Next in Thread]