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
(21) |
|
2
(19) |
3
(33) |
4
(24) |
5
(18) |
6
(13) |
7
(22) |
8
(21) |
|
9
(38) |
10
(25) |
11
(20) |
12
(27) |
13
(43) |
14
(9) |
15
(19) |
|
16
(37) |
17
(19) |
18
(13) |
19
(11) |
20
(8) |
21
(11) |
22
(25) |
|
23
(21) |
24
(30) |
25
(18) |
26
(11) |
27
(10) |
28
(14) |
29
(40) |
|
30
(24) |
31
(14) |
|
|
|
|
|
|
From: <sv...@va...> - 2008-03-05 23:40:37
|
Author: sewardj
Date: 2008-03-05 23:40:41 +0000 (Wed, 05 Mar 2008)
New Revision: 7574
Log:
Even more SVal-related performance tuning.
Modified:
branches/HGDEV/helgrind/hg_main.c
Modified: branches/HGDEV/helgrind/hg_main.c
===================================================================
--- branches/HGDEV/helgrind/hg_main.c 2008-03-05 23:33:09 UTC (rev 7573)
+++ branches/HGDEV/helgrind/hg_main.c 2008-03-05 23:40:41 UTC (rev 7574)
@@ -1127,15 +1127,14 @@
}
static inline Bool is_SHVAL_RW (SVal sv) {
+ /* Top 2 bits are 10 (R) or 11 (W) */
return (sv >> 63) != 0;
}
static inline Bool is_SHVAL_R (SVal sv) {
- tl_assert(is_SHVAL_RW(sv));
- return ((sv >> 62) & 1) == 0;
+ return ((sv >> 62) & 3) == 2; /* == 10 (R) */
}
static inline Bool is_SHVAL_W (SVal sv) {
- tl_assert(is_SHVAL_RW(sv));
- return ((sv >> 62) & 1) == 1;
+ return ((sv >> 62) & 3) == 3; /* == 11 (W) */
}
static inline Bool is_SHVAL_Shared (SVal sv) {
|
|
From: <sv...@va...> - 2008-03-05 23:33:12
|
Author: sewardj
Date: 2008-03-05 23:33:09 +0000 (Wed, 05 Mar 2008)
New Revision: 7573
Log:
More SVal-related performance tuning.
Modified:
branches/HGDEV/helgrind/hg_main.c
Modified: branches/HGDEV/helgrind/hg_main.c
===================================================================
--- branches/HGDEV/helgrind/hg_main.c 2008-03-05 15:18:10 UTC (rev 7572)
+++ branches/HGDEV/helgrind/hg_main.c 2008-03-05 23:33:09 UTC (rev 7573)
@@ -132,6 +132,15 @@
# define SCE_CACHELINE 0 /* don't sanity-check CacheLine stuff */
#endif
+/* For the SegmentID, SegmentSet and SVal stuff we may want more
+ intrusive checks. Again there's no zero cost way to do this. Set
+ the #if 0 to #if 1 and rebuild if you want them. */
+#if 0
+# define SCE_SVALS 1 /* sanity-check shadow value stuff */
+#else
+# define SCE_SVALS 0
+#endif
+
static void all__sanity_check ( Char* who ); /* fwds */
#define HG_CLI__MALLOC_REDZONE_SZB 16 /* let's say */
@@ -597,11 +606,9 @@
// TODO: when we reach limit of N1*N2 segments we need to start
// recycling old segments instead of exiting.
-enum {
- SEGMENT_ID_MAX = 1 << 24, // N1*N2
- SEGMENT_ID_CHUNK_SIZE = 1 << 14, // N2
- SEGMENT_ID_N_CHUNKS = SEGMENT_ID_MAX / SEGMENT_ID_CHUNK_SIZE // N1
-};
+#define SEGMENT_ID_MAX (1 << 24) // N1*N2
+#define SEGMENT_ID_CHUNK_SIZE (1 << 14) // N2
+#define SEGMENT_ID_N_CHUNKS (SEGMENT_ID_MAX / SEGMENT_ID_CHUNK_SIZE) // N1
static struct {
UInt size;
@@ -645,7 +652,8 @@
static inline Segment *SEG_get(SegmentID n)
{
- tl_assert(SEG_id_is_sane(n));
+ if (SCE_SVALS)
+ tl_assert(SEG_id_is_sane(n));
return &SegmentArray.chunks[n / SEGMENT_ID_CHUNK_SIZE]
[n % SEGMENT_ID_CHUNK_SIZE];
}
@@ -1048,9 +1056,11 @@
}
static inline SegmentSet SS_mk_singleton (SegmentID ss) {
- tl_assert(SEG_id_is_sane(ss));
+ if (SCE_SVALS)
+ tl_assert(SEG_id_is_sane(ss));
ss |= (1 << (SEGMENT_SET_BITS-1));
- tl_assert(SS_is_singleton(ss));
+ if (SCE_SVALS)
+ tl_assert(SS_is_singleton(ss));
return ss;
}
@@ -1063,7 +1073,8 @@
static inline SegmentID SS_get_singleton_UNCHECKED (SegmentSet ss) {
ss &= ~(1 << (SEGMENT_SET_BITS-1));
- tl_assert(SEG_id_is_sane(ss));
+ if (SCE_SVALS)
+ tl_assert(SEG_id_is_sane(ss));
return ss;
}
@@ -1082,8 +1093,10 @@
static inline SVal mk_SHVAL_RW (Bool is_w, SegmentSet ss, LockSet ls) {
SVal res;
- tl_assert(SS_valid(ss));
- tl_assert(LS_valid(ls));
+ if (SCE_SVALS) {
+ tl_assert(SS_valid(ss));
+ tl_assert(LS_valid(ls));
+ }
res = (1ULL << 63)
| ((SVal)is_w << 62)
| ((SVal)ss << (62-SEGMENT_SET_BITS))
@@ -3057,10 +3070,10 @@
tl_assert(SS_is_singleton(oldSS));
stats__msm_oldSS_single++;
S = SS_get_singleton_UNCHECKED(oldSS);
- if (S == currS // Same segment.
- || SEG_get(S)->thr == thr // Same thread.
- || happens_before(S, currS)) {
- // different thread, but happens-before
+ if (LIKELY(S == currS // Same segment.
+ || SEG_get(S)->thr == thr // Same thread.
+ || happens_before(S, currS))) {
+ // different thread, but happens-before
*hb_all_p = True;
newSS = SS_mk_singleton(currS);
if (UNLIKELY(do_trace)) {
|
|
From: Aaron P. <kod...@gm...> - 2008-03-05 23:32:26
|
Hello,
I have a more-than-passing interest in getting isel instruction
support for the e500 spec implemented. I have taken several days and
worked out what I believe is a valid implementation according to what
I understand of the e500 instruction set, and what I have learned
about valgrind.
The code works find for my simple test programs that include an isel
instruction, but fails on anything more complex.
The failure is a segfault shortly after processing of an isel
instruction (typically, several other isel instructions have
successfully executed before the failure). I am assuming that the
changes I made have somehow resulted in the isel instruction no longer
performing correctly.
If any of you have the time, could you take a look at my code snippet
and see if I have made a significant error somewhere?
/* isel : if crB then rD = rA else rD = rB
* 011111 DDDDD AAAAA BBBBB CCCCC 011110
* rD rA rB crb
* 21-25 16-20 11-15 6-10 0-5
*
*/
static Bool dis_int_isel ( UInt theInstr )
{
UChar rD_addr = ifieldRegDS(theInstr);
UChar rA_addr = ifieldRegA(theInstr);
UChar rB_addr = ifieldRegB(theInstr);
UChar cr_bit = ifieldRegC(theInstr);
IRType ty = mode64 ? Ity_I64 : Ity_I32;
IRTemp rD = newTemp(ty);
IRTemp rA = newTemp(ty);
IRTemp rB = newTemp(ty);
IRTemp cr = newTemp(ty);
IRTemp cc_bitset = newTemp(ty);
vex_printf("handling isel, rD %d rA %d rB %d crb %d\n", rD_addr,
rA_addr, rB_addr, cr_bit);
DIP("isel. r%u,r%u,r%u,crb%u\n", rD_addr, rA_addr, rB_addr, cr_bit);
assign( rA, getIReg(rA_addr) );
assign( rB, getIReg(rB_addr) );
assign( cr, getCRbit(cr_bit) );
assign( cc_bitset, binop(Iop_And32, mkexpr(cr), mkU32(1)));
assign( rD, IRExpr_Mux0X(
unop(Iop_1Uto8,
binop(Iop_CmpEQ32,
mkexpr(cc_bitset),
mkU32(0))),
mkexpr(rA),
mkexpr(rB)));
return True;
}
Much appreciated,
Aaron
|
|
From: <sv...@va...> - 2008-03-05 15:18:11
|
Author: sewardj
Date: 2008-03-05 15:18:10 +0000 (Wed, 05 Mar 2008)
New Revision: 7572
Log:
Split do_SS_update into two versions, one for when the old SS is a
singleton (very common) and one for when it is not (rare).
Modified:
branches/HGDEV/helgrind/hg_main.c
Modified: branches/HGDEV/helgrind/hg_main.c
===================================================================
--- branches/HGDEV/helgrind/hg_main.c 2008-03-05 14:13:47 UTC (rev 7571)
+++ branches/HGDEV/helgrind/hg_main.c 2008-03-05 15:18:10 UTC (rev 7572)
@@ -1061,6 +1061,12 @@
return ss;
}
+static inline SegmentID SS_get_singleton_UNCHECKED (SegmentSet ss) {
+ ss &= ~(1 << (SEGMENT_SET_BITS-1));
+ tl_assert(SEG_id_is_sane(ss));
+ return ss;
+}
+
static inline SegmentID SS_get_element (SegmentSet ss, UWord i) {
UWord nWords, *words;
if (SS_is_singleton(ss))
@@ -3038,26 +3044,59 @@
// This routine is not (yet) fully optimized for performance.
// TODO: handle state with one segment in segment set separately
// for better performance.
-
static inline
-SegmentSet do_SS_update ( /*OUT*/Bool* hb_all_p,
- Thread* thr,
- Bool do_trace,
- SegmentSet oldSS, SegmentID currS )
+SegmentSet do_SS_update_SINGLE ( /*OUT*/Bool* hb_all_p,
+ Thread* thr,
+ Bool do_trace,
+ SegmentSet oldSS, SegmentID currS )
{
+ // update the segment set and compute hb_all
+ /* case where oldSS is a single segment */
+ SegmentSet newSS;
+ SegmentID S;
+ tl_assert(SS_is_singleton(oldSS));
+ stats__msm_oldSS_single++;
+ S = SS_get_singleton_UNCHECKED(oldSS);
+ if (S == currS // Same segment.
+ || SEG_get(S)->thr == thr // Same thread.
+ || happens_before(S, currS)) {
+ // different thread, but happens-before
+ *hb_all_p = True;
+ newSS = SS_mk_singleton(currS);
+ if (UNLIKELY(do_trace)) {
+ VG_(printf)("HB(S%d/T%d,cur)=1\n",
+ S, SEG_get(S)->thr->errmsg_index);
+ }
+ } else {
+ *hb_all_p = False;
+ // Not happened-before. Leave this segment in SS.
+ tl_assert(currS != S);
+ newSS = HG_(doubletonWS)(univ_ssets, currS, S);
+ if (UNLIKELY(do_trace)) {
+ VG_(printf)("HB(S%d/T%d,cur)=0\n",
+ S, SEG_get(S)->thr->errmsg_index);
+ }
+ }
+ return newSS;
+}
+
+static __attribute__((noinline))
+SegmentSet do_SS_update_MULTI ( /*OUT*/Bool* hb_all_p,
+ Thread* thr,
+ Bool do_trace,
+ SegmentSet oldSS, SegmentID currS )
+{
+ // update the segment set and compute hb_all
+ /* General case */
+
UWord i;
UWord oldSS_size = 0;
SegmentSet newSS = 0;
+
oldSS_size = SS_get_size(oldSS);
+ tl_assert(oldSS_size > 1);
+ stats__msm_oldSS_multi++;
- if (oldSS_size == 1) {
- stats__msm_oldSS_single++;
- } else {
- tl_assert(oldSS_size > 1);
- stats__msm_oldSS_multi++;
- }
-
- // update the segment set and compute hb_all
*hb_all_p = True;
newSS = SS_mk_singleton(currS);
for (i = 0; i < oldSS_size; i++) {
@@ -3085,10 +3124,11 @@
}
}
}
- return newSS;
+ return newSS;
}
+
static
SVal msm_handle_write(Thread* thr, Addr a, SVal sv_old, Int sz)
{
@@ -3146,7 +3186,11 @@
// update the segment set and compute hb_all
oldSS = get_SHVAL_SS(sv_old);
- newSS = do_SS_update( &hb_all, thr, do_trace, oldSS, currS );
+ if (LIKELY(SS_is_singleton(oldSS))) {
+ newSS = do_SS_update_SINGLE( &hb_all, thr, do_trace, oldSS, currS );
+ } else {
+ newSS = do_SS_update_MULTI( &hb_all, thr, do_trace, oldSS, currS );
+ }
// update lock set.
if (hb_all) {
@@ -3293,7 +3337,11 @@
// update the segment set and compute hb_all
oldSS = get_SHVAL_SS(sv_old);
- newSS = do_SS_update( &hb_all, thr, do_trace, oldSS, currS );
+ if (LIKELY(SS_is_singleton(oldSS))) {
+ newSS = do_SS_update_SINGLE( &hb_all, thr, do_trace, oldSS, currS );
+ } else {
+ newSS = do_SS_update_MULTI( &hb_all, thr, do_trace, oldSS, currS );
+ }
// update lock set.
if (hb_all) {
|
|
From: Julian S. <js...@ac...> - 2008-03-05 15:04:07
|
> Is there a solution ? Am I wrong ? There's no way we can figure out what's going without some details. Send some examples of the IR before and after instrumentation and some details of why you think it is calling the wrong function. J |
|
From: Olivier S. <oli...@re...> - 2008-03-05 14:50:18
|
Hi everyone, I posted a message a few week earlier because i'm trying to create a valgrind base dynamic dataflow tracer ... Once again, i'm in trouble using valgrind. When using dirty helper calls, it seems that Valgrind sometimes switch that calls and sometimes make call I've never asked him to do. I've studied the valgrind instrumented code which seems good, and think the troubles arise within the post instrumentation optimisation. Is there a solution ? Am I wrong ? Thanks everyone and thanks for your response to my old posts. Olivier |
|
From: <sv...@va...> - 2008-03-05 14:13:49
|
Author: sewardj
Date: 2008-03-05 14:13:47 +0000 (Wed, 05 Mar 2008)
New Revision: 7571
Log:
Lift the SS_update code into its own function, do_SS_update, so as to
have a cleaner basis for optimising it.
Modified:
branches/HGDEV/helgrind/hg_main.c
Modified: branches/HGDEV/helgrind/hg_main.c
===================================================================
--- branches/HGDEV/helgrind/hg_main.c 2008-03-05 12:39:15 UTC (rev 7570)
+++ branches/HGDEV/helgrind/hg_main.c 2008-03-05 14:13:47 UTC (rev 7571)
@@ -3038,15 +3038,64 @@
// This routine is not (yet) fully optimized for performance.
// TODO: handle state with one segment in segment set separately
// for better performance.
+
+static inline
+SegmentSet do_SS_update ( /*OUT*/Bool* hb_all_p,
+ Thread* thr,
+ Bool do_trace,
+ SegmentSet oldSS, SegmentID currS )
+{
+ UWord i;
+ UWord oldSS_size = 0;
+ SegmentSet newSS = 0;
+ oldSS_size = SS_get_size(oldSS);
+
+ if (oldSS_size == 1) {
+ stats__msm_oldSS_single++;
+ } else {
+ tl_assert(oldSS_size > 1);
+ stats__msm_oldSS_multi++;
+ }
+
+ // update the segment set and compute hb_all
+ *hb_all_p = True;
+ newSS = SS_mk_singleton(currS);
+ for (i = 0; i < oldSS_size; i++) {
+ SegmentID S = SS_get_element(oldSS, i);
+ Bool hb = False;
+ if (S == currS // Same segment.
+ || SEG_get(S)->thr == thr // Same thread.
+ || happens_before(S, currS)) {
+ // different thread, but happens-before
+ hb = True;
+ }
+ if (do_trace) {
+ VG_(printf)("HB(S%d/T%d,cur)=%d\n",
+ S, SEG_get(S)->thr->errmsg_index, hb);
+ }
+
+ if (!hb) {
+ *hb_all_p = False;
+ // Not happened-before. Leave this segment in SS.
+ if (SS_is_singleton(newSS)) {
+ tl_assert(currS != S);
+ newSS = HG_(doubletonWS)(univ_ssets, currS, S);
+ } else {
+ newSS = HG_(addToWS)(univ_ssets, newSS, S);
+ }
+ }
+ }
+ return newSS;
+}
+
+
static
SVal msm_handle_write(Thread* thr, Addr a, SVal sv_old, Int sz)
{
- UWord i;
Bool was_w;
SegmentSet oldSS;
LockSet oldLS;
Bool hb_all = False;
- UWord oldSS_size = 0;
Bool is_race = False;
SVal sv_new = SHVAL_Invalid;
Bool do_trace = clo_trace_level > 0
@@ -3094,68 +3143,25 @@
// Read or Write
if (LIKELY(is_SHVAL_RW(sv_old))) {
was_w = is_SHVAL_W(sv_old);
- oldSS = get_SHVAL_SS(sv_old);
- oldLS = get_SHVAL_LS(sv_old);
- oldSS_size = SS_get_size(oldSS);
- if (oldSS_size == 1) {
- stats__msm_oldSS_single++;
- } else {
- tl_assert(oldSS_size > 1);
- stats__msm_oldSS_multi++;
- }
-
// update the segment set and compute hb_all
- hb_all = True;
- newSS = SS_mk_singleton(currS);
- for (i = 0; i < oldSS_size; i++) {
- SegmentID S = SS_get_element(oldSS, i);
- Bool hb = False;
- if (S == currS // Same segment.
- || SEG_get(S)->thr == thr // Same thread.
- || happens_before(S, currS)) {
- // different thread, but happens-before
- hb = True;
- }
- if (do_trace) {
- VG_(printf)("HB(S%d/T%d,cur)=%d\n",
- S, SEG_get(S)->thr->errmsg_index, hb);
- }
+ oldSS = get_SHVAL_SS(sv_old);
+ newSS = do_SS_update( &hb_all, thr, do_trace, oldSS, currS );
- if (!hb) {
- hb_all = False;
- // Not happened-before. Leave this segment in SS.
- if (SS_is_singleton(newSS)) {
- tl_assert(currS != S);
- newSS = HG_(doubletonWS)(univ_ssets, currS, S);
- } else {
- newSS = HG_(addToWS)(univ_ssets, newSS, S);
- }
- }
- }
-
// update lock set.
if (hb_all) {
newLS = currLS;
} else {
+ oldLS = get_SHVAL_LS(sv_old);
newLS = HG_(intersectWS)(univ_lsets, oldLS, currLS);
}
- // update the state
-
// generate new SVal
sv_new = mk_SHVAL_W(newSS, newLS);
is_race = !SS_is_singleton(newSS)
&& HG_(isEmptyWS)(univ_lsets, newLS);
- if (oldLS != newLS) {
- // if the lockset changed, remember when it happened
- if (0) // FIXME. Do we want this functionality? If so,
- // it can be very slow.
- record_last_lock_lossage(a, oldLS, newLS);
- }
-
if ( (!was_w) ) stats__msm_R_to_W++;
else if ( (was_w) ) stats__msm_W_to_W++;
@@ -3233,12 +3239,10 @@
static
SVal msm_handle_read(Thread* thr, Addr a, SVal sv_old, Int sz)
{
- UWord i;
Bool was_w, now_w;
SegmentSet oldSS;
LockSet oldLS;
Bool hb_all = False;
- UWord oldSS_size = 0;
Bool is_race = False;
SVal sv_new = SHVAL_Invalid;
Bool do_trace = clo_trace_level > 0
@@ -3286,50 +3290,16 @@
// Read or Write
if (LIKELY(is_SHVAL_RW(sv_old))) {
was_w = is_SHVAL_W(sv_old);
- oldSS = get_SHVAL_SS(sv_old);
- oldLS = get_SHVAL_LS(sv_old);
- oldSS_size = SS_get_size(oldSS);
- if (oldSS_size == 1) {
- stats__msm_oldSS_single++;
- } else {
- tl_assert(oldSS_size > 1);
- stats__msm_oldSS_multi++;
- }
-
// update the segment set and compute hb_all
- hb_all = True;
- newSS = SS_mk_singleton(currS);
- for (i = 0; i < oldSS_size; i++) {
- SegmentID S = SS_get_element(oldSS, i);
- Bool hb = False;
- if (S == currS // Same segment.
- || SEG_get(S)->thr == thr // Same thread.
- || happens_before(S, currS)) {
- // different thread, but happens-before
- hb = True;
- }
- if (do_trace) {
- VG_(printf)("HB(S%d/T%d,cur)=%d\n",
- S, SEG_get(S)->thr->errmsg_index, hb);
- }
+ oldSS = get_SHVAL_SS(sv_old);
+ newSS = do_SS_update( &hb_all, thr, do_trace, oldSS, currS );
- if (!hb) {
- hb_all = False;
- // Not happened-before. Leave this segment in SS.
- if (SS_is_singleton(newSS)) {
- tl_assert(currS != S);
- newSS = HG_(doubletonWS)(univ_ssets, currS, S);
- } else {
- newSS = HG_(addToWS)(univ_ssets, newSS, S);
- }
- }
- }
-
// update lock set.
if (hb_all) {
newLS = currLS;
} else {
+ oldLS = get_SHVAL_LS(sv_old);
newLS = HG_(intersectWS)(univ_lsets, oldLS, currLS);
}
@@ -3342,13 +3312,6 @@
is_race = now_w && !SS_is_singleton(newSS)
&& HG_(isEmptyWS)(univ_lsets, newLS);
- if (oldLS != newLS) {
- // if the lockset changed, remember when it happened
- if (0) // FIXME. Do we want this functionality? If so,
- // it can be very slow.
- record_last_lock_lossage(a, oldLS, newLS);
- }
-
if ( (!was_w) && (!now_w) ) stats__msm_R_to_R++;
else if ( (!was_w) && (now_w) ) stats__msm_R_to_W++;
else if ( (was_w) && (!now_w) ) stats__msm_W_to_R++;
|
|
From: Bart V. A. <bar...@gm...> - 2008-03-05 13:52:42
|
On Tue, Mar 4, 2008 at 7:18 PM, Ali Jannesari <a.j...@gm...> wrote: > Which modifications do we need to use Helgrind on OpenMP. Is there any > patch to use? > > Actually I am interested to compare MSMunika and MSMhelgrind on some > benchmarks and student projects which have used OpenMP. > > By the way I am checking MSMunika on few applications and benchmarks. > Compare to MSMHelgrind it is more accurate and find real bugs without giving > many false positives. I Will send u the results when it is ready… > > It would be nice if you could introduce me some real Applications (as > MSMunika uses 64-bit for Sval) or if you are interested I will send you > the implemented patch to test or review. Hello Ali, If you can post the source code of a small OpenMP example or show me a website where I can find OpenMP examples, I can make sure that DRD works fine with OpenMP software. Bart. |
|
From: <sv...@va...> - 2008-03-05 12:39:11
|
Author: sewardj
Date: 2008-03-05 12:39:15 +0000 (Wed, 05 Mar 2008)
New Revision: 7570
Log:
Split memory_state_machine() into msm_handle_read() and
msm_handle_write(), as it's pointless to keep interpreting "is_w".
This folds out quite a few branches and improves performance of
sequential code fragments by up to 15-20%.
Modified:
branches/HGDEV/helgrind/hg_main.c
Modified: branches/HGDEV/helgrind/hg_main.c
===================================================================
--- branches/HGDEV/helgrind/hg_main.c 2008-03-05 10:54:45 UTC (rev 7569)
+++ branches/HGDEV/helgrind/hg_main.c 2008-03-05 12:39:15 UTC (rev 7570)
@@ -3039,9 +3039,201 @@
// TODO: handle state with one segment in segment set separately
// for better performance.
static
-SVal memory_state_machine(Bool is_w, Thread* thr, Addr a, SVal sv_old, Int sz)
+SVal msm_handle_write(Thread* thr, Addr a, SVal sv_old, Int sz)
{
UWord i;
+ Bool was_w;
+ SegmentSet oldSS;
+ LockSet oldLS;
+ Bool hb_all = False;
+ UWord oldSS_size = 0;
+ Bool is_race = False;
+ SVal sv_new = SHVAL_Invalid;
+ Bool do_trace = clo_trace_level > 0
+ && a >= clo_trace_addr
+ && a < (clo_trace_addr+sz);
+ SegmentID currS = thr->csegid;
+ SegmentSet newSS = 0;
+ LockSet newLS = 0;
+
+ // current locks.
+ LockSet currLS = thr->locksetW;
+
+ if (UNLIKELY(is_SHVAL_Race(sv_old))) {
+ // we already reported a race, don't bother again.
+ stats__msm_Race++;
+ sv_new = sv_old;
+ goto done;
+ }
+
+ if (UNLIKELY(__bus_lock_Lock->heldBy)
+ && (is_SHVAL_New(sv_old) || is_SHVAL_R(sv_old))) {
+ stats__msm_BHL_hack++;
+ // BHL is held and we are in 'Read' or 'New' state.
+ // User is doing something very smart with LOCK prefix.
+ // Just ignore this memory location.
+ sv_new = SHVAL_Race;
+
+ // VG_(printf)("Ignoring memory %p accessed with LOCK prefix at\n", a);
+ // VG_(get_and_pp_StackTrace)(map_threads_reverse_lookup_SLOW(thr), 5);
+
+ goto done;
+ // TODO: a better scheme might be:
+ // When we see a first write with BHL held we do:
+ // - If we are in state 'Read' or 'New', change the state to 'BHL'.
+ // - If we are in state 'Write', report a race.
+ //
+ // When we are in state BHL:
+ // - Any read keeps us in state 'BHL'.
+ // - Any write with BHL held keeps us in state 'BHL'.
+ // - Any other write is a race.
+ }
+
+ tl_assert(is_sane_Thread(thr));
+
+ // Read or Write
+ if (LIKELY(is_SHVAL_RW(sv_old))) {
+ was_w = is_SHVAL_W(sv_old);
+ oldSS = get_SHVAL_SS(sv_old);
+ oldLS = get_SHVAL_LS(sv_old);
+
+ oldSS_size = SS_get_size(oldSS);
+ if (oldSS_size == 1) {
+ stats__msm_oldSS_single++;
+ } else {
+ tl_assert(oldSS_size > 1);
+ stats__msm_oldSS_multi++;
+ }
+
+ // update the segment set and compute hb_all
+ hb_all = True;
+ newSS = SS_mk_singleton(currS);
+ for (i = 0; i < oldSS_size; i++) {
+ SegmentID S = SS_get_element(oldSS, i);
+ Bool hb = False;
+ if (S == currS // Same segment.
+ || SEG_get(S)->thr == thr // Same thread.
+ || happens_before(S, currS)) {
+ // different thread, but happens-before
+ hb = True;
+ }
+ if (do_trace) {
+ VG_(printf)("HB(S%d/T%d,cur)=%d\n",
+ S, SEG_get(S)->thr->errmsg_index, hb);
+ }
+
+ if (!hb) {
+ hb_all = False;
+ // Not happened-before. Leave this segment in SS.
+ if (SS_is_singleton(newSS)) {
+ tl_assert(currS != S);
+ newSS = HG_(doubletonWS)(univ_ssets, currS, S);
+ } else {
+ newSS = HG_(addToWS)(univ_ssets, newSS, S);
+ }
+ }
+ }
+
+ // update lock set.
+ if (hb_all) {
+ newLS = currLS;
+ } else {
+ newLS = HG_(intersectWS)(univ_lsets, oldLS, currLS);
+ }
+
+ // update the state
+
+ // generate new SVal
+ sv_new = mk_SHVAL_W(newSS, newLS);
+
+ is_race = !SS_is_singleton(newSS)
+ && HG_(isEmptyWS)(univ_lsets, newLS);
+
+ if (oldLS != newLS) {
+ // if the lockset changed, remember when it happened
+ if (0) // FIXME. Do we want this functionality? If so,
+ // it can be very slow.
+ record_last_lock_lossage(a, oldLS, newLS);
+ }
+
+ if ( (!was_w) ) stats__msm_R_to_W++;
+ else if ( (was_w) ) stats__msm_W_to_W++;
+
+ goto done;
+ }
+
+ // New
+ if (is_SHVAL_New(sv_old)) {
+ stats__msm_New_to_W++;
+ newSS = SS_mk_singleton(currS);
+ sv_new = mk_SHVAL_W(newSS, currLS);
+ goto done;
+ }
+
+ // NoAccess
+ if (is_SHVAL_NoAccess(sv_old)) {
+ // TODO: complain
+ stats__msm_wr_NoAccess++;
+ sv_new = sv_old;
+ goto done;
+ }
+
+ /*NOTREACHED*/
+ tl_assert(0);
+
+ done:
+
+ if (do_trace) {
+ HChar buf[200];
+
+ VG_(printf)("RW-Locks held: ");
+ show_lockset(thr->locksetA);
+ VG_(printf)("\n");
+ if (thr->locksetA != thr->locksetW) {
+ VG_(printf)(" W-Locks held: ");
+ show_lockset(thr->locksetW);
+ VG_(printf)("\n");
+ }
+
+ if (__bus_lock_Lock->heldBy) {
+ VG_(printf)("BHL is held\n");
+ }
+
+ show_sval(buf, sizeof(buf), sv_new);
+ VG_(message)(Vg_UserMsg, "TRACE: %p S%d/T%d %c %llx %s", a,
+ (int)currS, thr->errmsg_index,
+ 'w' , sv_new, buf);
+ if (clo_trace_level >= 2) {
+ ThreadId tid = map_threads_maybe_reverse_lookup_SLOW(thr);
+ if (tid != VG_INVALID_THREADID) {
+ VG_(get_and_pp_StackTrace)( tid, 15);
+ }
+ }
+ }
+
+ if (clo_trace_level > 0 && !do_trace) {
+ // if we are tracing something, don't report a race on anything else.
+ is_race = False;
+ }
+
+ // report the race if needed
+ if (is_race) {
+ // ok, now record the race.
+ record_error_Race( thr,
+ a, True, sz, sv_old, sv_new,
+ maybe_get_lastlock_initpoint(a) );
+ // put this in Race state
+ sv_new = SHVAL_Race;
+ }
+
+ return sv_new;
+}
+
+
+static
+SVal msm_handle_read(Thread* thr, Addr a, SVal sv_old, Int sz)
+{
+ UWord i;
Bool was_w, now_w;
SegmentSet oldSS;
LockSet oldLS;
@@ -3057,8 +3249,7 @@
LockSet newLS = 0;
// current locks.
- LockSet currLS = is_w ? thr->locksetW
- : thr->locksetA;
+ LockSet currLS = thr->locksetA;
if (UNLIKELY(is_SHVAL_Race(sv_old))) {
// we already reported a race, don't bother again.
@@ -3143,7 +3334,7 @@
}
// update the state
- now_w = is_w || (was_w && !hb_all);
+ now_w = was_w && !hb_all;
// generate new SVal
sv_new = mk_SHVAL_RW(now_w, newSS, newLS);
@@ -3168,18 +3359,16 @@
// New
if (is_SHVAL_New(sv_old)) {
- if (is_w) stats__msm_New_to_W++;
- else stats__msm_New_to_R++;
+ stats__msm_New_to_R++;
newSS = SS_mk_singleton(currS);
- sv_new = mk_SHVAL_RW(is_w, newSS, currLS);
+ sv_new = mk_SHVAL_R(newSS, currLS);
goto done;
}
// NoAccess
if (is_SHVAL_NoAccess(sv_old)) {
// TODO: complain
- if (is_w) stats__msm_wr_NoAccess++;
- else stats__msm_rd_NoAccess++;
+ stats__msm_rd_NoAccess++;
sv_new = sv_old;
goto done;
}
@@ -3208,7 +3397,7 @@
show_sval(buf, sizeof(buf), sv_new);
VG_(message)(Vg_UserMsg, "TRACE: %p S%d/T%d %c %llx %s", a,
(int)currS, thr->errmsg_index,
- is_w ? 'w' : 'r', sv_new, buf);
+ 'r', sv_new, buf);
if (clo_trace_level >= 2) {
ThreadId tid = map_threads_maybe_reverse_lookup_SLOW(thr);
if (tid != VG_INVALID_THREADID) {
@@ -3226,7 +3415,7 @@
if (is_race) {
// ok, now record the race.
record_error_Race( thr,
- a, is_w, sz, sv_old, sv_new,
+ a, False, sz, sv_old, sv_new,
maybe_get_lastlock_initpoint(a) );
// put this in Race state
sv_new = SHVAL_Race;
@@ -3236,8 +3425,6 @@
}
-
-
/*----------------------------------------------------------------*/
/*--- Shadow value and address range handlers ---*/
/*----------------------------------------------------------------*/
@@ -4201,7 +4388,7 @@
tl_assert(is_sane_CacheLine(cl)); /* EXPENSIVE */
}
svOld = cl->svals[cloff];
- svNew = memory_state_machine( False /*!is_w*/, thr_acc, a, svOld, 1 );
+ svNew = msm_handle_read( thr_acc, a, svOld, 1 );
cl->svals[cloff] = svNew;
}
static void shadow_mem_read16 ( Thread* thr_acc, Addr a, SVal uuOpaque ) {
@@ -4227,7 +4414,7 @@
tl_assert(is_sane_CacheLine(cl)); /* EXPENSIVE */
}
svOld = cl->svals[cloff];
- svNew = memory_state_machine( False /*!is_w*/, thr_acc, a, svOld, 2 );
+ svNew = msm_handle_read( thr_acc, a, svOld, 2 );
cl->svals[cloff] = svNew;
return;
slowcase: /* misaligned, or must go further down the tree */
@@ -4259,7 +4446,7 @@
tl_assert(is_sane_CacheLine(cl)); /* EXPENSIVE */
}
svOld = cl->svals[cloff];
- svNew = memory_state_machine( False /*!is_w*/, thr_acc, a, svOld, 4 );
+ svNew = msm_handle_read( thr_acc, a, svOld, 4 );
cl->svals[cloff] = svNew;
return;
slowcase: /* misaligned, or must go further down the tree */
@@ -4281,7 +4468,7 @@
descr = cl->descrs[tno];
if (UNLIKELY( !(descr & (TREE_DESCR_32_0 << toff)) )) goto slowcase;
{ SVal* p = &cl->svals[cloff];
- *p = memory_state_machine( False /*!is_w*/, thr_acc, a, *p, 4 );
+ *p = msm_handle_read( thr_acc, a, *p, 4 );
}
return;
slowcase: /* misaligned, or not at this level in the tree */
@@ -4305,7 +4492,7 @@
goto slowcase;
}
svOld = cl->svals[cloff];
- svNew = memory_state_machine( False /*!is_w*/, thr_acc, a, svOld, 8 );
+ svNew = msm_handle_read( thr_acc, a, svOld, 8 );
cl->svals[cloff] = svNew;
return;
slowcase: /* misaligned, or must go further down the tree */
@@ -4332,7 +4519,7 @@
tl_assert(is_sane_CacheLine(cl)); /* EXPENSIVE */
}
svOld = cl->svals[cloff];
- svNew = memory_state_machine( True /*is_w*/, thr_acc, a, svOld, 1 );
+ svNew = msm_handle_write( thr_acc, a, svOld, 1 );
cl->svals[cloff] = svNew;
}
static void shadow_mem_write16 ( Thread* thr_acc, Addr a, SVal uuOpaque ) {
@@ -4358,7 +4545,7 @@
tl_assert(is_sane_CacheLine(cl)); /* EXPENSIVE */
}
svOld = cl->svals[cloff];
- svNew = memory_state_machine( True /*is_w*/, thr_acc, a, svOld, 2 );
+ svNew = msm_handle_write( thr_acc, a, svOld, 2 );
cl->svals[cloff] = svNew;
return;
slowcase: /* misaligned, or must go further down the tree */
@@ -4390,7 +4577,7 @@
tl_assert(is_sane_CacheLine(cl)); /* EXPENSIVE */
}
svOld = cl->svals[cloff];
- svNew = memory_state_machine( True /*is_w*/, thr_acc, a, svOld, 4 );
+ svNew = msm_handle_write( thr_acc, a, svOld, 4 );
cl->svals[cloff] = svNew;
return;
slowcase: /* misaligned, or must go further down the tree */
@@ -4412,7 +4599,7 @@
descr = cl->descrs[tno];
if (UNLIKELY( !(descr & (TREE_DESCR_32_0 << toff)) )) goto slowcase;
{ SVal* p = &cl->svals[cloff];
- *p = memory_state_machine( True /*is_w*/, thr_acc, a, *p, 4 );
+ *p = msm_handle_write( thr_acc, a, *p, 4 );
}
return;
slowcase: /* misaligned, or must go further down the tree */
@@ -4436,7 +4623,7 @@
goto slowcase;
}
svOld = cl->svals[cloff];
- svNew = memory_state_machine( True /*is_w*/, thr_acc, a, svOld, 8 );
+ svNew = msm_handle_write( thr_acc, a, svOld, 8 );
cl->svals[cloff] = svNew;
return;
slowcase: /* misaligned, or must go further down the tree */
|
|
From: <sv...@va...> - 2008-03-05 10:54:49
|
Author: sewardj
Date: 2008-03-05 10:54:45 +0000 (Wed, 05 Mar 2008)
New Revision: 7569
Log:
Add counters to distinguish the case when a location's segment set
only has one element (98% or more) from when it has multiple elements
(rare).
Modified:
branches/HGDEV/helgrind/hg_main.c
Modified: branches/HGDEV/helgrind/hg_main.c
===================================================================
--- branches/HGDEV/helgrind/hg_main.c 2008-03-05 02:25:05 UTC (rev 7568)
+++ branches/HGDEV/helgrind/hg_main.c 2008-03-05 10:54:45 UTC (rev 7569)
@@ -2832,16 +2832,18 @@
/*--- the core memory state machine (msm__* functions) ---*/
/*----------------------------------------------------------------*/
-static UWord stats__msm_BHL_hack = 0;
-static UWord stats__msm_Race = 0;
-static UWord stats__msm_R_to_R = 0;
-static UWord stats__msm_R_to_W = 0;
-static UWord stats__msm_W_to_R = 0;
-static UWord stats__msm_W_to_W = 0;
-static UWord stats__msm_New_to_W = 0;
-static UWord stats__msm_New_to_R = 0;
-static UWord stats__msm_wr_NoAccess = 0;
-static UWord stats__msm_rd_NoAccess = 0;
+static UWord stats__msm_BHL_hack = 0;
+static UWord stats__msm_Race = 0;
+static UWord stats__msm_R_to_R = 0;
+static UWord stats__msm_R_to_W = 0;
+static UWord stats__msm_W_to_R = 0;
+static UWord stats__msm_W_to_W = 0;
+static UWord stats__msm_New_to_W = 0;
+static UWord stats__msm_New_to_R = 0;
+static UWord stats__msm_wr_NoAccess = 0;
+static UWord stats__msm_rd_NoAccess = 0;
+static UWord stats__msm_oldSS_single = 0;
+static UWord stats__msm_oldSS_multi = 0;
/* fwds */
static void record_error_Race ( Thread* thr,
@@ -3097,6 +3099,13 @@
oldLS = get_SHVAL_LS(sv_old);
oldSS_size = SS_get_size(oldSS);
+ if (oldSS_size == 1) {
+ stats__msm_oldSS_single++;
+ } else {
+ tl_assert(oldSS_size > 1);
+ stats__msm_oldSS_multi++;
+ }
+
// update the segment set and compute hb_all
hb_all = True;
newSS = SS_mk_singleton(currS);
@@ -8479,6 +8488,8 @@
stats__msm_New_to_R, stats__msm_New_to_W);
VG_(printf)(" msm: %,12lu %,12lu rd_NoAccess, wr_NoAccess\n",
stats__msm_rd_NoAccess, stats__msm_rd_NoAccess);
+ VG_(printf)(" msm: %,12lu %,12lu oldSS_single, oldSS_multi\n",
+ stats__msm_oldSS_single, stats__msm_oldSS_multi);
VG_(printf)("\n");
VG_(printf)(" secmaps: %,10lu allocd (%,12lu g-a-range)\n",
|
|
From: Tom H. <th...@cy...> - 2008-03-05 06:29:12
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2008-03-05 03:15:03 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 == 375 tests, 78 stderr failures, 1 stdout failure, 29 post 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/lsframe1 (stderr) memcheck/tests/lsframe2 (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/noisy_child (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/varinfo1 (stderr) memcheck/tests/varinfo2 (stderr) memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo4 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/x86/bug152022 (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/xor-undef-x86 (stderr) memcheck/tests/xml1 (stderr) massif/tests/alloc-fns-A (post) massif/tests/alloc-fns-B (post) massif/tests/basic (post) massif/tests/basic2 (post) massif/tests/big-alloc (post) massif/tests/culling1 (stderr) massif/tests/culling2 (stderr) massif/tests/custom_alloc (post) massif/tests/deep-A (post) massif/tests/deep-B (stderr) massif/tests/deep-B (post) massif/tests/deep-C (stderr) massif/tests/deep-C (post) massif/tests/deep-D (post) massif/tests/ignoring (post) massif/tests/insig (post) massif/tests/long-names (post) massif/tests/long-time (post) massif/tests/new-cpp (post) massif/tests/null (post) massif/tests/one (post) massif/tests/overloaded-new (post) massif/tests/peak (post) massif/tests/peak2 (stderr) massif/tests/peak2 (post) massif/tests/realloc (stderr) massif/tests/realloc (post) massif/tests/thresholds_0_0 (post) massif/tests/thresholds_0_10 (post) massif/tests/thresholds_10_0 (post) massif/tests/thresholds_10_10 (post) massif/tests/thresholds_5_0 (post) massif/tests/thresholds_5_10 (post) massif/tests/zero1 (post) massif/tests/zero2 (post) none/tests/blockfault (stderr) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/shell (stderr) none/tests/shell_valid1 (stderr) none/tests/shell_valid2 (stderr) none/tests/shell_valid3 (stderr) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/hg06_readshared (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc02_simple_tls (stderr) helgrind/tests/tc03_re_excl (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc07_hbl1 (stderr) helgrind/tests/tc08_hbl2 (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc11_XCHG (stderr) helgrind/tests/tc12_rwl_trivial (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) helgrind/tests/tc24_nonzero_sem (stderr) exp-drd/tests/tc09_bad_unlock (stderr) exp-drd/tests/tc12_rwl_trivial (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 == 375 tests, 114 stderr failures, 6 stdout failures, 29 post 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/lsframe1 (stderr) memcheck/tests/lsframe2 (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/noisy_child (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/varinfo1 (stderr) memcheck/tests/varinfo2 (stderr) memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo4 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/x86/bug152022 (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/xor-undef-x86 (stderr) memcheck/tests/xml1 (stderr) massif/tests/alloc-fns-A (post) massif/tests/alloc-fns-B (post) massif/tests/basic (post) massif/tests/basic2 (post) massif/tests/big-alloc (post) massif/tests/culling1 (stderr) massif/tests/culling2 (stderr) massif/tests/custom_alloc (post) massif/tests/deep-A (post) massif/tests/deep-B (stderr) massif/tests/deep-B (post) massif/tests/deep-C (stderr) massif/tests/deep-C (post) massif/tests/deep-D (post) massif/tests/ignoring (post) massif/tests/insig (post) massif/tests/long-names (post) massif/tests/long-time (post) massif/tests/new-cpp (post) massif/tests/null (post) massif/tests/one (post) massif/tests/overloaded-new (post) massif/tests/peak (post) massif/tests/peak2 (stderr) massif/tests/peak2 (post) massif/tests/realloc (stderr) massif/tests/realloc (post) massif/tests/thresholds_0_0 (post) massif/tests/thresholds_0_10 (post) massif/tests/thresholds_10_0 (post) massif/tests/thresholds_10_10 (post) massif/tests/thresholds_5_0 (post) massif/tests/thresholds_5_10 (post) massif/tests/zero1 (post) massif/tests/zero2 (post) none/tests/blockfault (stderr) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/shell (stderr) none/tests/shell_valid1 (stderr) none/tests/shell_valid2 (stderr) none/tests/shell_valid3 (stderr) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/hg06_readshared (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc02_simple_tls (stderr) helgrind/tests/tc03_re_excl (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc07_hbl1 (stderr) helgrind/tests/tc08_hbl2 (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc11_XCHG (stderr) helgrind/tests/tc12_rwl_trivial (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) helgrind/tests/tc24_nonzero_sem (stderr) exp-drd/tests/fp_race (stderr) exp-drd/tests/fp_race2 (stderr) exp-drd/tests/hg01_all_ok (stderr) exp-drd/tests/hg02_deadlock (stderr) exp-drd/tests/hg03_inherit (stderr) exp-drd/tests/hg04_race (stderr) exp-drd/tests/hg05_race2 (stderr) exp-drd/tests/hg06_readshared (stderr) exp-drd/tests/matinv (stdout) exp-drd/tests/matinv (stderr) exp-drd/tests/pth_barrier2 (stderr) exp-drd/tests/pth_barrier3 (stderr) exp-drd/tests/pth_broadcast (stderr) exp-drd/tests/pth_cond_race (stderr) exp-drd/tests/pth_cond_race2 (stderr) exp-drd/tests/pth_create_chain (stderr) exp-drd/tests/pth_detached (stdout) exp-drd/tests/pth_detached (stderr) exp-drd/tests/pth_detached2 (stdout) exp-drd/tests/pth_detached2 (stderr) exp-drd/tests/rwlock_race (stderr) exp-drd/tests/sem_as_mutex (stderr) exp-drd/tests/sem_as_mutex2 (stderr) exp-drd/tests/sigalrm (stderr) exp-drd/tests/tc01_simple_race (stderr) exp-drd/tests/tc02_simple_tls (stderr) exp-drd/tests/tc03_re_excl (stderr) exp-drd/tests/tc05_simple_race (stderr) exp-drd/tests/tc06_two_races (stderr) exp-drd/tests/tc09_bad_unlock (stderr) exp-drd/tests/tc11_XCHG (stdout) exp-drd/tests/tc11_XCHG (stderr) exp-drd/tests/tc12_rwl_trivial (stderr) exp-drd/tests/tc16_byterace (stderr) exp-drd/tests/tc17_sembar (stderr) exp-drd/tests/tc18_semabuse (stderr) exp-drd/tests/tc20_verifywrap (stderr) exp-drd/tests/tc20_verifywrap2 (stderr) exp-drd/tests/tc21_pthonce (stdout) exp-drd/tests/tc21_pthonce (stderr) exp-drd/tests/tc22_exit_w_lock (stderr) exp-drd/tests/tc23_bogus_condwait (stderr) exp-drd/tests/trylock (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Mar 5 05:05:36 2008 --- new.short Wed Mar 5 06:29:17 2008 *************** *** 8,10 **** ! == 375 tests, 114 stderr failures, 6 stdout failures, 29 post failures == memcheck/tests/addressable (stderr) --- 8,10 ---- ! == 375 tests, 78 stderr failures, 1 stdout failure, 29 post failures == memcheck/tests/addressable (stderr) *************** *** 115,159 **** helgrind/tests/tc24_nonzero_sem (stderr) - exp-drd/tests/fp_race (stderr) - exp-drd/tests/fp_race2 (stderr) - exp-drd/tests/hg01_all_ok (stderr) - exp-drd/tests/hg02_deadlock (stderr) - exp-drd/tests/hg03_inherit (stderr) - exp-drd/tests/hg04_race (stderr) - exp-drd/tests/hg05_race2 (stderr) - exp-drd/tests/hg06_readshared (stderr) - exp-drd/tests/matinv (stdout) - exp-drd/tests/matinv (stderr) - exp-drd/tests/pth_barrier2 (stderr) - exp-drd/tests/pth_barrier3 (stderr) - exp-drd/tests/pth_broadcast (stderr) - exp-drd/tests/pth_cond_race (stderr) - exp-drd/tests/pth_cond_race2 (stderr) - exp-drd/tests/pth_create_chain (stderr) - exp-drd/tests/pth_detached (stdout) - exp-drd/tests/pth_detached (stderr) - exp-drd/tests/pth_detached2 (stdout) - exp-drd/tests/pth_detached2 (stderr) - exp-drd/tests/rwlock_race (stderr) - exp-drd/tests/sem_as_mutex (stderr) - exp-drd/tests/sem_as_mutex2 (stderr) - exp-drd/tests/sigalrm (stderr) - exp-drd/tests/tc01_simple_race (stderr) - exp-drd/tests/tc02_simple_tls (stderr) - exp-drd/tests/tc03_re_excl (stderr) - exp-drd/tests/tc05_simple_race (stderr) - exp-drd/tests/tc06_two_races (stderr) exp-drd/tests/tc09_bad_unlock (stderr) - exp-drd/tests/tc11_XCHG (stdout) - exp-drd/tests/tc11_XCHG (stderr) exp-drd/tests/tc12_rwl_trivial (stderr) - exp-drd/tests/tc16_byterace (stderr) - exp-drd/tests/tc17_sembar (stderr) - exp-drd/tests/tc18_semabuse (stderr) - exp-drd/tests/tc20_verifywrap (stderr) - exp-drd/tests/tc20_verifywrap2 (stderr) - exp-drd/tests/tc21_pthonce (stdout) - exp-drd/tests/tc21_pthonce (stderr) - exp-drd/tests/tc22_exit_w_lock (stderr) - exp-drd/tests/tc23_bogus_condwait (stderr) - exp-drd/tests/trylock (stderr) --- 115,118 ---- |
|
From: Tom H. <th...@cy...> - 2008-03-05 04:46:18
|
Nightly build on lloyd ( x86_64, Fedora 7 ) started at 2008-03-05 03:05:05 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 == 409 tests, 79 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/varinfo1 (stderr) memcheck/tests/varinfo2 (stderr) memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo4 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/hg06_readshared (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc02_simple_tls (stderr) helgrind/tests/tc03_re_excl (stderr) helgrind/tests/tc04_free_lock (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc07_hbl1 (stderr) helgrind/tests/tc08_hbl2 (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc10_rec_lock (stderr) helgrind/tests/tc11_XCHG (stderr) helgrind/tests/tc12_rwl_trivial (stderr) helgrind/tests/tc13_laog1 (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc15_laog_lockdel (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) helgrind/tests/tc24_nonzero_sem (stderr) exp-drd/tests/fp_race (stderr) exp-drd/tests/fp_race2 (stderr) exp-drd/tests/hg01_all_ok (stderr) exp-drd/tests/hg02_deadlock (stderr) exp-drd/tests/hg03_inherit (stderr) exp-drd/tests/hg04_race (stderr) exp-drd/tests/hg05_race2 (stderr) exp-drd/tests/hg06_readshared (stderr) exp-drd/tests/matinv (stderr) exp-drd/tests/pth_broadcast (stderr) exp-drd/tests/pth_cond_race (stderr) exp-drd/tests/pth_cond_race2 (stderr) exp-drd/tests/pth_create_chain (stderr) exp-drd/tests/pth_detached (stderr) exp-drd/tests/pth_detached2 (stderr) exp-drd/tests/recursive_mutex (stderr) exp-drd/tests/rwlock_race (stderr) exp-drd/tests/sem_as_mutex (stderr) exp-drd/tests/sem_as_mutex2 (stderr) exp-drd/tests/sigalrm (stderr) exp-drd/tests/tc01_simple_race (stderr) exp-drd/tests/tc02_simple_tls (stderr) exp-drd/tests/tc03_re_excl (stderr) exp-drd/tests/tc04_free_lock (stderr) exp-drd/tests/tc09_bad_unlock (stderr) exp-drd/tests/tc10_rec_lock (stderr) exp-drd/tests/tc11_XCHG (stderr) exp-drd/tests/tc12_rwl_trivial (stderr) exp-drd/tests/tc13_laog1 (stderr) exp-drd/tests/tc15_laog_lockdel (stderr) exp-drd/tests/tc16_byterace (stderr) exp-drd/tests/tc17_sembar (stderr) exp-drd/tests/tc18_semabuse (stderr) exp-drd/tests/tc20_verifywrap (stderr) exp-drd/tests/tc20_verifywrap2 (stderr) exp-drd/tests/tc21_pthonce (stderr) exp-drd/tests/tc22_exit_w_lock (stderr) exp-drd/tests/tc23_bogus_condwait (stderr) exp-drd/tests/trylock (stderr) |
|
From: Tom H. <th...@cy...> - 2008-03-05 03:39:56
|
Nightly build on trojan ( x86_64, Fedora Core 6 ) started at 2008-03-05 03:25:04 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 == 413 tests, 9 stderr failures, 5 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/bug133694 (stdout) memcheck/tests/x86/bug133694 (stderr) memcheck/tests/x86/scalar (stderr) none/tests/cmdline1 (stdout) none/tests/cmdline2 (stdout) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) exp-drd/tests/tc21_pthonce (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 == 413 tests, 10 stderr failures, 5 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/bug133694 (stdout) memcheck/tests/x86/bug133694 (stderr) memcheck/tests/x86/scalar (stderr) none/tests/cmdline1 (stdout) none/tests/cmdline2 (stdout) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) exp-drd/tests/matinv (stderr) exp-drd/tests/tc21_pthonce (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Mar 5 03:32:37 2008 --- new.short Wed Mar 5 03:40:01 2008 *************** *** 8,10 **** ! == 413 tests, 10 stderr failures, 5 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) --- 8,10 ---- ! == 413 tests, 9 stderr failures, 5 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) *************** *** 22,24 **** helgrind/tests/tc22_exit_w_lock (stderr) - exp-drd/tests/matinv (stderr) exp-drd/tests/tc21_pthonce (stderr) --- 22,23 ---- |
|
From: Tom H. <th...@cy...> - 2008-03-05 03:39:00
|
Nightly build on dellow ( x86_64, Fedora 8 ) started at 2008-03-05 03:10:05 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 == 409 tests, 79 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/varinfo1 (stderr) memcheck/tests/varinfo2 (stderr) memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo4 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/pth_cvsimple (stdout) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/hg06_readshared (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc02_simple_tls (stderr) helgrind/tests/tc03_re_excl (stderr) helgrind/tests/tc04_free_lock (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc07_hbl1 (stderr) helgrind/tests/tc08_hbl2 (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc10_rec_lock (stderr) helgrind/tests/tc11_XCHG (stderr) helgrind/tests/tc12_rwl_trivial (stderr) helgrind/tests/tc13_laog1 (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc15_laog_lockdel (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) helgrind/tests/tc24_nonzero_sem (stderr) exp-drd/tests/fp_race (stderr) exp-drd/tests/fp_race2 (stderr) exp-drd/tests/hg01_all_ok (stderr) exp-drd/tests/hg02_deadlock (stderr) exp-drd/tests/hg03_inherit (stderr) exp-drd/tests/hg04_race (stderr) exp-drd/tests/hg05_race2 (stderr) exp-drd/tests/hg06_readshared (stderr) exp-drd/tests/matinv (stderr) exp-drd/tests/pth_broadcast (stderr) exp-drd/tests/pth_cond_race (stderr) exp-drd/tests/pth_cond_race2 (stderr) exp-drd/tests/pth_create_chain (stderr) exp-drd/tests/pth_detached (stderr) exp-drd/tests/pth_detached2 (stderr) exp-drd/tests/recursive_mutex (stderr) exp-drd/tests/rwlock_race (stderr) exp-drd/tests/sem_as_mutex (stderr) exp-drd/tests/sem_as_mutex2 (stderr) exp-drd/tests/sigalrm (stderr) exp-drd/tests/tc01_simple_race (stderr) exp-drd/tests/tc02_simple_tls (stderr) exp-drd/tests/tc03_re_excl (stderr) exp-drd/tests/tc04_free_lock (stderr) exp-drd/tests/tc09_bad_unlock (stderr) exp-drd/tests/tc10_rec_lock (stderr) exp-drd/tests/tc11_XCHG (stderr) exp-drd/tests/tc12_rwl_trivial (stderr) exp-drd/tests/tc13_laog1 (stderr) exp-drd/tests/tc15_laog_lockdel (stderr) exp-drd/tests/tc16_byterace (stderr) exp-drd/tests/tc17_sembar (stderr) exp-drd/tests/tc18_semabuse (stderr) exp-drd/tests/tc20_verifywrap (stderr) exp-drd/tests/tc20_verifywrap2 (stderr) exp-drd/tests/tc21_pthonce (stderr) exp-drd/tests/tc22_exit_w_lock (stderr) exp-drd/tests/tc23_bogus_condwait (stderr) exp-drd/tests/trylock (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 == 409 tests, 79 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/varinfo1 (stderr) memcheck/tests/varinfo2 (stderr) memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo4 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/hg06_readshared (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc02_simple_tls (stderr) helgrind/tests/tc03_re_excl (stderr) helgrind/tests/tc04_free_lock (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc07_hbl1 (stderr) helgrind/tests/tc08_hbl2 (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc10_rec_lock (stderr) helgrind/tests/tc11_XCHG (stderr) helgrind/tests/tc12_rwl_trivial (stderr) helgrind/tests/tc13_laog1 (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc15_laog_lockdel (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) helgrind/tests/tc24_nonzero_sem (stderr) exp-drd/tests/fp_race (stderr) exp-drd/tests/fp_race2 (stderr) exp-drd/tests/hg01_all_ok (stderr) exp-drd/tests/hg02_deadlock (stderr) exp-drd/tests/hg03_inherit (stderr) exp-drd/tests/hg04_race (stderr) exp-drd/tests/hg05_race2 (stderr) exp-drd/tests/hg06_readshared (stderr) exp-drd/tests/matinv (stderr) exp-drd/tests/pth_broadcast (stderr) exp-drd/tests/pth_cond_race (stderr) exp-drd/tests/pth_cond_race2 (stderr) exp-drd/tests/pth_create_chain (stderr) exp-drd/tests/pth_detached (stderr) exp-drd/tests/pth_detached2 (stderr) exp-drd/tests/recursive_mutex (stderr) exp-drd/tests/rwlock_race (stderr) exp-drd/tests/sem_as_mutex (stderr) exp-drd/tests/sem_as_mutex2 (stderr) exp-drd/tests/sigalrm (stderr) exp-drd/tests/tc01_simple_race (stderr) exp-drd/tests/tc02_simple_tls (stderr) exp-drd/tests/tc03_re_excl (stderr) exp-drd/tests/tc04_free_lock (stderr) exp-drd/tests/tc09_bad_unlock (stderr) exp-drd/tests/tc10_rec_lock (stderr) exp-drd/tests/tc11_XCHG (stderr) exp-drd/tests/tc12_rwl_trivial (stderr) exp-drd/tests/tc13_laog1 (stderr) exp-drd/tests/tc15_laog_lockdel (stderr) exp-drd/tests/tc16_byterace (stderr) exp-drd/tests/tc17_sembar (stderr) exp-drd/tests/tc18_semabuse (stderr) exp-drd/tests/tc20_verifywrap (stderr) exp-drd/tests/tc20_verifywrap2 (stderr) exp-drd/tests/tc21_pthonce (stderr) exp-drd/tests/tc22_exit_w_lock (stderr) exp-drd/tests/tc23_bogus_condwait (stderr) exp-drd/tests/trylock (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Mar 5 03:24:36 2008 --- new.short Wed Mar 5 03:39:04 2008 *************** *** 8,10 **** ! == 409 tests, 79 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) --- 8,10 ---- ! == 409 tests, 79 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) *************** *** 21,22 **** --- 21,23 ---- none/tests/mremap2 (stdout) + none/tests/pth_cvsimple (stdout) helgrind/tests/hg01_all_ok (stderr) |
|
From: Tom H. <th...@cy...> - 2008-03-05 03:24:49
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2008-03-05 03:00:13 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 == 415 tests, 39 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/amd64/insn_ssse3 (stdout) none/tests/amd64/insn_ssse3 (stderr) none/tests/amd64/ssse3_misaligned (stderr) none/tests/blockfault (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/x86/insn_ssse3 (stdout) none/tests/x86/insn_ssse3 (stderr) none/tests/x86/ssse3_misaligned (stderr) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) exp-drd/tests/hg03_inherit (stderr) exp-drd/tests/pth_create_chain (stderr) exp-drd/tests/pth_detached (stderr) exp-drd/tests/pth_detached2 (stderr) exp-drd/tests/tc20_verifywrap (stderr) exp-drd/tests/tc20_verifywrap2 (stderr) exp-drd/tests/tc21_pthonce (stderr) exp-drd/tests/tc22_exit_w_lock (stderr) |
|
From: Darrell R. <dr...@us...> - 2008-03-05 03:03:01
|
I am out of the office until 03/10/2008. I will respond to your message when I return. Note: This is an automated response to your message Valgrind-developers Digest, Vol 22, Issue 20 sent on 3/4/08 16:45:10. This is the only notification you will receive while this person is away. |
|
From: <sv...@va...> - 2008-03-05 02:25:11
|
Author: sewardj
Date: 2008-03-05 02:25:05 +0000 (Wed, 05 Mar 2008)
New Revision: 7568
Log:
Reinstate memory state machine performance counters.
Modified:
branches/HGDEV/helgrind/hg_main.c
Modified: branches/HGDEV/helgrind/hg_main.c
===================================================================
--- branches/HGDEV/helgrind/hg_main.c 2008-03-04 22:10:54 UTC (rev 7567)
+++ branches/HGDEV/helgrind/hg_main.c 2008-03-05 02:25:05 UTC (rev 7568)
@@ -2832,22 +2832,17 @@
/*--- the core memory state machine (msm__* functions) ---*/
/*----------------------------------------------------------------*/
-static UWord stats__msm_read_Excl_nochange = 0;
-static UWord stats__msm_read_Excl_transfer = 0;
-static UWord stats__msm_read_Excl_to_ShR = 0;
-static UWord stats__msm_read_ShR_to_ShR = 0;
-static UWord stats__msm_read_ShM_to_ShM = 0;
-static UWord stats__msm_read_New_to_Excl = 0;
-static UWord stats__msm_read_NoAccess = 0;
+static UWord stats__msm_BHL_hack = 0;
+static UWord stats__msm_Race = 0;
+static UWord stats__msm_R_to_R = 0;
+static UWord stats__msm_R_to_W = 0;
+static UWord stats__msm_W_to_R = 0;
+static UWord stats__msm_W_to_W = 0;
+static UWord stats__msm_New_to_W = 0;
+static UWord stats__msm_New_to_R = 0;
+static UWord stats__msm_wr_NoAccess = 0;
+static UWord stats__msm_rd_NoAccess = 0;
-static UWord stats__msm_write_Excl_nochange = 0;
-static UWord stats__msm_write_Excl_transfer = 0;
-static UWord stats__msm_write_Excl_to_ShM = 0;
-static UWord stats__msm_write_ShR_to_ShM = 0;
-static UWord stats__msm_write_ShM_to_ShM = 0;
-static UWord stats__msm_write_New_to_Excl = 0;
-static UWord stats__msm_write_NoAccess = 0;
-
/* fwds */
static void record_error_Race ( Thread* thr,
Addr data_addr, Bool isWrite, Int szB,
@@ -3065,12 +3060,14 @@
if (UNLIKELY(is_SHVAL_Race(sv_old))) {
// we already reported a race, don't bother again.
+ stats__msm_Race++;
sv_new = sv_old;
goto done;
}
if (UNLIKELY(__bus_lock_Lock->heldBy)
&& (is_SHVAL_New(sv_old) || is_SHVAL_R(sv_old))) {
+ stats__msm_BHL_hack++;
// BHL is held and we are in 'Read' or 'New' state.
// User is doing something very smart with LOCK prefix.
// Just ignore this memory location.
@@ -3151,11 +3148,19 @@
// it can be very slow.
record_last_lock_lossage(a, oldLS, newLS);
}
+
+ if ( (!was_w) && (!now_w) ) stats__msm_R_to_R++;
+ else if ( (!was_w) && (now_w) ) stats__msm_R_to_W++;
+ else if ( (was_w) && (!now_w) ) stats__msm_W_to_R++;
+ else if ( (was_w) && (now_w) ) stats__msm_W_to_W++;
+
goto done;
}
// New
if (is_SHVAL_New(sv_old)) {
+ if (is_w) stats__msm_New_to_W++;
+ else stats__msm_New_to_R++;
newSS = SS_mk_singleton(currS);
sv_new = mk_SHVAL_RW(is_w, newSS, currLS);
goto done;
@@ -3164,6 +3169,8 @@
// NoAccess
if (is_SHVAL_NoAccess(sv_old)) {
// TODO: complain
+ if (is_w) stats__msm_wr_NoAccess++;
+ else stats__msm_rd_NoAccess++;
sv_new = sv_old;
goto done;
}
@@ -8462,20 +8469,16 @@
VG_(printf)(" sanity checks: %,8lu\n", stats__sanity_checks);
VG_(printf)("\n");
- VG_(printf)(" msm: %,12lu %,12lu rd/wr_Excl_nochange\n",
- stats__msm_read_Excl_nochange, stats__msm_write_Excl_nochange);
- VG_(printf)(" msm: %,12lu %,12lu rd/wr_Excl_transfer\n",
- stats__msm_read_Excl_transfer, stats__msm_write_Excl_transfer);
- VG_(printf)(" msm: %,12lu %,12lu rd/wr_Excl_to_ShR/ShM\n",
- stats__msm_read_Excl_to_ShR, stats__msm_write_Excl_to_ShM);
- VG_(printf)(" msm: %,12lu %,12lu rd/wr_ShR_to_ShR/ShM\n",
- stats__msm_read_ShR_to_ShR, stats__msm_write_ShR_to_ShM);
- VG_(printf)(" msm: %,12lu %,12lu rd/wr_ShM_to_ShM\n",
- stats__msm_read_ShM_to_ShM, stats__msm_write_ShM_to_ShM);
- VG_(printf)(" msm: %,12lu %,12lu rd/wr_New_to_Excl\n",
- stats__msm_read_New_to_Excl, stats__msm_write_New_to_Excl);
- VG_(printf)(" msm: %,12lu %,12lu rd/wr_NoAccess\n",
- stats__msm_read_NoAccess, stats__msm_write_NoAccess);
+ VG_(printf)(" msm: %,12lu %,12lu BHL-skipped, Race\n",
+ stats__msm_BHL_hack, stats__msm_Race);
+ VG_(printf)(" msm: %,12lu %,12lu R_to_R, R_to_W\n",
+ stats__msm_R_to_R, stats__msm_R_to_W);
+ VG_(printf)(" msm: %,12lu %,12lu W_to_R, W_to_W\n",
+ stats__msm_W_to_R, stats__msm_W_to_W);
+ VG_(printf)(" msm: %,12lu %,12lu New_to_R, New_to_W\n",
+ stats__msm_New_to_R, stats__msm_New_to_W);
+ VG_(printf)(" msm: %,12lu %,12lu rd_NoAccess, wr_NoAccess\n",
+ stats__msm_rd_NoAccess, stats__msm_rd_NoAccess);
VG_(printf)("\n");
VG_(printf)(" secmaps: %,10lu allocd (%,12lu g-a-range)\n",
|
|
From: Julian S. <js...@ac...> - 2008-03-05 00:51:11
|
> Which modifications do we need to use Helgrind on OpenMP. Is there any > patch to use? The attached tarball gives details of how to use GNU OpenMP in gcc-4.2.3. > Actually I am interested to compare MSMunika and MSMhelgrind on some > benchmarks and student projects which have used OpenMP. Good. I will be interested to see the results. > It would be nice if you could introduce me some real Applications (as > MSMunika uses 64-bit for Sval) or if you are interested I will send you > the implemented patch to test or review. I use Firefox-2.0.0.X and OpenOffice as test cases. Firefox is easy to build from source, but does memory recycling so you will need to annotate one part of it with client requests. OpenOffice is hard to build from source (depends on who you ask) so I just use the one supplied with my distro. J |