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
(10) |
2
(8) |
3
(17) |
4
(28) |
5
(22) |
6
(8) |
|
7
(8) |
8
(22) |
9
(12) |
10
(17) |
11
(14) |
12
(15) |
13
(6) |
|
14
(9) |
15
(9) |
16
(16) |
17
(13) |
18
(18) |
19
(7) |
20
(5) |
|
21
(6) |
22
(5) |
23
(11) |
24
(5) |
25
(11) |
26
(7) |
27
(15) |
|
28
(11) |
29
(12) |
30
(12) |
31
(15) |
|
|
|
|
From: Tom H. <th...@cy...> - 2007-10-03 02:23:08
|
Nightly build on dellow ( x86_64, Fedora 7 ) started at 2007-10-03 03:10:07 BST 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 == 293 tests, 4 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2007-10-03 02:19:51
|
Nightly build on lloyd ( x86_64, Fedora 7 ) started at 2007-10-03 03:05:04 BST 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 == 293 tests, 4 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2007-10-03 02:15:36
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2007-10-03 03:00:03 BST 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 == 295 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Nicholas N. <nj...@cs...> - 2007-10-03 01:30:11
|
On Mon, 1 Oct 2007, Bart Van Assche wrote: > Do you really know what you are doing ? You are not just fixing warnings, > you are changing code. In trunk/coregrind/m_stacktrace.c you changed the > format string %08p into %p. As a result, the printed pointers are no longer > right-aligned. Did you understand what I wrote in the mail I sent on > September 26 to the valgrind-developers mailing list ? I'm wondering what is the right thing to do here. Having the format string warnings is nice, but we should be consistent. Eg. when printing pointers, should we use %p and cast to (void*) when necessary, instead of using 0x%lx? Julian, what do you think? Nick |
|
From: <sv...@va...> - 2007-10-03 01:08:18
|
Author: sewardj
Date: 2007-10-03 02:08:20 +0100 (Wed, 03 Oct 2007)
New Revision: 6931
Log:
First pass at detection of potential deadlocks resulting from
inconsistent lock acquisition orderings.
Modified:
branches/THRCHECK/thrcheck/tc_main.c
branches/THRCHECK/thrcheck/tc_wordfm.c
branches/THRCHECK/thrcheck/tc_wordfm.h
Modified: branches/THRCHECK/thrcheck/tc_main.c
===================================================================
--- branches/THRCHECK/thrcheck/tc_main.c 2007-10-02 09:40:23 UTC (rev 6930)
+++ branches/THRCHECK/thrcheck/tc_main.c 2007-10-03 01:08:20 UTC (rev 6931)
@@ -1179,12 +1179,14 @@
static void map_locks_delete ( Addr ga )
{
- Lock* lk = NULL;
- TC_(delFromFM)( map_locks, (Word*)&lk, (Word)ga );
+ Addr ga2 = 0;
+ Lock* lk = NULL;
+ TC_(delFromFM)( map_locks, (Word*)&ga2, (Word*)&lk, (Word)ga );
/* delFromFM produces the val which is being deleted, if it is
found. So assert it is non-null; that in effect asserts that we
are deleting a (ga, Lock) pair which actually exists. */
tl_assert(lk != NULL);
+ tl_assert(ga2 == ga);
}
@@ -2513,6 +2515,9 @@
/*--- Address range handlers ---*/
/*----------------------------------------------------------------*/
+static void laog__pre_thread_acquires_lock ( Thread*, Lock* ); /* fwds */
+static void laog__handle_lock_deletions ( WordSetID ); /* fwds */
+
static void remove_Lock_from_locksets_of_all_owning_Threads( Lock* lk )
{
Thread* thr;
@@ -2646,6 +2651,9 @@
VG_(printf)("shadow_mem_make_NoAccess(%p, %u, %p): maybe slow case\n",
(void*)a, (UWord)len, (void*)(a+len-1));
+ /* update lock order acquisition graph */
+ laog__handle_lock_deletions( locksToDelete );
+
/* Modify all shadow words, by removing locksToDelete from the lockset
of all ShM and ShR states.
Optimisation 1: skip SecMaps which do not have .hasShared set
@@ -2891,6 +2899,8 @@
goto noerror;
noerror:
+ /* check lock order acquisition graph, and update */
+ laog__pre_thread_acquires_lock( thr, lk );
/* update the thread's held-locks set */
thr->locksetA = TC_(addToWS)( univ_lsets, thr->locksetA, (Word)lk );
thr->locksetW = TC_(addToWS)( univ_lsets, thr->locksetW, (Word)lk );
@@ -2957,6 +2967,8 @@
goto noerror;
noerror:
+ /* check lock order acquisition graph, and update */
+ laog__pre_thread_acquires_lock( thr, lk );
/* update the thread's held-locks set */
thr->locksetA = TC_(addToWS)( univ_lsets, thr->locksetA, (Word)lk );
/* but don't update thr->locksetW, since lk is only rd-held */
@@ -3911,6 +3923,145 @@
/*--------------------------------------------------------------*/
+/*--- Lock acquisition order monitoring ---*/
+/*--------------------------------------------------------------*/
+
+/* Indicates that .fst must always be acquired before .snd */
+typedef
+ struct {
+ Lock* fst;
+ Lock* snd;
+ }
+ LockPair;
+
+static Word cmp_LockPair ( LockPair* lp1, LockPair* lp2 ) {
+ if (lp1->fst < lp2->fst) return -1;
+ if (lp1->fst > lp2->fst) return 1;
+ if (lp1->snd < lp2->snd) return -1;
+ if (lp1->snd > lp2->snd) return 1;
+ return 0;
+}
+
+/* lock order acquisition graph */
+static WordFM* laog = NULL; /* WordFM LockPair* void */
+
+/* Thread 'thr' is acquiring 'lk'. Check for inconsistent ordering
+ between 'lk' and the locks already held by 'thr' and issue a
+ complaint if so. Also, update the ordering graph appropriately.
+*/
+static void laog__pre_thread_acquires_lock (
+ Thread* thr, /* NB: BEFORE lock is added */
+ Lock* lk
+ )
+{
+ LockPair key;
+ Word* ls_words;
+ Word ls_size, i;
+ Bool complain;
+
+ /* It may be that 'thr' already holds 'lk' and is recursively
+ relocking in. In this case we just ignore the call. */
+ if (TC_(elemWS)( univ_lsets, thr->locksetA, (Word)lk ))
+ return;
+
+ if (!laog)
+ laog = TC_(newFM)( tc_zalloc, tc_free,
+ (Word(*)(Word,Word)) cmp_LockPair );
+
+ /* First, the check. Complain if
+ any (lk, old) `elem` laog | old <- locks already held by thr
+ */
+ complain = False;
+ TC_(getPayloadWS)( &ls_words, &ls_size, univ_lsets, thr->locksetA );
+ for (i = 0; i < ls_size; i++) {
+ key.fst = lk;
+ key.snd = (Lock*)ls_words[i];
+ if (TC_(lookupFM)( laog, NULL, NULL, (Word)&key)) {
+ complain = True;
+ break;
+ }
+ }
+ if (complain) {
+ record_error_Misc( thr, "Lock acquisition order is inconsistent "
+ "with previously observed ordering" );
+ }
+
+ /* Second, add to laog the pairs
+ (old, lk) | old <- locks already held by thr
+ */
+ for (i = 0; i < ls_size; i++) {
+ key.fst = (Lock*)ls_words[i];
+ key.snd = lk;
+ if (TC_(lookupFM)( laog, NULL, NULL, (Word)&key )) {
+ /* already present; do nothing */
+ } else {
+ LockPair* nyu = tc_zalloc(sizeof(LockPair));
+ tl_assert(nyu);
+ *nyu = key;
+ TC_(addToFM)( laog, (Word)nyu, (Word)0 );
+ }
+ }
+}
+
+
+/* Delete from 'laog' any pair mentioning a lock in locksToDelete */
+static void laog__handle_lock_deletions (
+ WordSetID /* in univ_lsets */ locksToDelete
+ )
+{
+ Word i;
+ XArray* pairsToDelete;
+
+ tl_assert( laog );
+ tl_assert( ! TC_(isEmptyWS)( univ_lsets, locksToDelete ) );
+
+ /* We can't iterate over laog whilst simultaneously deleting stuff
+ from it (unfortunately). So first round up all the ones to
+ delete into an XArray and then delete them afterwards. All
+ storage associated with the XArray is deleted at the end by
+ VG_(deleteXA). */
+ pairsToDelete = VG_(newXA)( tc_zalloc, tc_free, sizeof(LockPair) );
+ tl_assert(pairsToDelete);
+
+ /* ok. here we go ... */
+ { Word shouldBeZero = 1;
+ LockPair* pair = NULL;
+ TC_(initIterFM)( laog );
+ while (TC_(nextIterFM)( laog, (Word*)&pair, &shouldBeZero)) {
+ tl_assert(shouldBeZero == 0);
+ tl_assert(pair);
+ tl_assert(is_sane_LockN(pair->fst));
+ tl_assert(is_sane_LockN(pair->snd));
+ /* copy *pair into to pairsToDelete */
+ VG_(addToXA)( pairsToDelete, pair );
+ shouldBeZero = 1;
+ pair = NULL;
+ }
+ TC_(doneIterFM)( laog );
+ }
+
+ for (i = 0; i < VG_(sizeXA)( pairsToDelete ); i++) {
+ LockPair* p2 = NULL;
+ LockPair* p = VG_(indexXA)( pairsToDelete, i );
+ /* p points into the internal array of pairsToDelete; that is,
+ it is a copy of the the one in the FM. It is not the same.
+ Hence we need to delete it from the FM and then free up the
+ one in the FM. Fortunately TC_(delFromFM) gives us back a
+ pointer to the old key. */
+ Bool b = TC_(delFromFM)( laog, (Word*)&p2, NULL, (Word)p );
+ tl_assert(b); /* it must previously have been present (!) */
+ tl_assert(p2 != p); /* p is a copy of the original, not a pointer to it */
+ tl_assert(p2->fst == p->fst); /* ... but it contains the same stuff */
+ tl_assert(p2->snd == p->snd);
+ tc_free(p2);
+ }
+
+ /* finally ... */
+ VG_(deleteXA)( pairsToDelete );
+}
+
+
+/*--------------------------------------------------------------*/
/*--- Malloc/free replacements ---*/
/*--------------------------------------------------------------*/
Modified: branches/THRCHECK/thrcheck/tc_wordfm.c
===================================================================
--- branches/THRCHECK/thrcheck/tc_wordfm.c 2007-10-02 09:40:23 UTC (rev 6930)
+++ branches/THRCHECK/thrcheck/tc_wordfm.c 2007-10-03 01:08:20 UTC (rev 6931)
@@ -568,12 +568,15 @@
fm->dealloc(node);
}
-// Delete key from fm, returning associated val if found
-Bool TC_(delFromFM) ( WordFM* fm, /*OUT*/Word* oldV, Word key )
+// Delete key from fm, returning associated key and val if found
+Bool TC_(delFromFM) ( WordFM* fm,
+ /*OUT*/Word* oldK, /*OUT*/Word* oldV, Word key )
{
AvlNode* node = avl_find_node( fm->root, key, fm->kCmp );
if (node) {
avl_remove_wrk( &fm->root, node, fm->kCmp );
+ if (oldK)
+ *oldK = node->key;
if (oldV)
*oldV = node->val;
fm->dealloc(node);
@@ -769,7 +772,7 @@
TC_(addToFM)(bag->fm, w, count-1);
} else {
tl_assert(count == 1);
- TC_(delFromFM)( bag->fm, NULL, w );
+ TC_(delFromFM)( bag->fm, NULL, NULL, w );
}
return True;
} else {
Modified: branches/THRCHECK/thrcheck/tc_wordfm.h
===================================================================
--- branches/THRCHECK/thrcheck/tc_wordfm.h 2007-10-02 09:40:23 UTC (rev 6930)
+++ branches/THRCHECK/thrcheck/tc_wordfm.h 2007-10-03 01:08:20 UTC (rev 6931)
@@ -73,8 +73,9 @@
previous v so that caller can finalise it. Oh well. */
void TC_(addToFM) ( WordFM* fm, Word k, Word v );
-// Delete key from fm, returning associated val if found
-Bool TC_(delFromFM) ( WordFM* fm, /*OUT*/Word* oldV, Word key );
+// Delete key from fm, returning associated key and val if found
+Bool TC_(delFromFM) ( WordFM* fm,
+ /*OUT*/Word* oldK, /*OUT*/Word* oldV, Word key );
// Look up in fm, assigning found key & val at spec'd addresses
Bool TC_(lookupFM) ( WordFM* fm,
|
|
From: <js...@ac...> - 2007-10-03 00:17:22
|
Nightly build on g5 ( SuSE 10.1, ppc970 ) started at 2007-10-03 02:00:01 CEST 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 == 228 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: <js...@ac...> - 2007-10-02 14:00:21
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2007-10-02 09:00:01 BST 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 == 220 tests, 10 stderr failures, 6 stdout failures, 0 posttest failures == memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) none/tests/ppc32/round (stdout) none/tests/ppc32/round (stderr) none/tests/ppc32/test_fx (stdout) none/tests/ppc32/test_fx (stderr) none/tests/ppc32/test_gx (stdout) |
|
From: <sv...@va...> - 2007-10-02 09:40:23
|
Author: sewardj
Date: 2007-10-02 10:40:23 +0100 (Tue, 02 Oct 2007)
New Revision: 6930
Log:
More suppressions.
Modified:
branches/THRCHECK/glibc-2.X-thrcheck.supp
Modified: branches/THRCHECK/glibc-2.X-thrcheck.supp
===================================================================
--- branches/THRCHECK/glibc-2.X-thrcheck.supp 2007-10-02 08:10:04 UTC (rev 6929)
+++ branches/THRCHECK/glibc-2.X-thrcheck.supp 2007-10-02 09:40:23 UTC (rev 6930)
@@ -168,6 +168,12 @@
Thrcheck:Race
fun:pthread_cond_signal@@GLIBC_2.3.2
}
+{
+ thrcheck-glibc2X-condsig-2
+ Thrcheck:Race
+ fun:__lll_mutex_unlock_wake
+ fun:pthread_cond_signal@@GLIBC_2.3.2
+}
###--- pthread_cond_broadcast ---###
# ditto
@@ -190,6 +196,18 @@
#z fun:pthread_cond_wait@@GLIBC_*
#z fun:pthread_cond_wait*
#z}
+{
+ thrcheck-glibc2X-pthcondwait-3
+ Thrcheck:Race
+ fun:__pthread_mutex*lock*
+ fun:pthread_cond_wait@@GLIBC_2.3.2
+}
+{
+ thrcheck-glibc2X-pthcondwait-4
+ Thrcheck:Race
+ fun:__lll_mutex_unlock_wake
+ fun:pthread_cond_wait@@GLIBC_2.3.2
+}
###--- pthread_cond_destroy ---###
# ditto
@@ -236,14 +254,14 @@
fun:_L_mutex_unlock_*
fun:__pthread_mutex_unlock_usercnt
}
+{
+ thrcheck-glibc2X-libpthread-3
+ Thrcheck:Race
+ fun:__lll_mutex_lock_wait
+ fun:_L_mutex_lock_*
+ fun:start_thread
+}
#z{
-#z thrcheck-glibc2X-libpthread-3
-#z Thrcheck:Race
-#z fun:__lll_mutex_lock_wait
-#z fun:_L_mutex_lock_*
-#z fun:start_thread
-#z}
-#z{
#z thrcheck-glibc2X-libpthread-4
#z Thrcheck:Race
#z fun:__lll_mutex_lock_wait
|
|
From: <sv...@va...> - 2007-10-02 08:10:04
|
Author: sewardj
Date: 2007-10-02 09:10:04 +0100 (Tue, 02 Oct 2007)
New Revision: 6929
Log:
Rewrite happens_before_do_dfs_from_to to use an explicit stack rather
than recursion. This fixes sporadic segfaults resulting from stack
overflow when running Qt4 tests examples/threads/semaphores and
examples/threads/waitconditions.
Modified:
branches/THRCHECK/thrcheck/tc_main.c
Modified: branches/THRCHECK/thrcheck/tc_main.c
===================================================================
--- branches/THRCHECK/thrcheck/tc_main.c 2007-10-01 10:33:41 UTC (rev 6928)
+++ branches/THRCHECK/thrcheck/tc_main.c 2007-10-02 08:10:04 UTC (rev 6929)
@@ -46,6 +46,7 @@
#include "pub_tool_replacemalloc.h"
#include "pub_tool_machine.h"
#include "pub_tool_options.h"
+#include "pub_tool_xarray.h"
#include "thrcheck.h"
@@ -1231,62 +1232,97 @@
static UWord stats__hbefore_gsearches = 0; // # searches in graph
static UWord stats__hbefore_gsearchFs = 0; // # fast searches in graph
static UWord stats__hbefore_invals = 0; // # cache invals
+static UWord stats__hbefore_stk_hwm = 0; // stack high water mark
/* Running marker for depth-first searches */
/* NOTE: global variable */
static UInt dfsver_current = 0;
+/* A stack of possibly-unexplored nodes used in the depth first search */
+/* NOTE: global variable */
+static XArray* dfsver_stack = NULL;
+
// FIXME: check this - is it really correct?
-static Bool happens_before_do_dfs_from_to ( Segment* here, Segment* dst )
+static Bool happens_before_do_dfs_from_to ( Segment* src, Segment* dst )
{
- /* begin SPEEDUP HACK */
+ Segment* here;
+ Word ssz;
+
+ /* begin SPEEDUP HACK -- the following can safely be omitted */
/* fast track common case, without favouring either the
->prev or ->other links */
- tl_assert(here);
+ tl_assert(src);
tl_assert(dst);
- if ((here->prev && here->prev == dst)
- || (here->other && here->other == dst)) {
+ if ((src->prev && src->prev == dst)
+ || (src->other && src->other == dst)) {
stats__hbefore_gsearchFs++;
return True;
}
/* end SPEEDUP HACK */
- again:
- tl_assert(here);
- tl_assert(dst);
- if (here == dst)
- return True;
- tl_assert(here->dfsver <= dfsver_current);
- if (here->dfsver == dfsver_current)
- return False; /* We've been here before */
- /* Mark that we've been here */
- here->dfsver = dfsver_current;
- /* See if we can get to 'dst' via either of our two links */
- /* Avoiding recursion if possible */
- /* begin SPEEDUP hack -- the following can safely be omitted */
- if (here->prev && !here->other) {
- here = here->prev;
- goto again;
+ /* empty out the stack */
+ tl_assert(dfsver_stack);
+ VG_(dropTailXA)( dfsver_stack, VG_(sizeXA)( dfsver_stack ));
+ tl_assert(VG_(sizeXA)( dfsver_stack ) == 0);
+
+ /* push starting point */
+ (void) VG_(addToXA)( dfsver_stack, &src );
+
+ while (True) {
+ /* While the stack is not empty, pop the next node off it and
+ consider. */
+ ssz = VG_(sizeXA)( dfsver_stack );
+ tl_assert(ssz >= 0);
+ if (ssz == 0)
+ return False; /* stack empty ==> no path from src to dst */
+
+ if (UNLIKELY( ((UWord)ssz) > stats__hbefore_stk_hwm ))
+ stats__hbefore_stk_hwm = (UWord)ssz;
+
+ /* here = pop(stack) */
+ here = *(Segment**) VG_(indexXA)( dfsver_stack, ssz-1 );
+ VG_(dropTailXA)( dfsver_stack, 1 );
+
+ again:
+ /* consider the node 'here' */
+ if (here == dst)
+ return True; /* found a path from src and dst */
+
+ /* have we been to 'here' before? */
+ tl_assert(here->dfsver <= dfsver_current);
+ if (here->dfsver == dfsver_current)
+ continue; /* We've been 'here' before - node is not interesting*/
+
+ /* Mark that we've been here */
+ here->dfsver = dfsver_current;
+
+ /* Now push both children on the stack */
+
+ /* begin SPEEDUP hack -- the following can safely be omitted */
+ /* idea is, if there is exactly one child, avoid the overhead of
+ pushing it on the stack and immediately popping it off again.
+ Kinda like doing a tail-call. */
+ if (here->prev && !here->other) {
+ here = here->prev;
+ goto again;
+ }
+ if (here->other && !here->prev) {
+ here = here->other;
+ goto again;
+ }
+ /* end of SPEEDUP HACK */
+
+ /* Push all available children on stack. From some quick
+ experimentation it seems like exploring ->other first leads
+ to lower maximum stack use, although getting repeatable
+ results is difficult. */
+ if (here->prev)
+ (void) VG_(addToXA)( dfsver_stack, &(here->prev) );
+ if (here->other)
+ (void) VG_(addToXA)( dfsver_stack, &(here->other) );
}
- if (here->other && !here->prev) {
- here = here->other;
- goto again;
- }
- /* end of SPEEDUP HACK */
- /* GENERAL CASE -- recurse */
- if (here->other) {
- if (happens_before_do_dfs_from_to(here->other, dst))
- return True;
- }
- if (here->prev) {
- if (happens_before_do_dfs_from_to(here->prev, dst))
- return True;
- }
- return False;
}
-// FIXME: cache the results of the last few queries and hand
-// them out as appropriate
static Bool happens_before_wrk ( SegmentID segid1, SegmentID segid2 )
{
Bool reachable;
@@ -1309,6 +1345,12 @@
.prev and .other fields, that leads from seg2 back to seg1 ? */
tl_assert(dfsver_current < 0xFFFFFFFF);
dfsver_current++;
+
+ if (dfsver_stack == NULL) {
+ dfsver_stack = VG_(newXA)( tc_zalloc, tc_free, sizeof(Segment*) );
+ tl_assert(dfsver_stack);
+ }
+
reachable = happens_before_do_dfs_from_to( seg2, seg1 );
if (0)
@@ -5298,8 +5340,11 @@
VG_(printf)(" hbefore: %10lu graph searches\n", stats__hbefore_gsearches);
VG_(printf)(" hbefore: %10lu of which slow\n",
stats__hbefore_gsearches - stats__hbefore_gsearchFs);
+ VG_(printf)(" hbefore: %10lu stack high water mark\n",
+ stats__hbefore_stk_hwm);
VG_(printf)(" hbefore: %10lu cache invals\n", stats__hbefore_invals);
VG_(printf)(" hbefore: %10lu probes\n", stats__hbefore_probes);
+
VG_(printf)("\n");
VG_(printf)("segments: %10lu Segment objects allocated\n",
stats__mk_Segment);
|
|
From: Tom H. <th...@cy...> - 2007-10-02 02:30:57
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2007-10-02 03:15:02 BST 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 == 256 tests, 27 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/addressable (stderr) memcheck/tests/badjump (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-pool-0 (stderr) memcheck/tests/leak-pool-1 (stderr) memcheck/tests/leak-pool-2 (stderr) memcheck/tests/leak-pool-3 (stderr) memcheck/tests/leak-pool-4 (stderr) memcheck/tests/leak-pool-5 (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/long_namespace_xml (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/partial_load_dflt (stderr) memcheck/tests/partial_load_ok (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/xor-undef-x86 (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2007-10-02 02:23:27
|
Nightly build on dellow ( x86_64, Fedora 7 ) started at 2007-10-02 03:10:05 BST 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 == 293 tests, 4 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/pth_cvsimple (stdout) ================================================= == 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 == 293 tests, 4 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Tue Oct 2 03:16:53 2007 --- new.short Tue Oct 2 03:23:29 2007 *************** *** 8,10 **** ! == 293 tests, 4 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) --- 8,10 ---- ! == 293 tests, 4 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) *************** *** 15,16 **** --- 15,17 ---- none/tests/mremap2 (stdout) + none/tests/pth_cvsimple (stdout) |
|
From: Tom H. <th...@cy...> - 2007-10-02 02:17:57
|
Nightly build on lloyd ( x86_64, Fedora Core 3 ) started at 2007-10-02 03:05:05 BST 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 == 293 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2007-10-02 02:15:32
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2007-10-02 03:00:03 BST 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 == 295 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: <js...@ac...> - 2007-10-02 00:17:28
|
Nightly build on g5 ( SuSE 10.1, ppc970 ) started at 2007-10-02 02:00:01 CEST 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 == 228 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) ================================================= == 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 == 228 tests, 6 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/res_search (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Tue Oct 2 02:08:55 2007 --- new.short Tue Oct 2 02:17:29 2007 *************** *** 8,10 **** ! == 228 tests, 6 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) --- 8,10 ---- ! == 228 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) *************** *** 17,19 **** none/tests/mremap2 (stdout) - none/tests/res_search (stdout) --- 17,18 ---- |
|
From: Shahriyar A. <sm...@co...> - 2007-10-01 16:41:28
|
Hi everyone, I am in the process of porting a tool that was written in Valgrind 2.2.0 to Valgrind 3.3.0. I have attained my copy of the source code from svn. I was wondering if there is a quick and easy way to save the work under : UCodeBlock* SK_(instrument)(UCodeBlock* cb_in, Addr orig_addr) to the corresponding: IRSB* fb_instrument( VgCallbackClosure* closure, IRSB* bb, VexGuestLayout layout, VexGuestExtents* vge, IRType gWordTy, IRType hWordTy ) I appreciate any feedback. Thank you, Shahriyar |
|
From: <js...@ac...> - 2007-10-01 13:55:37
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2007-10-01 09:00:01 BST 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 == 220 tests, 10 stderr failures, 6 stdout failures, 0 posttest failures == memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) none/tests/ppc32/round (stdout) none/tests/ppc32/round (stderr) none/tests/ppc32/test_fx (stdout) none/tests/ppc32/test_fx (stderr) none/tests/ppc32/test_gx (stdout) |
|
From: Bart V. A. <bar...@gm...> - 2007-10-01 12:31:11
|
Hello Dirk,
Do you really know what you are doing ? You are not just fixing warnings,
you are changing code. In trunk/coregrind/m_stacktrace.c you changed the
format string %08p into %p. As a result, the printed pointers are no longer
right-aligned. Did you understand what I wrote in the mail I sent on
September 26 to the valgrind-developers mailing list ?
Bart.
On 10/1/07, sv...@va... <sv...@va...> wrote:
>
> Author: dirk
> Date: 2007-10-01 11:33:41 +0100 (Mon, 01 Oct 2007)
> New Revision: 6928
>
> Log:
> fix a few format string warnings
>
> Modified:
> trunk/coregrind/m_signals.c
> trunk/coregrind/m_stacktrace.c
>
>
> Modified: trunk/coregrind/m_signals.c
> ===================================================================
> --- trunk/coregrind/m_signals.c 2007-10-01 10:21:07 UTC (rev 6927)
> +++ trunk/coregrind/m_signals.c 2007-10-01 10:33:41 UTC (rev 6928)
> @@ -431,7 +431,7 @@
> Int sig;
> VG_(printf)("\n\nSKSS:\n");
> for (sig = 1; sig <= _VKI_NSIG; sig++) {
> - VG_(printf)("sig %d: handler 0x%x, flags 0x%x\n", sig,
> + VG_(printf)("sig %d: handler %p, flags 0x%x\n", sig,
> skss.skss_per_sig[sig].skss_handler,
> skss.skss_per_sig[sig].skss_flags );
>
>
> Modified: trunk/coregrind/m_stacktrace.c
> ===================================================================
> --- trunk/coregrind/m_stacktrace.c 2007-10-01 10:21:07 UTC (rev 6927)
> +++ trunk/coregrind/m_stacktrace.c 2007-10-01 10:33:41 UTC (rev 6928)
> @@ -158,7 +158,7 @@
> fp = (((UWord*)fp)[0]);
> ips[i++] = ip;
> if (debug)
> - VG_(printf)(" ipsF[%d]=%08p\n", i-1, ips[i-1]);
> + VG_(printf)(" ipsF[%d]=%p\n", i-1, ips[i-1]);
> ip = ip - 1;
> continue;
> }
> @@ -168,7 +168,7 @@
> if ( VG_(use_CF_info)( &ip, &sp, &fp, fp_min, fp_max ) ) {
> ips[i++] = ip;
> if (debug)
> - VG_(printf)(" ipsC[%d]=%08p\n", i-1, ips[i-1]);
> + VG_(printf)(" ipsC[%d]=%p\n", i-1, ips[i-1]);
> ip = ip - 1;
> continue;
> }
> @@ -406,7 +406,7 @@
> # endif
>
> if (0)
> - VG_(printf)("tid %d: stack_highest=%p ip=%p sp=%p fp=%p\n",
> + VG_(printf)("tid %d: stack_highest=0x%08lx ip=0x%08lx sp=0x%08lx
> fp=0x%08lx\n",
> tid, stack_highest_word, ip, sp, fp);
>
> return VG_(get_StackTrace2)(tid, ips, n_ips, ip, sp, fp, lr, sp,
>
|
|
From: <sv...@va...> - 2007-10-01 10:33:41
|
Author: dirk
Date: 2007-10-01 11:33:41 +0100 (Mon, 01 Oct 2007)
New Revision: 6928
Log:
fix a few format string warnings
Modified:
trunk/coregrind/m_signals.c
trunk/coregrind/m_stacktrace.c
Modified: trunk/coregrind/m_signals.c
===================================================================
--- trunk/coregrind/m_signals.c 2007-10-01 10:21:07 UTC (rev 6927)
+++ trunk/coregrind/m_signals.c 2007-10-01 10:33:41 UTC (rev 6928)
@@ -431,7 +431,7 @@
Int sig;
VG_(printf)("\n\nSKSS:\n");
for (sig = 1; sig <= _VKI_NSIG; sig++) {
- VG_(printf)("sig %d: handler 0x%x, flags 0x%x\n", sig,
+ VG_(printf)("sig %d: handler %p, flags 0x%x\n", sig,
skss.skss_per_sig[sig].skss_handler,
skss.skss_per_sig[sig].skss_flags );
Modified: trunk/coregrind/m_stacktrace.c
===================================================================
--- trunk/coregrind/m_stacktrace.c 2007-10-01 10:21:07 UTC (rev 6927)
+++ trunk/coregrind/m_stacktrace.c 2007-10-01 10:33:41 UTC (rev 6928)
@@ -158,7 +158,7 @@
fp = (((UWord*)fp)[0]);
ips[i++] = ip;
if (debug)
- VG_(printf)(" ipsF[%d]=%08p\n", i-1, ips[i-1]);
+ VG_(printf)(" ipsF[%d]=%p\n", i-1, ips[i-1]);
ip = ip - 1;
continue;
}
@@ -168,7 +168,7 @@
if ( VG_(use_CF_info)( &ip, &sp, &fp, fp_min, fp_max ) ) {
ips[i++] = ip;
if (debug)
- VG_(printf)(" ipsC[%d]=%08p\n", i-1, ips[i-1]);
+ VG_(printf)(" ipsC[%d]=%p\n", i-1, ips[i-1]);
ip = ip - 1;
continue;
}
@@ -406,7 +406,7 @@
# endif
if (0)
- VG_(printf)("tid %d: stack_highest=%p ip=%p sp=%p fp=%p\n",
+ VG_(printf)("tid %d: stack_highest=0x%08lx ip=0x%08lx sp=0x%08lx fp=0x%08lx\n",
tid, stack_highest_word, ip, sp, fp);
return VG_(get_StackTrace2)(tid, ips, n_ips, ip, sp, fp, lr, sp,
|
|
From: <sv...@va...> - 2007-10-01 10:21:07
|
Author: sewardj
Date: 2007-10-01 11:21:07 +0100 (Mon, 01 Oct 2007)
New Revision: 6927
Log:
Improve performance for OpenOffice-sized applications by messing with
N_SECMAP_BITS, and update some associated comments.
Modified:
branches/THRCHECK/thrcheck/tc_main.c
Modified: branches/THRCHECK/thrcheck/tc_main.c
===================================================================
--- branches/THRCHECK/thrcheck/tc_main.c 2007-09-30 10:48:32 UTC (rev 6926)
+++ branches/THRCHECK/thrcheck/tc_main.c 2007-10-01 10:21:07 UTC (rev 6927)
@@ -571,7 +571,14 @@
/* Primary Map is the usual FiniteMap Addr SecMap* w/ cache */
-#define N_SECMAP_BITS 11
+/* See comments below on shadow_mem_make_NoAccess re performance
+ effects of N_SECMAP_BITS settings. On a 2.4GHz Core2,
+ starting/quitting OOo (32-bit), I have these rough numbers:
+ N_SECMAP_BITS = 11 2m23
+ N_SECMAP_BITS = 12 1m58
+ N_SECMAP_BITS = 13 1m53
+*/
+#define N_SECMAP_BITS 13
#define N_SECMAP_ARANGE (1 << N_SECMAP_BITS)
#define N_SECMAP_MASK (~(N_SECMAP_ARANGE - 1))
#define N_SECMAP_W32S (N_SECMAP_ARANGE / 4)
@@ -2499,35 +2506,35 @@
Otherwise, the range contains some locks. Then we have to do all
the complexity below and only then set the range to NoAccess.
- // make up a set containing the which are deleted
- ToDelete = NULL
- scan the range in map_locks,
- for each lock lk found {
- add lk to ToDelete
-
- case lk of
- UnlockedNew. simply free up the Lock
- UnlockedBy. makes a reference to Segment (via
- map_segments) but just leave that.
- Maybe we will later GC the segment graph.
+ 1. Make up a set containing the locks which are deleted:
- LockedBy. Bad case. Report error.
- remove from from the currlocks set of the
- owning thread
- }
+ ToDelete = NULL
- modify all shadow words, by removing ToDelete from the lockset
- of all ShM and ShR states.
+ for each lk in map_locks {
+ if lk's guest addr falls in the range to memory be deleted
+ add lk to ToDelete
- Finally set the range to NoAccess.
+ if lk is held, issue an error message - freeing memory
+ containing a held lock
+ }
+
+ 2. Modify all shadow words, by removing ToDelete from the lockset
+ of all ShM and ShR states. Note this involves a complete scan
+ over map_shmem, which is very expensive according to OProfile.
+ Hence it depends critically on the size of each entry in
+ map_shmem. See comments on definition of N_SECMAP_BITS above.
- Optimisation 1: skip SecMaps which do not have .hasShared set
+ 3. Set the range to NoAccess. Clear the .hasShared and .anyLocks
+ hint bits for any completely vacated SecMaps.
- Optimisation 2: for each SecMap, have a summary lock set which is
- the union of all locks mentioned in locksets on this page.
- Then skip the page if the summary lockset does not intersect with
- ToDelete.
+ Optimisation 1 (implemented): skip SecMaps which do not have
+ .hasShared set
+ Optimisation 2 (not implemented, needs rethink): for each SecMap,
+ have a summary lock set which is the union of all locks mentioned
+ in locksets on this page. Then skip the page if the summary
+ lockset does not intersect with ToDelete.
+
that's potentially cheap, since the usual lockset refinement
only shrinks locksets; hence there is no point in updating the
summary lockset for ShM/R -> ShM/R transitions
@@ -3229,7 +3236,7 @@
}
// FIXME: error-if: exiting thread holds any locks
- // or shouw evh__pre_thread_ll_exit do that?
+ // or should evh__pre_thread_ll_exit do that?
/* Delete thread from ShM/ShR thread sets and restore Excl states
where appropriate */
|
|
From: Tom H. <th...@cy...> - 2007-10-01 02:30:40
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2007-10-01 03:15:02 BST 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 == 256 tests, 27 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/addressable (stderr) memcheck/tests/badjump (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-pool-0 (stderr) memcheck/tests/leak-pool-1 (stderr) memcheck/tests/leak-pool-2 (stderr) memcheck/tests/leak-pool-3 (stderr) memcheck/tests/leak-pool-4 (stderr) memcheck/tests/leak-pool-5 (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/long_namespace_xml (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/partial_load_dflt (stderr) memcheck/tests/partial_load_ok (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/xor-undef-x86 (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2007-10-01 02:23:24
|
Nightly build on dellow ( x86_64, Fedora 7 ) started at 2007-10-01 03:10:05 BST 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 == 293 tests, 4 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/pth_detached (stdout) |
|
From: Tom H. <th...@cy...> - 2007-10-01 02:17:52
|
Nightly build on lloyd ( x86_64, Fedora Core 3 ) started at 2007-10-01 03:05:04 BST 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 == 293 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2007-10-01 02:11:33
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2007-10-01 03:00:03 BST 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 == 295 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: <js...@ac...> - 2007-10-01 00:48:36
|
Nightly build on g5 ( SuSE 10.1, ppc970 ) started at 2007-10-01 02:00:01 CEST 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 == 228 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |