You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
1
(1) |
2
(4) |
3
(3) |
4
(6) |
5
(14) |
6
(10) |
7
(4) |
|
8
(2) |
9
(4) |
10
(7) |
11
(8) |
12
(5) |
13
(11) |
14
(4) |
|
15
(4) |
16
(9) |
17
(6) |
18
|
19
|
20
|
21
|
|
22
(3) |
23
(1) |
24
(7) |
25
(12) |
26
(8) |
27
(13) |
28
(4) |
|
29
(3) |
30
(4) |
|
|
|
|
|
|
From: ERSEK L. <la...@ca...> - 2009-11-04 21:29:33
|
Hi,
[0] states:
----------
7.5. Hints and Tips for Effective Use of Helgrind
3. Avoid POSIX condition variables
[...]
a solution to this problem that does not require source-level
annotation of condition-variable wait loops is beyond the current
state of the art.
----------
I respectfully ask if the following passage could be recommended for the
Waiter as a code transformation that pessimizes, but does not invalidate
the code. If this qualifies as "source-level annotation of
condition-variable wait loops", then I apologize for the noise. (I
interpret "source-level annotation" as specially formatted comments, or
#pragma's, or Valgrind-specific API calls etc.)
----------
If your original code looks (as it should look) like
pthread_mutex_lock(mx);
while (!b) {
pthread_cond_wait(cv, mx);
}
pthread_mutex_unlock(mx);
Then consider inserting the following COMPILING_FOR_VALGRIND block:
pthread_mutex_lock(mx);
#ifdef COMPILING_FOR_VALGRIND
{
struct timespec epoch;
int ret;
epoch.tv_sec = 0;
epoch.tv_nsec = 0;
ret = pthread_cond_timedwait(cv, mx, &epoch);
assert(ETIMEDOUT == ret || 0 == ret);
}
#endif
while (!b) {
pthread_cond_wait(cv, mx);
}
pthread_mutex_unlock(mx);
----------
1. The dependency on the condition variable is now unavoidable, no matter
the initial value of "b" right after acquiring "mx"; so Valgrind can see
the dependency unconditionally.
2. No matter the value of "ret" (0 or ETIMEDOUT), pthread_cond_timedwait()
will have released and re-acquired mutex "mx"; see [1]. This is new
mutex/condvar activity, but it shouldn't hurt too much performance-wise.
3. The clock selection (see [2]) of the condition variable shouldn't
matter with an absolute time barrier set to 0. The epoch of whichever
clock is selected happens in the past, thus pthread_cond_timedwait()
should return immediately.
4. pthread_cond_timedwait() introduces a cancellation point. This is
nothing new if (!b) holds, because pthread_cond_wait() is a cancellation
point anyway. If "b" is true, however, this cancellation point is new.
Shouldn't hurt too much, since the original waiter code can't predict the
value of "b" either, so it must be prepared for cancellation anyway.
5. If "ret" is ETIMEDOUT, then we've received no signal/broadcast for
sure; back to business as usual. If "ret" is 0, we have received a
signal/broadcast (or a spurious wakeup), but we'll still check "b" first,
so the code stays valid.
As said above, I apologize if this is obvious and already covered by the
exclusion of "source-level annotation".
Thanks,
lacos
[0] http://valgrind.org/docs/manual/hg-manual.html#hg-manual.effective-use
[1] http://www.opengroup.org/onlinepubs/000095399/functions/pthread_cond_timedwait.html
[2] http://valgrind.org/docs/manual/drd-manual.html#drd-manual.pctw
|
|
From: Bart V. A. <bar...@gm...> - 2009-11-04 08:36:19
|
Nightly build on cellbuzz-native ( cellbuzz, ppc64, Fedora 7, native ) Started at 2009-11-04 02:22:58 EST Ended at 2009-11-04 03:35:59 EST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Last 20 lines of verbose log follow echo gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -o clientperm clientperm.o gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -o custom_alloc custom_alloc.o gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -o custom-overlap custom-overlap.o source='deep_templates.cpp' object='deep_templates-deep_templates.o' libtool=no \ DEPDIR=.deps depmode=none /bin/sh ../../depcomp \ g++ -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -Winline -Wall -Wshadow -g -m64 -O -gstabs -c -o deep_templates-deep_templates.o `test -f 'deep_templates.cpp' || echo './'`deep_templates.cpp ../../depcomp: line 566: exec: g++: not found make[6]: *** [deep_templates-deep_templates.o] Error 127 make[6]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new/memcheck/tests' make[5]: *** [check-am] Error 2 make[5]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new/memcheck/tests' make[4]: *** [check-recursive] Error 1 make[4]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new/memcheck/tests' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new/memcheck' make[2]: *** [check] Error 2 make[2]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new/memcheck' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new' make: *** [check] Error 2 ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Last 20 lines of verbose log follow echo gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -o clientperm clientperm.o gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -o custom_alloc custom_alloc.o gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -o custom-overlap custom-overlap.o source='deep_templates.cpp' object='deep_templates-deep_templates.o' libtool=no \ DEPDIR=.deps depmode=none /bin/sh ../../depcomp \ g++ -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -Winline -Wall -Wshadow -g -m64 -O -gstabs -c -o deep_templates-deep_templates.o `test -f 'deep_templates.cpp' || echo './'`deep_templates.cpp ../../depcomp: line 566: exec: g++: not found make[6]: *** [deep_templates-deep_templates.o] Error 127 make[6]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-old/memcheck/tests' make[5]: *** [check-am] Error 2 make[5]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-old/memcheck/tests' make[4]: *** [check-recursive] Error 1 make[4]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-old/memcheck/tests' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-old/memcheck' make[2]: *** [check] Error 2 make[2]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-old/memcheck' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-old' make: *** [check] Error 2 ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Nov 4 02:59:29 2009 --- new.short Wed Nov 4 03:35:59 2009 *************** *** 15,27 **** make[6]: *** [deep_templates-deep_templates.o] Error 127 ! make[6]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-old/memcheck/tests' make[5]: *** [check-am] Error 2 ! make[5]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-old/memcheck/tests' make[4]: *** [check-recursive] Error 1 ! make[4]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-old/memcheck/tests' make[3]: *** [check-recursive] Error 1 ! make[3]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-old/memcheck' make[2]: *** [check] Error 2 ! make[2]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-old/memcheck' make[1]: *** [check-recursive] Error 1 ! make[1]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-old' make: *** [check] Error 2 --- 15,27 ---- make[6]: *** [deep_templates-deep_templates.o] Error 127 ! make[6]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new/memcheck/tests' make[5]: *** [check-am] Error 2 ! make[5]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new/memcheck/tests' make[4]: *** [check-recursive] Error 1 ! make[4]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new/memcheck/tests' make[3]: *** [check-recursive] Error 1 ! make[3]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new/memcheck' make[2]: *** [check] Error 2 ! make[2]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new/memcheck' make[1]: *** [check-recursive] Error 1 ! make[1]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new' make: *** [check] Error 2 |
|
From: Nicholas N. <n.n...@gm...> - 2009-11-04 03:51:17
|
On Wed, Nov 4, 2009 at 7:14 AM, Dodji Seketeli <do...@re...> wrote: > > Just curious, is there an IRC channel where valgrind hackers join to > discuss about development topics ? No. Nick |
|
From: Tom H. <th...@cy...> - 2009-11-04 03:50:12
|
Nightly build on vauxhall ( x86_64, Fedora 11 ) Started at 2009-11-04 03:20:06 GMT Ended at 2009-11-04 03:49:47 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 541 tests, 9 stderr failures, 1 stdout failure, 0 post failures == memcheck/tests/linux/stack_switch (stderr) memcheck/tests/long_namespace_xml (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc23_bogus_condwait (stderr) drd/tests/pth_detached_sem (stdout) drd/tests/qt4_mutex (stderr) drd/tests/qt4_rwlock (stderr) drd/tests/qt4_semaphore (stderr) exp-ptrcheck/tests/bad_percentify (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 541 tests, 8 stderr failures, 0 stdout failures, 0 post failures == memcheck/tests/linux/stack_switch (stderr) memcheck/tests/long_namespace_xml (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc23_bogus_condwait (stderr) drd/tests/qt4_mutex (stderr) drd/tests/qt4_rwlock (stderr) exp-ptrcheck/tests/bad_percentify (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Nov 4 03:35:08 2009 --- new.short Wed Nov 4 03:49:47 2009 *************** *** 8,10 **** ! == 541 tests, 8 stderr failures, 0 stdout failures, 0 post failures == memcheck/tests/linux/stack_switch (stderr) --- 8,10 ---- ! == 541 tests, 9 stderr failures, 1 stdout failure, 0 post failures == memcheck/tests/linux/stack_switch (stderr) *************** *** 14,17 **** --- 14,19 ---- helgrind/tests/tc23_bogus_condwait (stderr) + drd/tests/pth_detached_sem (stdout) drd/tests/qt4_mutex (stderr) drd/tests/qt4_rwlock (stderr) + drd/tests/qt4_semaphore (stderr) exp-ptrcheck/tests/bad_percentify (stderr) |
|
From: Tom H. <th...@cy...> - 2009-11-04 03:48:50
|
Nightly build on lloyd ( x86_64, Fedora 7 ) Started at 2009-11-04 03:05:05 GMT Ended at 2009-11-04 03:48:31 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 531 tests, 1 stderr failure, 0 stdout failures, 0 post failures == helgrind/tests/tc06_two_races_xml (stderr) |
|
From: Tom H. <th...@cy...> - 2009-11-04 03:36:04
|
Nightly build on mg ( x86_64, Fedora 9 ) Started at 2009-11-04 03:10:08 GMT Ended at 2009-11-04 03:35:44 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 538 tests, 2 stderr failures, 0 stdout failures, 0 post failures == helgrind/tests/pth_spinlock (stderr) helgrind/tests/tc06_two_races_xml (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 538 tests, 1 stderr failure, 0 stdout failures, 0 post failures == helgrind/tests/tc06_two_races_xml (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Nov 4 03:23:02 2009 --- new.short Wed Nov 4 03:35:44 2009 *************** *** 8,10 **** ! == 538 tests, 1 stderr failure, 0 stdout failures, 0 post failures == helgrind/tests/tc06_two_races_xml (stderr) --- 8,11 ---- ! == 538 tests, 2 stderr failures, 0 stdout failures, 0 post failures == ! helgrind/tests/pth_spinlock (stderr) helgrind/tests/tc06_two_races_xml (stderr) |