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: <sv...@va...> - 2007-10-18 23:14:46
|
Author: njn Date: 2007-10-19 00:14:48 +0100 (Fri, 19 Oct 2007) New Revision: 7025 Log: Suggest compiling with --Wall. Modified: trunk/docs/xml/manual-core.xml Modified: trunk/docs/xml/manual-core.xml =================================================================== --- trunk/docs/xml/manual-core.xml 2007-10-18 23:02:29 UTC (rev 7024) +++ trunk/docs/xml/manual-core.xml 2007-10-18 23:14:48 UTC (rev 7025) @@ -116,8 +116,12 @@ this often makes things unmanagably slow, a reasonable compromise is to use <computeroutput>-O</computeroutput>. This gets you the majority of the benefits of higher optimisation levels whilst keeping relatively small the -chances of false positives or false negatives from Memcheck. All other -tools (as far as we know) are unaffected by optimisation level.</para> +chances of false positives or false negatives from Memcheck. Also, you +should compile your code with <computeroutput>-Wall</computeroutput> because +it can identify some or all of the problems that Valgrind can miss at the +higher optimisations levels. (Using <computeroutput>-Wall</computeroutput> +is also a good idea in general.) All other tools (as far as we know) are +unaffected by optimisation level.</para> <para>Valgrind understands both the older "stabs" debugging format, used by gcc versions prior to 3.1, and the newer DWARF2 and DWARF3 formats |
|
From: Nicholas N. <nj...@cs...> - 2007-10-18 23:09:38
|
On Thu, 18 Oct 2007, Julian Seward wrote: >> the later was a very optimistic guess to replace the missing with what >> sounds similar. it still does not build and I know next to nothing of >> VG internals. Thanks for looking into this! > > Stefan, I guess you are building against 3.2.3 instead of against the > current svn trunk. There are a number of differences. If you check out > the trunk (see http://www.valgrind.org/downloads/repository.html) > then I imagine this will build and work no problem. I thought it sounded the other way around -- he was building against the trunk, and Omega still is using the 3.2.3 names? Either way, the fixes should be very easy, just small name changes. Nick |
|
From: <sv...@va...> - 2007-10-18 23:02:33
|
Author: sewardj
Date: 2007-10-19 00:02:29 +0100 (Fri, 19 Oct 2007)
New Revision: 7024
Log:
Tidy up a bit, move some code around etc. No functional changes.
Modified:
branches/THRCHECK/thrcheck/tc_main.c
Modified: branches/THRCHECK/thrcheck/tc_main.c
===================================================================
--- branches/THRCHECK/thrcheck/tc_main.c 2007-10-18 20:26:41 UTC (rev 7023)
+++ branches/THRCHECK/thrcheck/tc_main.c 2007-10-18 23:02:29 UTC (rev 7024)
@@ -770,6 +770,32 @@
tl_assert(is_sane_LockN(lk));
}
+static void remove_Lock_from_locksets_of_all_owning_Threads( Lock* lk )
+{
+ Thread* thr;
+ if (!lk->heldBy) {
+ tl_assert(!lk->heldW);
+ return;
+ }
+ /* for each thread that holds this lock do ... */
+ TC_(initIterBag)( lk->heldBy );
+ while (TC_(nextIterBag)( lk->heldBy, (Word*)&thr, NULL )) {
+ tl_assert(is_sane_Thread(thr));
+ tl_assert(TC_(elemWS)( univ_lsets,
+ thr->locksetA, (Word)lk ));
+ thr->locksetA
+ = TC_(delFromWS)( univ_lsets, thr->locksetA, (Word)lk );
+
+ if (lk->heldW) {
+ tl_assert(TC_(elemWS)( univ_lsets,
+ thr->locksetW, (Word)lk ));
+ thr->locksetW
+ = TC_(delFromWS)( univ_lsets, thr->locksetW, (Word)lk );
+ }
+ }
+ TC_(doneIterBag)( lk->heldBy );
+}
+
/* --------- xxxID functions --------- */
/* Proposal (for debugging sanity):
@@ -2106,29 +2132,6 @@
#undef BAD
}
-/* Generic template for iterating over all words in a SecMap:
-static void zzzzz ( SecMap* sm, void (*F)(UInt) )
-{
- Word zi, zj;
- CacheLineZ* lineZ;
- CacheLineF* lineF;
- for (zi = 0; zi < N_SECMAP_ZLINES; zi++) {
- get_ZF_by_index( &lineZ, &lineF, sm, zi );
- if (lineZ) {
- tl_assert(!lineF);
- for (zj = 0; zj < 4; zj++) {
- if (lineZ->dict[zj])
- F(lineZ->dict[zj]);
- }
- } else {
- tl_assert(!lineZ);
- for (zj = 0; zj < N_LINE_W8s; zj++) {
- F( lineF->fw32[zj] );
- }
- }
- }
-}
-*/
/* Sanity check shadow memory, as far as possible */
static void shmem__sanity_check ( Char* who )
@@ -2670,6 +2673,12 @@
/*--- Shadow value and address range handlers ---*/
/*----------------------------------------------------------------*/
+static void laog__pre_thread_acquires_lock ( Thread*, Lock* ); /* fwds */
+static void laog__handle_lock_deletions ( WordSetID ); /* fwds */
+
+
+/* ------------ CacheLineF and CacheLineZ related ------------ */
+
static void write_twobit_array ( UChar* arr, UWord ix, UWord b2 ) {
Word bix, shft, mask, prep;
tl_assert((b2 & ~3) == 0);
@@ -2691,7 +2700,8 @@
/* Given a lineZ index and a SecMap, return the CacheLineZ* and CacheLineF*
for that index. */
-static void get_ZF_by_index ( /*OUT*/CacheLineZ** zp, /*OUT*/CacheLineF** fp,
+static void get_ZF_by_index ( /*OUT*/CacheLineZ** zp,
+ /*OUT*/CacheLineF** fp,
SecMap* sm, Int zix ) {
CacheLineZ* lineZ;
tl_assert(zp);
@@ -2713,9 +2723,8 @@
}
}
-static
-void find_ZF_for_reading ( /*OUT*/CacheLineZ** zp,
- /*OUT*/CacheLineF** fp, Addr tag ) {
+static void find_ZF_for_reading ( /*OUT*/CacheLineZ** zp,
+ /*OUT*/CacheLineF** fp, Addr tag ) {
CacheLineZ* lineZ;
CacheLineF* lineF;
UWord zix;
@@ -2741,10 +2750,9 @@
*fp = lineF;
}
-static
-void find_Z_for_writing ( /*OUT*/SecMap** smp,
- /*OUT*/Word* zixp,
- Addr tag ) {
+static void find_Z_for_writing ( /*OUT*/SecMap** smp,
+ /*OUT*/Word* zixp,
+ Addr tag ) {
CacheLineZ* lineZ;
CacheLineF* lineF;
UWord zix;
@@ -2771,10 +2779,8 @@
*zixp = zix;
}
-static
-void alloc_F_for_writing ( /*MOD*/SecMap* sm,
- /*OUT*/Word* fixp )
-{
+static
+void alloc_F_for_writing ( /*MOD*/SecMap* sm, /*OUT*/Word* fixp ) {
Word i, new_size;
CacheLineF* nyu;
@@ -2832,6 +2838,9 @@
tl_assert(0);
}
+
+/* ------------ CacheLine and implicit-tree related ------------ */
+
__attribute__((unused))
static void pp_CacheLine ( CacheLine* cl ) {
Word i;
@@ -2960,6 +2969,7 @@
# undef BYTE
}
+__attribute__((unused))
static Bool is_sane_Descr ( UShort descr ) {
return descr_to_validbits(descr) != 0;
}
@@ -3045,35 +3055,7 @@
return False;
}
-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;
- if (!lk->heldBy) {
- tl_assert(!lk->heldW);
- return;
- }
- /* for each thread that holds this lock do ... */
- TC_(initIterBag)( lk->heldBy );
- while (TC_(nextIterBag)( lk->heldBy, (Word*)&thr, NULL )) {
- tl_assert(is_sane_Thread(thr));
- tl_assert(TC_(elemWS)( univ_lsets,
- thr->locksetA, (Word)lk ));
- thr->locksetA
- = TC_(delFromWS)( univ_lsets, thr->locksetA, (Word)lk );
-
- if (lk->heldW) {
- tl_assert(TC_(elemWS)( univ_lsets,
- thr->locksetW, (Word)lk ));
- thr->locksetW
- = TC_(delFromWS)( univ_lsets, thr->locksetW, (Word)lk );
- }
- }
- TC_(doneIterBag)( lk->heldBy );
-}
-
static UShort normalise_tree ( /*MOD*/UInt* tree ) {
Word i;
UShort descr;
@@ -3131,7 +3113,7 @@
/* This takes a cacheline where all the data is at the leaves
(w8[..]) and builds a correctly normalised tree. */
-static void cacheline_normalise ( /*MOD*/CacheLine* cl )
+static void normalise_CacheLine ( /*MOD*/CacheLine* cl )
{
Word tno, cloff;
for (tno = 0, cloff = 0; tno < N_LINE_TREES; tno++, cloff += 8) {
@@ -3191,7 +3173,7 @@
/* Write the cacheline 'wix' to backing store. Where it ends up
is determined by its tag field. */
static
-Bool sequentialise_into ( /*OUT*/UInt* dst, Word nDst, CacheLine* src )
+Bool sequentialise_CacheLine ( /*OUT*/UInt* dst, Word nDst, CacheLine* src )
{
Word tno, cloff;
Bool anyShared = False;
@@ -3252,7 +3234,7 @@
/* Generate the data to be stored */
/* EXPENSIVE: tl_assert(is_sane_CacheLine( cl )); */
- anyShared = sequentialise_into( shvals, N_LINE_ARANGE, cl );
+ anyShared = sequentialise_CacheLine( shvals, N_LINE_ARANGE, cl );
lineZ->dict[0] = lineZ->dict[1]
= lineZ->dict[2] = lineZ->dict[3] = 0;
@@ -3353,7 +3335,7 @@
}
stats__cache_Z_fetches++;
}
- cacheline_normalise( cl );
+ normalise_CacheLine( cl );
}
static void shmem__invalidate_scache ( void ) {
@@ -3365,6 +3347,7 @@
}
stats__cache_invals++;
}
+
static void shmem__flush_and_invalidate_scache ( void ) {
Word wix;
Addr tag;
@@ -3384,6 +3367,9 @@
stats__cache_invals++;
}
+
+/* ------------ Basic shadow memory read/write ops ------------ */
+
static inline Bool aligned16 ( Addr a ) {
return 0 == (a & 1);
}
@@ -3450,8 +3436,6 @@
return cl;
}
-/////////////////////////////vvvvvvvvvvvvvvvvvvvvvvvvvvvvv
-
static UShort pulldown_to_32 ( /*MOD*/UInt* tree, UWord toff, UShort descr ) {
stats__cline_64to32pulldown++;
switch (toff) {
@@ -3728,6 +3712,7 @@
shadow_mem_read32_SLOW( thr_acc, a, uuOpaque );
}
+inline
static void shadow_mem_read64 ( Thread* thr_acc, Addr a, UInt uuOpaque ) {
CacheLine* cl;
UWord cloff, tno, toff;
@@ -3804,38 +3789,6 @@
shadow_mem_write8( thr_acc, a + 1, 0/*unused*/ );
}
-#if 0
-static void shadow_mem_write32 ( Thread* thr_acc, Addr a, UInt uuOpaque ) {
- CacheLine* cl;
- UWord cloff, tno, toff;
- UInt svOld, svNew;
- UShort descr;
- stats__cline_write32s++;
- if (UNLIKELY(!aligned32(a))) goto slowcase;
- cl = get_cacheline(a);
- cloff = get_cacheline_offset(a);
- tno = get_treeno(a);
- toff = get_tree_offset(a); /* == 0 or 4 */
- descr = cl->descrs[tno];
- if (UNLIKELY( !(descr & (TREE_DESCR_32_0 << toff)) )) {
- if (valid_value_is_above_me_32(descr, toff)) {
- UInt* tree = &cl->svals[tno << 3];
- cl->descrs[tno] = pulldown_to_32(tree, toff, descr);
- } else {
- goto slowcase;
- }
- /* EXPENSIVE: tl_assert(is_sane_CacheLine(cl)); */
- }
- svOld = cl->svals[cloff];
- svNew = msm__handle_write( thr_acc, a, svOld, 4 );
- cl->svals[cloff] = svNew;
- return;
- slowcase: /* misaligned, or must go further down the tree */
- stats__cline_32to16splits++;
- shadow_mem_write16( thr_acc, a + 0, 0/*unused*/ );
- shadow_mem_write16( thr_acc, a + 2, 0/*unused*/ );
-}
-#else
__attribute__((noinline))
static void shadow_mem_write32_SLOW ( Thread* thr_acc, Addr a, UInt uuOpaque ) {
CacheLine* cl;
@@ -3886,8 +3839,8 @@
slowcase: /* misaligned, or must go further down the tree */
shadow_mem_write32_SLOW( thr_acc, a, uuOpaque );
}
-#endif
+inline
static void shadow_mem_write64 ( Thread* thr_acc, Addr a, UInt uuOpaque ) {
CacheLine* cl;
UWord cloff, tno, toff;
@@ -4000,6 +3953,7 @@
shadow_mem_set16( uu_thr_acc, a + 0, svNew );
shadow_mem_set16( uu_thr_acc, a + 2, svNew );
}
+inline
static void shadow_mem_set64 ( Thread* uu_thr_acc, Addr a, UInt svNew ) {
CacheLine* cl;
UWord cloff, tno, toff;
@@ -4049,10 +4003,9 @@
shadow_mem_set8( NULL/*unused*/, dst, sv );
}
-/////////////////////////////^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+/* ------------ Shadow memory range setting ops ------------ */
-
static void shadow_mem_modify_range(
Thread* thr,
Addr a,
|
|
From: <sv...@va...> - 2007-10-18 20:26:54
|
Author: sewardj
Date: 2007-10-18 21:26:41 +0100 (Thu, 18 Oct 2007)
New Revision: 7023
Log:
Redesign the the CacheLine type so as to take up less space (34 bytes
per 8 bytes of guest address space, compared with 60 prior to this
change). The decompressed shadow representation of each 8 byte chunk
of guest address space is now 8 32-bit words + 1 16 bit descriptor
word. Aim is to reduce the overall L2 miss rate. Unfortunately as
yet it does not appear to make things much faster, but I think there
is some performance headroom still in there somewhere.
Modified:
branches/THRCHECK/thrcheck/tc_main.c
Modified: branches/THRCHECK/thrcheck/tc_main.c
===================================================================
--- branches/THRCHECK/thrcheck/tc_main.c 2007-10-18 08:56:48 UTC (rev 7022)
+++ branches/THRCHECK/thrcheck/tc_main.c 2007-10-18 20:26:41 UTC (rev 7023)
@@ -302,29 +302,38 @@
/* ------ CacheLine ------ */
#define N_LINE_BITS 5 /* must be >= 3 */
-#define N_LINE_W8s (1 << (N_LINE_BITS-0))
-#define N_LINE_W16s (1 << (N_LINE_BITS-1))
-#define N_LINE_W32s (1 << (N_LINE_BITS-2))
-#define N_LINE_W64s (1 << (N_LINE_BITS-3))
+#define N_LINE_ARANGE (1 << N_LINE_BITS)
+#define N_LINE_TREES (N_LINE_ARANGE >> 3)
-#define SIBLING(_x) ((_x) ^ 1)
-#define PARENT(_x) ( ((UWord)(_x)) >> 1)
-#define LEFTCHILD(_x) (((_x) << 1) + 0)
-#define RIGHTCHILD(_x) (((_x) << 1) + 1)
-
typedef
struct {
- UInt w64[N_LINE_W64s];
- UInt w32[N_LINE_W32s];
- UInt w16[N_LINE_W16s];
- UInt w8 [N_LINE_W8s];
+ UShort descrs[N_LINE_TREES];
+ UInt svals[N_LINE_ARANGE]; // == N_LINE_TREES * 8
}
CacheLine;
+#define TREE_DESCR_16_0 (1<<0)
+#define TREE_DESCR_32_0 (1<<1)
+#define TREE_DESCR_16_1 (1<<2)
+#define TREE_DESCR_64 (1<<3)
+#define TREE_DESCR_16_2 (1<<4)
+#define TREE_DESCR_32_1 (1<<5)
+#define TREE_DESCR_16_3 (1<<6)
+#define TREE_DESCR_8_0 (1<<7)
+#define TREE_DESCR_8_1 (1<<8)
+#define TREE_DESCR_8_2 (1<<9)
+#define TREE_DESCR_8_3 (1<<10)
+#define TREE_DESCR_8_4 (1<<11)
+#define TREE_DESCR_8_5 (1<<12)
+#define TREE_DESCR_8_6 (1<<13)
+#define TREE_DESCR_8_7 (1<<14)
+#define TREE_DESCR_DTY (1<<15)
+
typedef
struct {
UInt dict[4]; /* can represent up to 4 diff values in the line */
- UChar ix2s[N_LINE_W8s/4]; /* array of N_LINE_W8s 2-bit dict indexes */
+ UChar ix2s[N_LINE_ARANGE/4]; /* array of N_LINE_ARANGE 2-bit
+ dict indexes */
/* if dict[0] == 0 then dict[1] is the index of the CacheLineF
to use */
}
@@ -333,7 +342,7 @@
typedef
struct {
Bool inUse;
- UInt w32s[N_LINE_W8s];
+ UInt w32s[N_LINE_ARANGE];
}
CacheLineF; /* full rep for a cache line */
@@ -361,7 +370,7 @@
#define N_SECMAP_ARANGE (1 << N_SECMAP_BITS)
// # CacheLines held by a SecMap
-#define N_SECMAP_ZLINES (N_SECMAP_ARANGE / N_LINE_W8s)
+#define N_SECMAP_ZLINES (N_SECMAP_ARANGE / N_LINE_ARANGE)
typedef
struct {
UInt magic;
@@ -385,9 +394,12 @@
itr->word_no = 0;
}
-/* Get the current val, and move to the next position. */
+/* Get the current val, and move to the next position. This is called
+ a huge amount in some programs (eg OpenOffice). Hence the
+ 'inline'. */
static UWord stats__secmap_iterator_steppings; /* fwds */
+inline
static Bool stepSecMapIter ( /*OUT*/UInt** pVal,
/*MOD*/SecMapIter* itr, SecMap* sm )
{
@@ -395,23 +407,25 @@
CacheLineF* lineF = NULL;
/* Either it points to a valid place, or to (-1,-1) */
stats__secmap_iterator_steppings++;
- if (itr->line_no == -1 && itr->word_no == -1)
+ if (UNLIKELY(itr->line_no == -1)) {
+ tl_assert(itr->word_no == -1);
return False;
+ }
/* so now it must be a valid place in the SecMap. */
if (0) VG_(printf)("%p %d %d\n", sm, (Int)itr->line_no, (Int)itr->word_no);
tl_assert(itr->line_no >= 0 && itr->line_no < N_SECMAP_ZLINES);
lineZ = &sm->linesZ[itr->line_no];
- if (lineZ->dict[0] == 0) {
+ if (UNLIKELY(lineZ->dict[0] == 0)) {
tl_assert(sm->linesF);
tl_assert(sm->linesF_size > 0);
tl_assert(lineZ->dict[1] >= 0);
tl_assert(lineZ->dict[1] < sm->linesF_size);
lineF = &sm->linesF[ lineZ->dict[1] ];
tl_assert(lineF->inUse);
- tl_assert(itr->word_no >= 0 && itr->word_no < N_LINE_W8s);
+ tl_assert(itr->word_no >= 0 && itr->word_no < N_LINE_ARANGE);
*pVal = &lineF->w32s[itr->word_no];
itr->word_no++;
- if (itr->word_no == N_LINE_W8s)
+ if (itr->word_no == N_LINE_ARANGE)
itr->word_no = 0;
} else {
tl_assert(itr->word_no >= 0 && itr->word_no <= 3);
@@ -649,7 +663,7 @@
acquired, up till the point that the lock gets incorporated into
LAOG. Before that point, .first_locked_laog is NULL. When the
lock is incorporated into LAOG, .first_locked is copied into
- .first_locked_laog and we stop snapshotting it after that. it.
+ .first_locked_laog and we stop snapshotting it after that.
This is so as to produce better lock-order error messages. */
if (lk->acquired_at_laog == NULL) {
ThreadId tid = map_threads_maybe_reverse_lookup_SLOW(thr);
@@ -708,7 +722,7 @@
acquired, up till the point that the lock gets incorporated into
LAOG. Before that point, .first_locked_laog is NULL. When the
lock is incorporated into LAOG, .first_locked is copied into
- .first_locked_laog and we stop snapshotting it after that. it.
+ .first_locked_laog and we stop snapshotting it after that.
This is so as to produce better lock-order error messages. */
if (lk->acquired_at_laog == NULL) {
ThreadId tid = map_threads_maybe_reverse_lookup_SLOW(thr);
@@ -781,7 +795,7 @@
static inline Bool is_valid_scache_tag ( Addr tag ) {
/* a valid tag should be naturally aligned to the start of
a CacheLine. */
- return 0 == (tag & (N_LINE_W8s - 1));
+ return 0 == (tag & (N_LINE_ARANGE - 1));
}
static inline Bool is_sane_SecMap ( SecMap* sm ) {
@@ -795,15 +809,11 @@
01 TSegmentID:30 Excl thread-segment
00 0--(20)--0 10 0000 0000 New
00 0--(20)--0 01 0000 0000 NoAccess
- 00 0--(20)--0 00 0000 0010 InvalidU - valid value is further up tree
- 00 0--(20)--0 00 0000 0100 InvalidD - valid value is further down tree
+ 00 0--(20)--0 00 0000 0000 Invalid
TSID_BITS + LSID_BITS must equal 30.
The elements in thread sets are Thread*, casted to Word.
The elements in lock sets are Lock*, casted to Word.
-
- InvalidU and InvalidD have somewhat strange values so as to
- minimise the chance of confusing them with any other value.
*/
#define N_LSID_BITS 17
@@ -822,10 +832,6 @@
}
-#define SHVAL_New ((UInt)(2<<8))
-#define SHVAL_NoAccess ((UInt)(1<<8))
-#define SHVAL_InvalidU ((UInt)(1<<1))
-#define SHVAL_InvalidD ((UInt)(1<<2))
static inline UInt mk_SHVAL_ShM ( WordSetID tset, WordSetID lset ) {
tl_assert(is_sane_WordSetID_TSet(tset));
tl_assert(is_sane_WordSetID_LSet(lset));
@@ -833,21 +839,21 @@
| (lset << N_LSID_SHIFT));
}
static inline UInt mk_SHVAL_ShR ( WordSetID tset, WordSetID lset ) {
- //if ((!is_sane_WordSetID(tset)) || (!is_sane_WordSetID(lset)))
- // VG_(printf)("XXXXXXXXXX %d %d\n", (Int)tset, (Int)lset);
+ /* if ((!is_sane_WordSetID(tset)) || (!is_sane_WordSetID(lset)))
+ VG_(printf)("XXXXXXXXXX %d %d\n", (Int)tset, (Int)lset); */
tl_assert(is_sane_WordSetID_TSet(tset));
tl_assert(is_sane_WordSetID_LSet(lset));
return (UInt)( (2<<30) | (tset << N_TSID_SHIFT)
- | (lset << N_LSID_SHIFT));
+ | (lset << N_LSID_SHIFT) );
}
static inline UInt mk_SHVAL_Excl ( SegmentID tseg ) {
tl_assert(is_sane_SegmentID(tseg));
return (UInt)( (1<<30) | tseg );
}
+#define SHVAL_New ((UInt)(2<<8))
+#define SHVAL_NoAccess ((UInt)(1<<8))
+#define SHVAL_Invalid ((UInt)(0<<8))
-static inline Bool is_SHVAL_Invalid ( UInt w32 ) {
- return (w32 & ~( (1<<1)|(1<<2) )) == 0;
-}
static inline Bool is_SHVAL_ShM ( UInt w32 ) {
return (w32 >> 30) == 3;
}
@@ -1706,42 +1712,42 @@
/*----------------------------------------------------------------*/
-static UWord stats__secmaps_allocd = 0; // # SecMaps issued
+static UWord stats__secmaps_allocd = 0; // # SecMaps issued
static UWord stats__secmap_ga_space_covered = 0; // # ga bytes covered
static UWord stats__secmap_linesZ_allocd = 0; // # CacheLineZ's issued
static UWord stats__secmap_linesZ_bytes = 0; // .. using this much storage
static UWord stats__secmap_linesF_allocd = 0; // # CacheLineF's issued
static UWord stats__secmap_linesF_bytes = 0; // .. using this much storage
static UWord stats__secmap_iterator_steppings = 0; // # calls to stepSMIter
-static UWord stats__cache_Z_fetches = 0; // # Z lines fetched
-static UWord stats__cache_Z_wbacks = 0; // # Z lines written back
-static UWord stats__cache_F_fetches = 0; // # F lines fetched
-static UWord stats__cache_F_wbacks = 0; // # F lines written back
-static UWord stats__cache_invals = 0; // # cache invals
-static UWord stats__cache_flushes = 0; // # cache flushes
-static UWord stats__cache_totrefs = 0; // # total accesses
-static UWord stats__cache_totmisses = 0; // # misses
-static UWord stats__cline_normalises = 0; // # calls to cacheline_normalise
-static UWord stats__cline_read8s = 0; // # calls to s_m_read64
-static UWord stats__cline_read4s = 0; // # calls to s_m_read32
-static UWord stats__cline_read2s = 0; // # calls to s_m_read16
-static UWord stats__cline_read1s = 0; // # calls to s_m_read8
-static UWord stats__cline_write8s = 0; // # calls to s_m_write64
-static UWord stats__cline_write4s = 0; // # calls to s_m_write32
-static UWord stats__cline_write2s = 0; // # calls to s_m_write16
-static UWord stats__cline_write1s = 0; // # calls to s_m_write8
-static UWord stats__cline_set8s = 0; // # calls to s_m_set64
-static UWord stats__cline_set4s = 0; // # calls to s_m_set32
-static UWord stats__cline_set2s = 0; // # calls to s_m_set16
-static UWord stats__cline_set1s = 0; // # calls to s_m_set8
-static UWord stats__cline_get1s = 0; // # calls to s_m_get8
-static UWord stats__cline_copy1s = 0; // # calls to s_m_copy8
-static UWord stats__cline_8to4splits = 0; // # 64-bit accesses split
-static UWord stats__cline_4to2splits = 0; // # 32-bit accesses split
-static UWord stats__cline_2to1splits = 0; // # 16-bit accesses split
-static UWord stats__cline_8to4pulldown = 0; // # calls to pulldown_to_w32
-static UWord stats__cline_4to2pulldown = 0; // # calls to pulldown_to_w16
-static UWord stats__cline_2to1pulldown = 0; // # calls to pulldown_to_w8
+static UWord stats__cache_Z_fetches = 0; // # Z lines fetched
+static UWord stats__cache_Z_wbacks = 0; // # Z lines written back
+static UWord stats__cache_F_fetches = 0; // # F lines fetched
+static UWord stats__cache_F_wbacks = 0; // # F lines written back
+static UWord stats__cache_invals = 0; // # cache invals
+static UWord stats__cache_flushes = 0; // # cache flushes
+static UWord stats__cache_totrefs = 0; // # total accesses
+static UWord stats__cache_totmisses = 0; // # misses
+static UWord stats__cline_normalises = 0; // # calls to cacheline_normalise
+static UWord stats__cline_read64s = 0; // # calls to s_m_read64
+static UWord stats__cline_read32s = 0; // # calls to s_m_read32
+static UWord stats__cline_read16s = 0; // # calls to s_m_read16
+static UWord stats__cline_read8s = 0; // # calls to s_m_read8
+static UWord stats__cline_write64s = 0; // # calls to s_m_write64
+static UWord stats__cline_write32s = 0; // # calls to s_m_write32
+static UWord stats__cline_write16s = 0; // # calls to s_m_write16
+static UWord stats__cline_write8s = 0; // # calls to s_m_write8
+static UWord stats__cline_set64s = 0; // # calls to s_m_set64
+static UWord stats__cline_set32s = 0; // # calls to s_m_set32
+static UWord stats__cline_set16s = 0; // # calls to s_m_set16
+static UWord stats__cline_set8s = 0; // # calls to s_m_set8
+static UWord stats__cline_get8s = 0; // # calls to s_m_get8
+static UWord stats__cline_copy8s = 0; // # calls to s_m_copy8
+static UWord stats__cline_64to32splits = 0; // # 64-bit accesses split
+static UWord stats__cline_32to16splits = 0; // # 32-bit accesses split
+static UWord stats__cline_16to8splits = 0; // # 16-bit accesses split
+static UWord stats__cline_64to32pulldown = 0; // # calls to pulldown_to_32
+static UWord stats__cline_32to16pulldown = 0; // # calls to pulldown_to_16
+static UWord stats__cline_16to8pulldown = 0; // # calls to pulldown_to_8
static UInt shadow_mem_get8 ( Addr a ); /* fwds */
@@ -1797,7 +1803,7 @@
sm->linesZ[i].dict[1] = 0; /* completely invalid SHVAL */
sm->linesZ[i].dict[2] = 0;
sm->linesZ[i].dict[3] = 0;
- for (j = 0; j < N_LINE_W8s/4; j++)
+ for (j = 0; j < N_LINE_ARANGE/4; j++)
sm->linesZ[i].ix2s[j] = 0; /* all reference dict[0] */
}
sm->linesF = NULL;
@@ -2210,7 +2216,7 @@
if (tag != 1) {
if (!is_valid_scache_tag(tag)) BAD("14-0");
if (!is_sane_CacheLine(cl)) BAD("15-0");
- if (tag & (N_LINE_W8s-1)) BAD("16-0");
+ if (tag & (N_LINE_ARANGE-1)) BAD("16-0");
for (j = i+1; j < N_WAY_NENT; j++)
if (cache_shmem.tags0[j] == tag) BAD("17-0");
}
@@ -2717,7 +2723,7 @@
UWord smoff = shmem__get_SecMap_offset(tag);
/* since smoff is derived from a valid tag, it should be
cacheline-aligned. */
- tl_assert(0 == (smoff & (N_LINE_W8s - 1)));
+ tl_assert(0 == (smoff & (N_LINE_ARANGE - 1)));
zix = smoff >> N_LINE_BITS;
tl_assert(zix < N_SECMAP_ZLINES);
lineZ = &sm->linesZ[zix];
@@ -2746,7 +2752,7 @@
UWord smoff = shmem__get_SecMap_offset(tag);
/* since smoff is derived from a valid tag, it should be
cacheline-aligned. */
- tl_assert(0 == (smoff & (N_LINE_W8s - 1)));
+ tl_assert(0 == (smoff & (N_LINE_ARANGE - 1)));
zix = smoff >> N_LINE_BITS;
tl_assert(zix < N_SECMAP_ZLINES);
lineZ = &sm->linesZ[zix];
@@ -2833,64 +2839,206 @@
VG_(printf)("pp_CacheLine(NULL)\n");
return;
}
-# define FMT "%08x\n"
- for (i = 0; i < N_LINE_W64s; i++) {
- Word iL = LEFTCHILD(i);
- Word iR = RIGHTCHILD(i);
- Word iLL = LEFTCHILD(iL);
- Word iLR = RIGHTCHILD(iL);
- Word iRL = LEFTCHILD(iR);
- Word iRR = RIGHTCHILD(iR);
- VG_(printf)(FMT, cl->w64[i]);
- VG_(printf)(" " FMT, cl->w32[iL]);
- VG_(printf)(" " FMT, cl->w16[iLL]);
- VG_(printf)(" " FMT, cl->w8[LEFTCHILD(iLL)]);
- VG_(printf)(" " FMT, cl->w8[RIGHTCHILD(iLL)]);
- VG_(printf)(" " FMT, cl->w16[iLR]);
- VG_(printf)(" " FMT, cl->w8[LEFTCHILD(iLR)]);
- VG_(printf)(" " FMT, cl->w8[RIGHTCHILD(iLR)]);
- VG_(printf)(" " FMT, cl->w32[iR]);
- VG_(printf)(" " FMT, cl->w16[iRL]);
- VG_(printf)(" " FMT, cl->w8[LEFTCHILD(iRL)]);
- VG_(printf)(" " FMT, cl->w8[RIGHTCHILD(iRL)]);
- VG_(printf)(" " FMT, cl->w16[iRR]);
- VG_(printf)(" " FMT, cl->w8[LEFTCHILD(iRR)]);
- VG_(printf)(" " FMT, cl->w8[RIGHTCHILD(iRR)]);
+ for (i = 0; i < N_LINE_TREES; i++)
+ VG_(printf)(" descr: %04lx\n", (UWord)cl->descrs[i]);
+ for (i = 0; i < N_LINE_ARANGE; i++)
+ VG_(printf)(" sval: %08lx\n", (UWord)cl->svals[i]);
+}
+
+static UChar descr_to_validbits ( UShort descr )
+{
+ /* a.k.a Party Time for gcc's constant folder */
+# define DESCR(b8_7, b8_6, b8_5, b8_4, b8_3, b8_2, b8_1, b8_0, \
+ b16_3, b32_1, b16_2, b64, b16_1, b32_0, b16_0) \
+ ( (UShort) ( ( (b8_7) << 14) | ( (b8_6) << 13) | \
+ ( (b8_5) << 12) | ( (b8_4) << 11) | \
+ ( (b8_3) << 10) | ( (b8_2) << 9) | \
+ ( (b8_1) << 8) | ( (b8_0) << 7) | \
+ ( (b16_3) << 6) | ( (b32_1) << 5) | \
+ ( (b16_2) << 4) | ( (b64) << 3) | \
+ ( (b16_1) << 2) | ( (b32_0) << 1) | \
+ ( (b16_0) << 0) ) )
+
+# define BYTE(bit7, bit6, bit5, bit4, bit3, bit2, bit1, bit0) \
+ ( (UChar) ( ( (bit7) << 7) | ( (bit6) << 6) | \
+ ( (bit5) << 5) | ( (bit4) << 4) | \
+ ( (bit3) << 3) | ( (bit2) << 2) | \
+ ( (bit1) << 1) | ( (bit0) << 0) ) )
+
+ /* these should all get folded out at compile time */
+ tl_assert(DESCR(1,0,0,0,0,0,0,0, 0,0,0, 0, 0,0,0) == TREE_DESCR_8_7);
+ tl_assert(DESCR(0,0,0,0,0,0,0,1, 0,0,0, 0, 0,0,0) == TREE_DESCR_8_0);
+ tl_assert(DESCR(0,0,0,0,0,0,0,0, 1,0,0, 0, 0,0,0) == TREE_DESCR_16_3);
+ tl_assert(DESCR(0,0,0,0,0,0,0,0, 0,1,0, 0, 0,0,0) == TREE_DESCR_32_1);
+ tl_assert(DESCR(0,0,0,0,0,0,0,0, 0,0,1, 0, 0,0,0) == TREE_DESCR_16_2);
+ tl_assert(DESCR(0,0,0,0,0,0,0,0, 0,0,0, 1, 0,0,0) == TREE_DESCR_64);
+ tl_assert(DESCR(0,0,0,0,0,0,0,0, 0,0,0, 0, 1,0,0) == TREE_DESCR_16_1);
+ tl_assert(DESCR(0,0,0,0,0,0,0,0, 0,0,0, 0, 0,1,0) == TREE_DESCR_32_0);
+ tl_assert(DESCR(0,0,0,0,0,0,0,0, 0,0,0, 0, 0,0,1) == TREE_DESCR_16_0);
+
+ switch (descr) {
+ /*
+ +--------------------------------- TREE_DESCR_8_7
+ | +------------------- TREE_DESCR_8_0
+ | | +---------------- TREE_DESCR_16_3
+ | | | +-------------- TREE_DESCR_32_1
+ | | | | +------------ TREE_DESCR_16_2
+ | | | | | +--------- TREE_DESCR_64
+ | | | | | | +------ TREE_DESCR_16_1
+ | | | | | | | +---- TREE_DESCR_32_0
+ | | | | | | | | +-- TREE_DESCR_16_0
+ | | | | | | | | |
+ | | | | | | | | | GRANULARITY, 7 -> 0 */
+ case DESCR(1,1,1,1,1,1,1,1, 0,0,0, 0, 0,0,0): /* 8 8 8 8 8 8 8 8 */
+ return BYTE(1,1,1,1,1,1,1,1);
+ case DESCR(1,1,0,0,1,1,1,1, 0,0,1, 0, 0,0,0): /* 8 8 16 8 8 8 8 */
+ return BYTE(1,1,0,1,1,1,1,1);
+ case DESCR(0,0,1,1,1,1,1,1, 1,0,0, 0, 0,0,0): /* 16 8 8 8 8 8 8 */
+ return BYTE(0,1,1,1,1,1,1,1);
+ case DESCR(0,0,0,0,1,1,1,1, 1,0,1, 0, 0,0,0): /* 16 16 8 8 8 8 */
+ return BYTE(0,1,0,1,1,1,1,1);
+
+ case DESCR(1,1,1,1,1,1,0,0, 0,0,0, 0, 0,0,1): /* 8 8 8 8 8 8 16 */
+ return BYTE(1,1,1,1,1,1,0,1);
+ case DESCR(1,1,0,0,1,1,0,0, 0,0,1, 0, 0,0,1): /* 8 8 16 8 8 16 */
+ return BYTE(1,1,0,1,1,1,0,1);
+ case DESCR(0,0,1,1,1,1,0,0, 1,0,0, 0, 0,0,1): /* 16 8 8 8 8 16 */
+ return BYTE(0,1,1,1,1,1,0,1);
+ case DESCR(0,0,0,0,1,1,0,0, 1,0,1, 0, 0,0,1): /* 16 16 8 8 16 */
+ return BYTE(0,1,0,1,1,1,0,1);
+
+ case DESCR(1,1,1,1,0,0,1,1, 0,0,0, 0, 1,0,0): /* 8 8 8 8 16 8 8 */
+ return BYTE(1,1,1,1,0,1,1,1);
+ case DESCR(1,1,0,0,0,0,1,1, 0,0,1, 0, 1,0,0): /* 8 8 16 16 8 8 */
+ return BYTE(1,1,0,1,0,1,1,1);
+ case DESCR(0,0,1,1,0,0,1,1, 1,0,0, 0, 1,0,0): /* 16 8 8 16 8 8 */
+ return BYTE(0,1,1,1,0,1,1,1);
+ case DESCR(0,0,0,0,0,0,1,1, 1,0,1, 0, 1,0,0): /* 16 16 16 8 8 */
+ return BYTE(0,1,0,1,0,1,1,1);
+
+ case DESCR(1,1,1,1,0,0,0,0, 0,0,0, 0, 1,0,1): /* 8 8 8 8 16 16 */
+ return BYTE(1,1,1,1,0,1,0,1);
+ case DESCR(1,1,0,0,0,0,0,0, 0,0,1, 0, 1,0,1): /* 8 8 16 16 16 */
+ return BYTE(1,1,0,1,0,1,0,1);
+ case DESCR(0,0,1,1,0,0,0,0, 1,0,0, 0, 1,0,1): /* 16 8 8 16 16 */
+ return BYTE(0,1,1,1,0,1,0,1);
+ case DESCR(0,0,0,0,0,0,0,0, 1,0,1, 0, 1,0,1): /* 16 16 16 16 */
+ return BYTE(0,1,0,1,0,1,0,1);
+
+ case DESCR(0,0,0,0,1,1,1,1, 0,1,0, 0, 0,0,0): /* 32 8 8 8 8 */
+ return BYTE(0,0,0,1,1,1,1,1);
+ case DESCR(0,0,0,0,1,1,0,0, 0,1,0, 0, 0,0,1): /* 32 8 8 16 */
+ return BYTE(0,0,0,1,1,1,0,1);
+ case DESCR(0,0,0,0,0,0,1,1, 0,1,0, 0, 1,0,0): /* 32 16 8 8 */
+ return BYTE(0,0,0,1,0,1,1,1);
+ case DESCR(0,0,0,0,0,0,0,0, 0,1,0, 0, 1,0,1): /* 32 16 16 */
+ return BYTE(0,0,0,1,0,1,0,1);
+
+ case DESCR(1,1,1,1,0,0,0,0, 0,0,0, 0, 0,1,0): /* 8 8 8 8 32 */
+ return BYTE(1,1,1,1,0,0,0,1);
+ case DESCR(1,1,0,0,0,0,0,0, 0,0,1, 0, 0,1,0): /* 8 8 16 32 */
+ return BYTE(1,1,0,1,0,0,0,1);
+ case DESCR(0,0,1,1,0,0,0,0, 1,0,0, 0, 0,1,0): /* 16 8 8 32 */
+ return BYTE(0,1,1,1,0,0,0,1);
+ case DESCR(0,0,0,0,0,0,0,0, 1,0,1, 0, 0,1,0): /* 16 16 32 */
+ return BYTE(0,1,0,1,0,0,0,1);
+
+ case DESCR(0,0,0,0,0,0,0,0, 0,1,0, 0, 0,1,0): /* 32 32 */
+ return BYTE(0,0,0,1,0,0,0,1);
+
+ case DESCR(0,0,0,0,0,0,0,0, 0,0,0, 1, 0,0,0): /* 64 */
+ return BYTE(0,0,0,0,0,0,0,1);
+
+ default: return BYTE(0,0,0,0,0,0,0,0);
+ /* INVALID - any valid descr produces at least one
+ valid bit in tree[0..7]*/
}
-# undef FMT
+ /* NOTREACHED*/
+ tl_assert(0);
+
+# undef DESCR
+# undef BYTE
}
-/* Check that all paths from leaf to root are of the form
- InvalidU* one-valid-value InvalidD*
-*/
+static Bool is_sane_Descr ( UShort descr ) {
+ return descr_to_validbits(descr) != 0;
+}
+
+static void sprintf_Descr ( /*OUT*/UChar* dst, UShort descr ) {
+ VG_(sprintf)(dst,
+ "%d%d%d%d%d%d%d%d %d%d%d %d %d%d%d",
+ (Int)((descr & TREE_DESCR_8_7) ? 1 : 0),
+ (Int)((descr & TREE_DESCR_8_6) ? 1 : 0),
+ (Int)((descr & TREE_DESCR_8_5) ? 1 : 0),
+ (Int)((descr & TREE_DESCR_8_4) ? 1 : 0),
+ (Int)((descr & TREE_DESCR_8_3) ? 1 : 0),
+ (Int)((descr & TREE_DESCR_8_2) ? 1 : 0),
+ (Int)((descr & TREE_DESCR_8_1) ? 1 : 0),
+ (Int)((descr & TREE_DESCR_8_0) ? 1 : 0),
+ (Int)((descr & TREE_DESCR_16_3) ? 1 : 0),
+ (Int)((descr & TREE_DESCR_32_1) ? 1 : 0),
+ (Int)((descr & TREE_DESCR_16_2) ? 1 : 0),
+ (Int)((descr & TREE_DESCR_64) ? 1 : 0),
+ (Int)((descr & TREE_DESCR_16_1) ? 1 : 0),
+ (Int)((descr & TREE_DESCR_32_0) ? 1 : 0),
+ (Int)((descr & TREE_DESCR_16_0) ? 1 : 0)
+ );
+}
+static void sprintf_Byte ( /*OUT*/UChar* dst, UChar byte ) {
+ VG_(sprintf)(dst, "%d%d%d%d%d%d%d%d",
+ (Int)((byte & 128) ? 1 : 0),
+ (Int)((byte & 64) ? 1 : 0),
+ (Int)((byte & 32) ? 1 : 0),
+ (Int)((byte & 16) ? 1 : 0),
+ (Int)((byte & 8) ? 1 : 0),
+ (Int)((byte & 4) ? 1 : 0),
+ (Int)((byte & 2) ? 1 : 0),
+ (Int)((byte & 1) ? 1 : 0)
+ );
+}
+
+static Bool is_sane_Descr_and_Tree ( UShort descr, UInt* tree ) {
+ Word i;
+ UChar validbits = descr_to_validbits(descr);
+ UChar buf[128], buf2[128];
+ if (validbits == 0)
+ goto bad;
+ for (i = 0; i < 8; i++) {
+ if (validbits & (1<<i)) {
+ if (!is_SHVAL_valid(tree[i]))
+ goto bad;
+ } else {
+ if (tree[i] != 0)
+ goto bad;
+ }
+ }
+ return True;
+ bad:
+ sprintf_Descr( buf, descr );
+ sprintf_Byte( buf2, validbits );
+ VG_(printf)("is_sane_Descr_and_Tree: bad tree {\n");
+ VG_(printf)(" validbits 0x%02lx %s\n", (UWord)validbits, buf2);
+ VG_(printf)(" descr 0x%04lx %s\n", (UWord)descr, buf);
+ for (i = 0; i < 8; i++)
+ VG_(printf)(" [%ld] 0x%08x\n", i, tree[i]);
+ VG_(printf)("}\n");
+ return 0;
+}
+
+
static Bool is_sane_CacheLine ( CacheLine* cl )
{
- Word i, j;
- UInt path[4];
+ Word tno, cloff;
if (!cl) goto bad;
- for (i = 0; i < N_LINE_W8s; i++) {
- path[0] = cl->w8[i];
- path[1] = cl->w16[ PARENT(i) ];
- path[2] = cl->w32[ PARENT(PARENT(i)) ];
- path[3] = cl->w64[ PARENT(PARENT(PARENT(i))) ];
- j = 0;
- while (1) {
- if (j >= 4) goto bad;
- if (path[j] != SHVAL_InvalidU) break;
- j++;
- }
- tl_assert(j <= 3);
- if (!is_SHVAL_valid(path[j])) goto bad;
- j++;
- while (1) {
- if (j == 4) break;
- if (path[j] != SHVAL_InvalidD) goto bad;
- j++;
- }
- /* it's ok. Move on to the next path. */
+ for (tno = 0, cloff = 0; tno < N_LINE_TREES; tno++, cloff += 8) {
+ UShort descr = cl->descrs[tno];
+ UInt* tree = &cl->svals[cloff];
+ if (!is_sane_Descr_and_Tree(descr, tree))
+ goto bad;
}
+ tl_assert(cloff == N_LINE_ARANGE);
return True;
bad:
pp_CacheLine(cl);
@@ -2926,133 +3074,139 @@
TC_(doneIterBag)( lk->heldBy );
}
+static UShort normalise_tree ( /*MOD*/UInt* tree ) {
+ Word i;
+ UShort descr;
+ /* pre: incoming tree[0..7] does not have any invalid shvals, in
+ particular no zeroes. */
+ for (i = 0; i < 8; i++)
+ tl_assert(tree[i] != 0);
+
+ descr = TREE_DESCR_8_7 | TREE_DESCR_8_6 | TREE_DESCR_8_5
+ | TREE_DESCR_8_4 | TREE_DESCR_8_3 | TREE_DESCR_8_2
+ | TREE_DESCR_8_1 | TREE_DESCR_8_0;
+ /* build 16-bit layer */
+ if (tree[1] == tree[0]) {
+ tree[1] = 0/*INVALID*/;
+ descr &= ~(TREE_DESCR_8_1 | TREE_DESCR_8_0);
+ descr |= TREE_DESCR_16_0;
+ }
+ if (tree[3] == tree[2]) {
+ tree[3] = 0/*INVALID*/;
+ descr &= ~(TREE_DESCR_8_3 | TREE_DESCR_8_2);
+ descr |= TREE_DESCR_16_1;
+ }
+ if (tree[5] == tree[4]) {
+ tree[5] = 0/*INVALID*/;
+ descr &= ~(TREE_DESCR_8_5 | TREE_DESCR_8_4);
+ descr |= TREE_DESCR_16_2;
+ }
+ if (tree[7] == tree[6]) {
+ tree[7] = 0/*INVALID*/;
+ descr &= ~(TREE_DESCR_8_7 | TREE_DESCR_8_6);
+ descr |= TREE_DESCR_16_3;
+ }
+ /* build 32-bit layer */
+ if (tree[2] == tree[0]
+ && (descr & TREE_DESCR_16_1) && (descr & TREE_DESCR_16_0)) {
+ tree[2] = 0; /* [3,1] must already be 0 */
+ descr &= ~(TREE_DESCR_16_1 | TREE_DESCR_16_0);
+ descr |= TREE_DESCR_32_0;
+ }
+ if (tree[6] == tree[4]
+ && (descr & TREE_DESCR_16_3) && (descr & TREE_DESCR_16_2)) {
+ tree[6] = 0; /* [7,5] must already be 0 */
+ descr &= ~(TREE_DESCR_16_3 | TREE_DESCR_16_2);
+ descr |= TREE_DESCR_32_1;
+ }
+ /* build 64-bit layer */
+ if (tree[4] == tree[0]
+ && (descr & TREE_DESCR_32_1) && (descr & TREE_DESCR_32_0)) {
+ tree[4] = 0; /* [7,6,5,3,2,1] must already be 0 */
+ descr &= ~(TREE_DESCR_32_1 | TREE_DESCR_32_0);
+ descr |= TREE_DESCR_64;
+ }
+ return descr;
+}
+
/* This takes a cacheline where all the data is at the leaves
(w8[..]) and builds a correctly normalised tree. */
static void cacheline_normalise ( /*MOD*/CacheLine* cl )
{
- Word i;
- UInt svL, svR;
-
- /* build w16 layer from w8 layer. We only expect to see valid
- SHVALs in the w8 layer. */
- for (i = 0; i < N_LINE_W16s; i++) {
- svL = cl->w8[LEFTCHILD(i)];
- svR = cl->w8[RIGHTCHILD(i)];
- tl_assert(is_SHVAL_valid(svL));
- tl_assert(is_SHVAL_valid(svR));
- if (svL == svR) {
- cl->w16[i] = svL;
- cl->w8[LEFTCHILD(i)] = SHVAL_InvalidU;
- cl->w8[RIGHTCHILD(i)] = SHVAL_InvalidU;
- } else {
- cl->w16[i] = SHVAL_InvalidD;
- }
+ Word tno, cloff;
+ for (tno = 0, cloff = 0; tno < N_LINE_TREES; tno++, cloff += 8) {
+ UInt* tree = &cl->svals[cloff];
+ cl->descrs[tno] = normalise_tree( tree );
}
+ tl_assert(cloff == N_LINE_ARANGE);
+ /* EXPENSIVE: tl_assert(is_sane_CacheLine(cl)); */
+ stats__cline_normalises++;
+}
- /* build w32 layer from w16 layer. */
- for (i = 0; i < N_LINE_W32s; i++) {
- svL = cl->w16[LEFTCHILD(i)];
- svR = cl->w16[RIGHTCHILD(i)];
- if (svL == svR && is_SHVAL_valid(svL) && is_SHVAL_valid(svR)) {
- cl->w32[i] = svL;
- cl->w16[LEFTCHILD(i)] = SHVAL_InvalidU;
- cl->w16[RIGHTCHILD(i)] = SHVAL_InvalidU;
- } else {
- cl->w32[i] = SHVAL_InvalidD;
- }
- }
- /* build w64 layer from w32 layer. */
- for (i = 0; i < N_LINE_W64s; i++) {
- svL = cl->w32[LEFTCHILD(i)];
- svR = cl->w32[RIGHTCHILD(i)];
- if (svL == svR && is_SHVAL_valid(svL) && is_SHVAL_valid(svR)) {
- cl->w64[i] = svL;
- cl->w32[LEFTCHILD(i)] = SHVAL_InvalidU;
- cl->w32[RIGHTCHILD(i)] = SHVAL_InvalidU;
- } else {
- cl->w64[i] = SHVAL_InvalidD;
- }
- }
+static
+UInt* sequentialise_tree ( /*MOD*/UInt* dst, /*OUT*/Bool* anyShared,
+ UShort descr, UInt* tree ) {
+ UInt* dst0 = dst;
+ *anyShared = False;
- /* EXPENSIVE: tl_assert(is_sane_CacheLine(cl)); */
- stats__cline_normalises++;
+# define PUT(_n,_v) \
+ do { Word i; \
+ if (is_SHVAL_Sh(_v)) \
+ *anyShared = True; \
+ for (i = 0; i < (_n); i++) \
+ *dst++ = (_v); \
+ } while (0)
+
+ /* byte 0 */
+ if (descr & TREE_DESCR_64) PUT(8, tree[0]); else
+ if (descr & TREE_DESCR_32_0) PUT(4, tree[0]); else
+ if (descr & TREE_DESCR_16_0) PUT(2, tree[0]); else
+ if (descr & TREE_DESCR_8_0) PUT(1, tree[0]);
+ /* byte 1 */
+ if (descr & TREE_DESCR_8_1) PUT(1, tree[1]);
+ /* byte 2 */
+ if (descr & TREE_DESCR_16_1) PUT(2, tree[2]); else
+ if (descr & TREE_DESCR_8_2) PUT(1, tree[2]);
+ /* byte 3 */
+ if (descr & TREE_DESCR_8_3) PUT(1, tree[3]);
+ /* byte 4 */
+ if (descr & TREE_DESCR_32_1) PUT(4, tree[4]); else
+ if (descr & TREE_DESCR_16_2) PUT(2, tree[4]); else
+ if (descr & TREE_DESCR_8_4) PUT(1, tree[4]);
+ /* byte 5 */
+ if (descr & TREE_DESCR_8_5) PUT(1, tree[5]);
+ /* byte 6 */
+ if (descr & TREE_DESCR_16_3) PUT(2, tree[6]); else
+ if (descr & TREE_DESCR_8_6) PUT(1, tree[6]);
+ /* byte 7 */
+ if (descr & TREE_DESCR_8_7) PUT(1, tree[7]);
+
+# undef PUT
+
+ tl_assert( (((Char*)dst) - ((Char*)dst0)) == 8 * sizeof(UInt) );
+ return dst;
}
-
/* Write the cacheline 'wix' to backing store. Where it ends up
is determined by its tag field. */
static
Bool sequentialise_into ( /*OUT*/UInt* dst, Word nDst, CacheLine* src )
{
- Word i;
+ Word tno, cloff;
Bool anyShared = False;
UInt* dst0 = dst;
-# define PUT(_n, _v) \
- do { Word _k; \
- for (_k = 0; _k < (_n); _k++) { \
- *dst++ = (_v); \
- } \
- if (is_SHVAL_Sh(_v)) \
- anyShared = True; \
- } while (0)
-
- for (i = 0; i < N_LINE_W64s; i++) {
- /* walk tree rooted at src->w64[i] */
- if (src->w64[i] != SHVAL_InvalidD) {
- PUT(8, src->w64[i]);
- } else {
- Word iL = LEFTCHILD(i);
- Word iR = RIGHTCHILD(i);
- /* Walk tree rooted at src->w32[iL] */
- if (src->w32[iL] != SHVAL_InvalidD) {
- PUT(4, src->w32[iL]);
- } else {
- Word iLL = LEFTCHILD(iL);
- Word iLR = RIGHTCHILD(iL);
- /* Walk tree rooted at src->w16[iLL] */
- if (src->w16[iLL] != SHVAL_InvalidD) {
- PUT(2, src->w16[iLL]);
- } else {
- PUT(1, src->w8[LEFTCHILD(iLL)]);
- PUT(1, src->w8[RIGHTCHILD(iLL)]);
- }
- /* Walk tree rooted at src->w16[iLR] */
- if (src->w16[iLR] != SHVAL_InvalidD) {
- PUT(2, src->w16[iLR]);
- } else {
- PUT(1, src->w8[LEFTCHILD(iLR)]);
- PUT(1, src->w8[RIGHTCHILD(iLR)]);
- }
- }
- /* Walk tree rooted at src->w32[iR] */
- if (src->w32[iR] != SHVAL_InvalidD) {
- PUT(4, src->w32[iR]);
- } else {
- Word iRL = LEFTCHILD(iR);
- Word iRR = RIGHTCHILD(iR);
- /* Walk tree rooted at src->w16[iRL] */
- if (src->w16[iRL] != SHVAL_InvalidD) {
- PUT(2, src->w16[iRL]);
- } else {
- PUT(1, src->w8[LEFTCHILD(iRL)]);
- PUT(1, src->w8[RIGHTCHILD(iRL)]);
- }
- /* Walk tree rooted at src->w16[iRR] */
- if (src->w16[iRR] != SHVAL_InvalidD) {
- PUT(2, src->w16[iRR]);
- } else {
- PUT(1, src->w8[LEFTCHILD(iRR)]);
- PUT(1, src->w8[RIGHTCHILD(iRR)]);
- }
- }
- }
+ for (tno = 0, cloff = 0; tno < N_LINE_TREES; tno++, cloff += 8) {
+ UShort descr = src->descrs[tno];
+ UInt* tree = &src->svals[cloff];
+ Bool bTmp = False;
+ dst = sequentialise_tree ( dst, &bTmp, descr, tree );
+ anyShared |= bTmp;
}
+ tl_assert(cloff == N_LINE_ARANGE);
-# undef PUT
-
- /* Assert we wrote N_LINE_W8s shadow values. */
+ /* Assert we wrote N_LINE_ARANGE shadow values. */
tl_assert( ((HChar*)dst) - ((HChar*)dst0)
== nDst * sizeof(UInt) );
@@ -3070,7 +3224,7 @@
CacheLineZ* lineZ;
CacheLineF* lineF;
Word zix, fix;
- UInt shvals[N_LINE_W8s];
+ UInt shvals[N_LINE_ARANGE];
UInt sv;
if (0)
@@ -3098,12 +3252,12 @@
/* Generate the data to be stored */
/* EXPENSIVE: tl_assert(is_sane_CacheLine( cl )); */
- anyShared = sequentialise_into( shvals, N_LINE_W8s, cl );
+ anyShared = sequentialise_into( shvals, N_LINE_ARANGE, cl );
lineZ->dict[0] = lineZ->dict[1]
= lineZ->dict[2] = lineZ->dict[3] = 0;
- for (i = 0; i < N_LINE_W8s; i++) {
+ for (i = 0; i < N_LINE_ARANGE; i++) {
sv = shvals[i];
for (j = 0; j < 4; j++) {
@@ -3123,9 +3277,9 @@
}
- tl_assert(i >= 0 && i <= N_LINE_W8s);
+ tl_assert(i >= 0 && i <= N_LINE_ARANGE);
- if (i < N_LINE_W8s) {
+ if (i < N_LINE_ARANGE) {
/* cannot use the compressed rep. Use f rep instead. */
alloc_F_for_writing( sm, &fix );
tl_assert(sm->linesF);
@@ -3136,7 +3290,7 @@
lineZ->dict[0] = lineZ->dict[2] = lineZ->dict[3] = 0;
lineZ->dict[1] = (UInt)fix;
lineF->inUse = True;
- for (i = 0; i < N_LINE_W8s; i++) {
+ for (i = 0; i < N_LINE_ARANGE; i++) {
sv = shvals[i];
tl_assert(is_SHVAL_valid(sv));
lineF->w32s[i] = sv;
@@ -3181,21 +3335,21 @@
tl_assert( (lineZ && !lineF) || (!lineZ && lineF) );
/* expand the data into the bottom layer of the tree, then get
- cacheline_normalise to build the InvalidU/InvalidD structure. */
+ cacheline_normalise to build the descriptor array. */
if (lineF) {
tl_assert(lineF->inUse);
- for (i = 0; i < N_LINE_W8s; i++) {
- cl->w8[i] = lineF->w32s[i];
+ for (i = 0; i < N_LINE_ARANGE; i++) {
+ cl->svals[i] = lineF->w32s[i];
}
stats__cache_F_fetches++;
} else {
- for (i = 0; i < N_LINE_W8s; i++) {
+ for (i = 0; i < N_LINE_ARANGE; i++) {
UInt sv;
UWord ix = read_twobit_array( lineZ->ix2s, i );
tl_assert(ix >= 0 && ix <= 3);
sv = lineZ->dict[ix];
tl_assert(sv != 0);
- cl->w8[i] = sv;
+ cl->svals[i] = sv;
}
stats__cache_Z_fetches++;
}
@@ -3240,8 +3394,14 @@
return 0 == (a & 7);
}
static inline UWord get_cacheline_offset ( Addr a ) {
- return (UWord)(a & (N_LINE_W8s - 1));
+ return (UWord)(a & (N_LINE_ARANGE - 1));
}
+static inline UWord get_treeno ( Addr a ) {
+ return get_cacheline_offset(a) >> 3;
+}
+static inline UWord get_tree_offset ( Addr a ) {
+ return a & 7;
+}
static __attribute__((noinline))
CacheLine* get_cacheline_MISS ( Addr a ); /* fwds */
@@ -3249,7 +3409,7 @@
{
/* tag is 'a' with the in-line offset masked out,
eg a[31]..a[4] 0000 */
- Addr tag = a & ~(N_LINE_W8s - 1);
+ Addr tag = a & ~(N_LINE_ARANGE - 1);
UWord wix = (a >> N_LINE_BITS) & (N_WAY_NENT - 1);
stats__cache_totrefs++;
if (LIKELY(tag == cache_shmem.tags0[wix])) {
@@ -3267,7 +3427,7 @@
CacheLine* cl;
Addr* tag_old_p;
- Addr tag = a & ~(N_LINE_W8s - 1);
+ Addr tag = a & ~(N_LINE_ARANGE - 1);
UWord wix = (a >> N_LINE_BITS) & (N_WAY_NENT - 1);
tl_assert(tag != cache_shmem.tags0[wix]);
@@ -3292,343 +3452,599 @@
/////////////////////////////vvvvvvvvvvvvvvvvvvvvvvvvvvvvv
-static void pulldown_to_w32 ( /*MOD*/CacheLine* cl, Word ix32 )
-{
- Word ix64 = PARENT(ix32);
- tl_assert(cl->w32[ix32] == SHVAL_InvalidU);
- tl_assert(!is_SHVAL_Invalid(cl->w64[ix64]));
- tl_assert(cl->w32[LEFTCHILD(ix64)] == SHVAL_InvalidU);
- tl_assert(cl->w32[RIGHTCHILD(ix64)] == SHVAL_InvalidU);
- cl->w32[LEFTCHILD(ix64)] = cl->w64[ix64];
- cl->w32[RIGHTCHILD(ix64)] = cl->w64[ix64];
- cl->w64[ix64] = SHVAL_InvalidD;
- stats__cline_8to4pulldown++;
+static UShort pulldown_to_32 ( /*MOD*/UInt* tree, UWord toff, UShort descr ) {
+ stats__cline_64to32pulldown++;
+ switch (toff) {
+ case 0: case 4:
+ tl_assert(descr & TREE_DESCR_64);
+ tree[4] = tree[0];
+ descr &= ~TREE_DESCR_64;
+ descr |= (TREE_DESCR_32_1 | TREE_DESCR_32_0);
+ break;
+ default:
+ tl_assert(0);
+ }
+ return descr;
}
-static void pulldown_to_w16 ( /*MOD*/CacheLine* cl, Word ix16 )
-{
- Word ix32 = PARENT(ix16);
- tl_assert(cl->w16[ix16] == SHVAL_InvalidU);
- if (is_SHVAL_Invalid(cl->w32[ix32]))
- pulldown_to_w32( cl, ix32 );
- tl_assert(!is_SHVAL_Invalid(cl->w32[ix32]));
- tl_assert(cl->w16[LEFTCHILD(ix32)] == SHVAL_InvalidU);
- tl_assert(cl->w16[RIGHTCHILD(ix32)] == SHVAL_InvalidU);
- cl->w16[LEFTCHILD(ix32)] = cl->w32[ix32];
- cl->w16[RIGHTCHILD(ix32)] = cl->w32[ix32];
- cl->w32[ix32] = SHVAL_InvalidD;
- stats__cline_4to2pulldown++;
+static UShort pulldown_to_16 ( /*MOD*/UInt* tree, UWord toff, UShort descr ) {
+ stats__cline_32to16pulldown++;
+ switch (toff) {
+ case 0: case 2:
+ if (!(descr & TREE_DESCR_32_0)) {
+ descr = pulldown_to_32(tree, 0, descr);
+ }
+ tl_assert(descr & TREE_DESCR_32_0);
+ tree[2] = tree[0];
+ descr &= ~TREE_DESCR_32_0;
+ descr |= (TREE_DESCR_16_1 | TREE_DESCR_16_0);
+ break;
+ case 4: case 6:
+ if (!(descr & TREE_DESCR_32_1)) {
+ descr = pulldown_to_32(tree, 4, descr);
+ }
+ tl_assert(descr & TREE_DESCR_32_1);
+ tree[6] = tree[4];
+ descr &= ~TREE_DESCR_32_1;
+ descr |= (TREE_DESCR_16_3 | TREE_DESCR_16_2);
+ break;
+ default:
+ tl_assert(0);
+ }
+ return descr;
}
-static void pulldown_to_w8 ( /*MOD*/CacheLine* cl, Word ix8 )
-{
- Word ix16 = PARENT(ix8);
- tl_assert(cl->w8[ix8] == SHVAL_InvalidU);
- if (is_SHVAL_Invalid(cl->w16[ix16]))
- pulldown_to_w16( cl, ix16 );
- tl_assert(!is_SHVAL_Invalid(cl->w16[ix16]));
- tl_assert(cl->w8[LEFTCHILD(ix16)] == SHVAL_InvalidU);
- tl_assert(cl->w8[RIGHTCHILD(ix16)] == SHVAL_InvalidU);
- cl->w8[LEFTCHILD(ix16)] = cl->w16[ix16];
- cl->w8[RIGHTCHILD(ix16)] = cl->w16[ix16];
- cl->w16[ix16] = SHVAL_InvalidD;
- stats__cline_2to1pulldown++;
+static UShort pulldown_to_8 ( /*MOD*/UInt* tree, UWord toff, UShort descr ) {
+ stats__cline_16to8pulldown++;
+ switch (toff) {
+ case 0: case 1:
+ if (!(descr & TREE_DESCR_16_0)) {
+ descr = pulldown_to_16(tree, 0, descr);
+ }
+ tl_assert(descr & TREE_DESCR_16_0);
+ tree[1] = tree[0];
+ descr &= ~TREE_DESCR_16_0;
+ descr |= (TREE_DESCR_8_1 | TREE_DESCR_8_0);
+ break;
+ case 2: case 3:
+ if (!(descr & TREE_DESCR_16_1)) {
+ descr = pulldown_to_16(tree, 2, descr);
+ }
+ tl_assert(descr & TREE_DESCR_16_1);
+ tree[3] = tree[2];
+ descr &= ~TREE_DESCR_16_1;
+ descr |= (TREE_DESCR_8_3 | TREE_DESCR_8_2);
+ break;
+ case 4: case 5:
+ if (!(descr & TREE_DESCR_16_2)) {
+ descr = pulldown_to_16(tree, 4, descr);
+ }
+ tl_assert(descr & TREE_DESCR_16_2);
+ tree[5] = tree[4];
+ descr &= ~TREE_DESCR_16_2;
+ descr |= (TREE_DESCR_8_5 | TREE_DESCR_8_4);
+ break;
+ case 6: case 7:
+ if (!(descr & TREE_DESCR_16_3)) {
+ descr = pulldown_to_16(tree, 6, descr);
+ }
+ tl_assert(descr & TREE_DESCR_16_3);
+ tree[7] = tree[6];
+ descr &= ~TREE_DESCR_16_3;
+ descr |= (TREE_DESCR_8_7 | TREE_DESCR_8_6);
+ break;
+ default:
+ tl_assert(0);
+ }
+ return descr;
}
+
+static UShort pullup_descr_to_16 ( UShort descr, UWord toff ) {
+ UShort mask;
+ switch (toff) {
+ case 0:
+ mask = TREE_DESCR_8_1 | TREE_DESCR_8_0;
+ tl_assert( (descr & mask) == mask );
+ descr &= ~mask;
+ descr |= TREE_DESCR_16_0;
+ break;
+ case 2:
+ mask = TREE_DESCR_8_3 | TREE_DESCR_8_2;
+ tl_assert( (descr & mask) == mask );
+ descr &= ~mask;
+ descr |= TREE_DESCR_16_1;
+ break;
+ case 4:
+ mask = TREE_DESCR_8_5 | TREE_DESCR_8_4;
+ tl_assert( (descr & mask) == mask );
+ descr &= ~mask;
+ descr |= TREE_DESCR_16_2;
+ break;
+ case 6:
+ mask = TREE_DESCR_8_7 | TREE_DESCR_8_6;
+ tl_assert( (descr & mask) == mask );
+ descr &= ~mask;
+ descr |= TREE_DESCR_16_3;
+ break;
+ default:
+ tl_assert(0);
+ }
+ return descr;
+}
+
+static UShort pullup_descr_to_32 ( UShort descr, UWord toff ) {
+ UShort mask;
+ switch (toff) {
+ case 0:
+ if (!(descr & TREE_DESCR_16_0))
+ descr = pullup_descr_to_16(descr, 0);
+ if (!(descr & TREE_DESCR_16_1))
+ descr = pullup_descr_to_16(descr, 2);
+ mask = TREE_DESCR_16_1 | TREE_DESCR_16_0;
+ tl_assert( (descr & mask) == mask );
+ descr &= ~mask;
+ descr |= TREE_DESCR_32_0;
+ break;
+ case 4:
+ if (!(descr & TREE_DESCR_16_2))
+ descr = pullup_descr_to_16(descr, 4);
+ if (!(descr & TREE_DESCR_16_3))
+ descr = pullup_descr_to_16(descr, 6);
+ mask = TREE_DESCR_16_3 | TREE_DESCR_16_2;
+ tl_assert( (descr & mask) == mask );
+ descr &= ~mask;
+ descr |= TREE_DESCR_32_1;
+ break;
+ default:
+ tl_assert(0);
+ }
+ return descr;
+}
+
+static Bool valid_value_is_above_me_32 ( UShort descr, UWord toff ) {
+ switch (toff) {
+ case 0: case 4:
+ return 0 != (descr & TREE_DESCR_64);
+ default:
+ tl_assert(0);
+ }
+}
+
+static Bool valid_value_is_below_me_16 ( UShort descr, UWord toff ) {
+ switch (toff) {
+ case 0:
+ return 0 != (descr & (TREE_DESCR_8_1 | TREE_DESCR_8_0));
+ case 2:
+ return 0 != (descr & (TREE_DESCR_8_3 | TREE_DESCR_8_2));
+ case 4:
+ return 0 != (descr & (TREE_DESCR_8_5 | TREE_DESCR_8_4));
+ case 6:
+ return 0 != (descr & (TREE_DESCR_8_7 | TREE_DESCR_8_6));
+ default:
+ tl_assert(0);
+ }
+}
+
static void shadow_mem_read8 ( Thread* thr_acc, Addr a, UInt uuOpaque ) {
CacheLine* cl;
- UWord ix8;
+ UWord cloff, tno, toff;
UInt svOld, svNew;
- stats__cline_read1s++;
+ UShort descr;
+ stats__cline_read8s++;
cl = get_cacheline(a);
- ix8 = get_cacheline_offset(a) >> 0;
- svOld = cl->w8[ix8];
- if (UNLIKELY(is_SHVAL_Invalid(svOld))) {
- tl_assert(svOld == SHVAL_InvalidU);
- pulldown_to_w8( cl, ix8 );
+ cloff = get_cacheline_offset(a);
+ tno = get_treeno(a);
+ toff = get_tree_offset(a); /* == 0 .. 7 */
+ descr = cl->descrs[tno];
+ if (UNLIKELY( !(descr & (TREE_DESCR_8_0 << toff)) )) {
+ UInt* tree = &cl->svals[tno << 3];
+ cl->descrs[tno] = pulldown_to_8(tree, toff, descr);
/* EXPENSIVE: tl_assert(is_sane_CacheLine(cl)); */
- svOld = cl->w8[ix8];
}
+ svOld = cl->svals[cloff];
svNew = msm__handle_read( thr_acc, a, svOld, 1 );
- cl->w8[ix8] = svNew;
+ cl->svals[cloff] = svNew;
}
static void shadow_mem_read16 ( Thread* thr_acc, Addr a, UInt uuOpaque ) {
CacheLine* cl;
- UWord ix16;
+ UWord cloff, tno, toff;
UInt svOld, svNew;
- stats__cline_read2s++;
+ UShort descr;
+ stats__cline_read16s++;
if (UNLIKELY(!aligned16(a))) goto slowcase;
cl = get_cacheline(a);
- ix16 = get_cacheline_offset(a) >> 1;
- svOld = cl->w16[ix16];
- if (UNLIKELY(is_SHVAL_Invalid(svOld))) {
- if (svOld == SHVAL_InvalidD) goto slowcase;
- pulldown_to_w16( cl, ix16 );
+ cloff = get_cacheline_offset(a);
+ tno = get_treeno(a);
+ toff = get_tree_offset(a); /* == 0, 2, 4 or 6 */
+ descr = cl->descrs[tno];
+ if (UNLIKELY( !(descr & (TREE_DESCR_16_0 << toff)) )) {
+ if (valid_value_is_below_me_16(descr, toff)) {
+ goto slowcase;
+ } else {
+ UInt* tree = &cl->svals[tno << 3];
+ cl->descrs[tno] = pulldown_to_16(tree, toff, descr);
+ }
/* EXPENSIVE: tl_assert(is_sane_CacheLine(cl)); */
- svOld = cl->w16[ix16];
}
+ svOld = cl->svals[cloff];
svNew = msm__handle_read( thr_acc, a, svOld, 2 );
- cl->w16[ix16] = svNew;
+ cl->svals[cloff] = svNew;
return;
slowcase: /* misaligned, or must go further down the tree */
- stats__cline_2to1splits++;
+ stats__cline_16to8splits++;
shadow_mem_read8( thr_acc, a + 0, 0/*unused*/ );
shadow_mem_read8( thr_acc, a + 1, 0/*unused*/ );
}
-inline
-static void shadow_mem_read32 ( Thread* thr_acc, Addr a, UInt uuOpaque ) {
+
+__attribute__((noinline))
+static void shadow_mem_read32_SLOW ( Thread* thr_acc, Addr a, UInt uuOpaque ) {
CacheLine* cl;
- UWord ix32;
+ UWord cloff, tno, toff;
UInt svOld, svNew;
- stats__cline_read4s++;
+ UShort descr;
if (UNLIKELY(!aligned32(a))) goto slowcase;
cl = get_cacheline(a);
- ix32 = get_cacheline_offset(a) >> 2;
- svOld = cl->w32[ix32];
- if (UNLIKELY(is_SHVAL_Invalid(svOld))) {
- if (svOld == SHVAL_InvalidD) goto slowcase;
- pulldown_to_w32( cl, ix32 );
+ cloff = get_cacheline_offset(a);
+ tno = get_treeno(a);
+ toff = get_tree_offset(a); /* == 0 or 4 */
+ descr = cl->descrs[tno];
+ if (UNLIKELY( !(descr & (TREE_DESCR_32_0 << toff)) )) {
+ if (valid_value_is_above_me_32(descr, toff)) {
+ UInt* tree = &cl->svals[tno << 3];
+ cl->descrs[tno] = pulldown_to_32(tree, toff, descr);
+ } else {
+ goto slowcase;
+ }
/* EXPENSIVE: tl_assert(is_sane_CacheLine(cl)); */
- svOld = cl->w32[ix32];
}
+ svOld = cl->svals[cloff];
svNew = msm__handle_read( thr_acc, a, svOld, 4 );
- cl->w32[ix32] = svNew;
+ cl->svals[cloff] = svNew;
return;
slowcase: /* misaligned, or must go further down the tree */
- stats__cline_4to2splits++;
+ stats__cline_32to16splits++;
shadow_mem_read16( thr_acc, a + 0, 0/*unused*/ );
shadow_mem_read16( thr_acc, a + 2, 0/*unused*/ );
}
inline
+static void shadow_mem_read32 ( Thread* thr_acc, Addr a, UInt uuOpaque ) {
+ CacheLine* cl;
+ UWord cloff, tno, toff;
+ UShort descr;
+ stats__cline_read32s++;
+ if (UNLIKELY(!aligned32(a))) goto slowcase;
+ cl = get_cacheline(a);
+ cloff = get_cacheline_offset(a);
+ tno = get_treeno(a);
+ toff = get_tree_offset(a); /* == 0 or 4 */
+ descr = cl->descrs[tno];
+ if (UNLIKELY( !(descr & (TREE_DESCR_32_0 << toff)) )) goto slowcase;
+ { UInt* p = &cl->svals[cloff];
+ *p = msm__handle_read( thr_acc, a, *p, 4 );
+ }
+ return;
+ slowcase: /* misaligned, or not at this level in the tree */
+ shadow_mem_read32_SLOW( thr_acc, a, uuOpaque );
+}
+
static void shadow_mem_read64 ( Thread* thr_acc, Addr a, UInt uuOpaque ) {
CacheLine* cl;
- UWord ix64;
+ UWord cloff, tno, toff;
UInt svOld, svNew;
- stats__cline_read8s++;
+ UShort descr;
+ stats__cline_read64s++;
if (UNLIKELY(!aligned64(a))) goto slowcase;
cl = get_cacheline(a);
- ix64 = get_cacheline_offset(a) >> 3;
- svOld = cl->w64[ix64];
- if (UNLIKELY(is_SHVAL_Invalid(svOld))) {
- tl_assert(svOld == SHVAL_InvalidD);
+ cloff = get_cacheline_offset(a);
+ tno = get_treeno(a);
+ toff = get_tree_offset(a); /* == 0, unused */
+ descr = cl->descrs[tno];
+ if (UNLIKELY( !(descr & TREE_DESCR_64) )) {
goto slowcase;
}
+ svOld = cl->svals[cloff];
svNew = msm__handle_read( thr_acc, a, svOld, 8 );
- cl->w64[ix64] = svNew;
+ cl->svals[cloff] = svNew;
return;
slowcase: /* misaligned, or must go further down the tree */
- stats__cline_8to4splits++;
+ stats__cline_64to32splits++;
shadow_mem_read32( thr_acc, a + 0, 0/*unused*/ );
shadow_mem_read32( thr_acc, a + 4, 0/*unused*/ );
}
static void shadow_mem_write8 ( Thread* thr_acc, Addr a, UInt uuOpaque ) {
CacheLine* cl;
- UWord ix8;
+ UWord cloff, tno, toff;
UInt svOld, svNew;
- stats__cline_write1s++;
+ UShort descr;
+ stats__cline_write8s++;
cl = get_cacheline(a);
- ix8 = get_cacheline_offset(a) >> 0;
- svOld = cl->w8[ix8];
- if (UNLIKELY(is_SHVAL_Invalid(svOld))) {
- tl_assert(svOld == SHVAL_InvalidU);
- pulldown_to_w8( cl, ix8 );
+ cloff = get_cacheline_offset(a);
+ tno = get_treeno(a);
+ toff = get_tree_offset(a); /* == 0 .. 7 */
+ descr = cl->descrs[tno];
+ if (UNLIKELY( !(descr & (TREE_DESCR_8_0 << toff)) )) {
+ UInt* tree = &cl->svals[tno << 3];
+ cl->descrs[tno] = pulldown_to_8(tree, toff, descr);
/* EXPENSIVE: tl_assert(is_sane_CacheLine(cl)); */
- svOld = cl->w8[ix8];
}
+ svOld = cl->svals[cloff];
svNew = msm__handle_write( thr_acc, a, svOld, 1 );
- cl->w8[ix8] = svNew;
+ cl->svals[cloff] = svNew;
}
static void shadow_mem_write16 ( Thread* thr_acc, Addr a, UInt uuOpaque ) {
CacheLine* cl;
- UWord ix16;
+ UWord cloff, tno, toff;
UInt svOld, svNew;
- stats__cline_write2s++;
+ UShort descr;
+ stats__cline_write16s++;
if (UNLIKELY(!aligned16(a))) goto slowcase;
cl = get_cacheline(a);
- ix16 = get_cacheline_offset(a) >> 1;
- svOld = cl->w16[ix16];
- if (UNLIKELY(is_SHVAL_Invalid(svOld))) {
- if (svOld == SHVAL_InvalidD) goto slowcase;
- pulldown_to_w16( cl, ix16 );
+ cloff = get_cacheline_offset(a);
+ tno = get_treeno(a);
+ toff = get_tree_offset(a); /* == 0, 2, 4 or 6 */
+ descr = cl->descrs[tno];
+ if (UNLIKELY( !(descr & (TREE_DESCR_16_0 << toff)) )) {
+ if (valid_value_is_below_me_16(descr, toff)) {
+ goto slowcase;
+ } else {
+ UInt* tree = &cl->svals[tno << 3];
+ cl->descrs[tno] = pulldown_to_16(tree, toff, descr);
+ }
/* EXPENSIVE: tl_assert(is_sane_CacheLine(cl)); */
- svOld = cl->w16[ix16];
}
+ svOld = cl->svals[cloff];
svNew = msm__handle_write( thr_acc, a, svOld, 2 );
- cl->w16[ix16] = svNew;
+ cl->svals[cloff] = svNew;
return;
slowcase: /* misaligned, or must go further down the tree */
- stats__cline_2to1splits++;
+ stats__cline_16to8splits++;
shadow_mem_write8( thr_acc, a + 0, 0/*unused*/ );
shadow_mem_write8( thr_acc, a + 1, 0/*unused*/ );
}
+
+#if 0
static void shadow_mem_write32 ( Thread* thr_acc, Addr a, UInt uuOpaque ) {
CacheLine* cl;
- UWord ix32;
+ UWord cloff, tno, toff;
UInt svOld, svNew;
- stats__cline_write4s++;
+ UShort descr;
+ stats__cline_write32s++;
if (UNLIKELY(!aligned32(a))) goto slowcase;
cl = get_cacheline(a);
- ix32 = get_cacheline_offset(a) >> 2;
- svOld = cl->w32[ix32];
- if (UNLIKELY(is_SHVAL_Invalid(svOld))) {
- if (svOld == SHVAL_InvalidD) goto slowcase;
- pulldown_to_w32( cl, ix32 );
+ cloff = get_cacheline_offset(a);
+ tno = get_treeno(a);
+ toff = get_tree_offset(a); /* == 0 or 4 */
+ descr = cl->descrs[tno];
+ if (UNLIKELY( !(descr & (TREE_DESCR_32_0 << toff)) )) {
+ if (valid_value_is_above_me_32(descr, toff)) {
+ UInt* tree = &cl->svals[tno << 3];
+ cl->descrs[tno] = pulldown_to_32(tree, toff, descr);
+ } else {
+ goto slowcase;
+ }
/* EXPENSIVE: tl_assert(is_sane_CacheLine(cl)); */
- svOld = cl->w32[ix32];
}
+ svOld = cl->svals[cloff];
svNew = msm__handle_write( thr_acc, a, svOld, 4 );
- cl->w32[ix32] = svNew;
+ cl->svals[cloff] = svNew;
return;
slowcase: /* misaligned, or must go further down the tree */
- stats__cline_4to2splits++;
+ stats__cline_32to16splits++;
shadow_mem_write16( thr_acc, a + 0, 0/*unused*/ );
shadow_mem_write16( thr_acc, a + 2, 0/*unused*/ );
}
+#else
+__attribute__((noinline))
+static void shadow_mem_write32_SLOW ( Thread* thr_acc, Addr a, UInt uuOpaque ) {
+ CacheLine* cl;
+ UWord cloff, tno, toff;
+ UInt svOld, svNew;
+ UShort descr;
+ if (UNLIKELY(!aligned32(a))) goto slowcase;
+ cl = get_cacheline(a);
+ cloff = get_cacheline_offset(a);
+ tno = get_treeno(a);
+ toff = get_tree_offset(a); /* == 0 or 4 */
+ descr = cl->descrs[tno];
+ if (UNLIKELY( !(descr & (TREE_DESCR_32_0 << toff)) )) {
+ if (valid_value_is_above_me_32(descr, toff)) {
+ UInt* tree = &cl->svals[tno << 3];
+ cl->descrs[tno] = pulldown_to_32(tree, toff, descr);
+ } else {
+ goto slowcase;
+ }
+ /* EXPENSIVE: tl_assert(is_sane_CacheLine(cl)); */
+ }
+ svOld = cl->svals[cloff];
+ svNew = msm__handle_write( thr_acc, a, svOld, 4 );
+ cl->svals[cloff] = svNew;
+ return;
+ slowcase: /* misaligned, or must go further down the tree */
+ stats__cline_32to16splits++;
+ shadow_mem_write16( thr_acc, a + 0, 0/*unused*/ );
+ shadow_mem_write16( thr_acc, a + 2, 0/*unused*/ );
+}
+inline
+static void shadow_mem_write32 ( Thread* thr_acc, Addr a, UInt uuOpaque ) {
+ CacheLine* cl;
+ UWord cloff, tno, toff;
+ UShort descr;
+ stats__cline_write32s++;
+ if (UNLIKELY(!aligned32(a))) goto slowcase;
+ cl = get_cacheline(a);
+ cloff = get_cacheline_offset(a);
+ tno = get_treeno(a);
+ toff = get_tree_offset(a); /* == 0 or 4 */
+ descr = cl->descrs[tno];
+ if (UNLIKELY( !(descr & (TREE_DESCR_32_0 << toff)) )) goto slowcase;
+ { UInt* p = &cl->svals[cloff];
+ *p = msm__handle_write( thr_acc, a, *p, 4 );
+ }
+ return;
+ slowcase: /* misaligned, or must go further down the tree */
+ shadow_mem_write32_SLOW( thr_acc, a, uuOpaque );
+}
+#endif
+
static void shadow_mem_write64 ( Thread* thr_acc, Addr a, UInt uuOpaque ) {
CacheLine* cl;
- UWord ix64;
+ UWord cloff, tno, toff;
UInt svOld, svNew;
- stats__cline_write8s++;
+ UShort descr;
+ stats__cline_write64s++;
if (UNLIKELY(!aligned64(a))) goto slowcase;
cl = get_cacheline(a);
- ix64 = get_cacheline_offset(a) >> 3;
- svOld = cl->w64[ix64];
- if (UNLIKELY(is_SHVAL_Invalid(svOld))) {
- tl_assert(svOld == SHVAL_InvalidD);
+ cloff = get_cacheline_offset(a);
+ tno = get_treeno(a);
+ toff = get_tree_offset(a); /* == 0, unused */
+ descr = cl->descrs[tno];
+ if (UNLIKELY( !(descr & TREE_DESCR_64) )) {
goto slowcase;
}
+ svOld = cl->svals[cloff];
svNew = msm__handle_write( thr_acc, a, svOld, 8 );
- cl->w64[ix64] = svNew;
+ cl->svals[cloff] = svNew;
return;
slowcase: /* misaligned, or must go further down the tree */
- stats__cline_8to4splits++;
+ stats__cline_64to32splits++;
shadow_mem_write32( thr_acc, a + 0, 0/*unused*/ );
shadow_mem_write32( thr_acc, a + 4, 0/*unused*/ );
}
static void shadow_mem_set8 ( Thread* uu_thr_acc, Addr a, UInt svNew ) {
CacheLine* cl;
- UWord ix8;
- UInt svOld;
- stats__cline_set1s++;
+ UWord cloff, tno, toff;
+ UShort descr;
+ stats__cline_set8s++;
cl = get_cacheline(a);
- ix8 = get_cacheline_offset(a) >> 0;
- svOld = cl->w8[ix8];
- if (UNLIKELY(is_SHVAL_Invalid(svOld))) {
- tl_assert(svOld == SHVAL_InvalidU);
- pulldown_to_w8( cl, ix8 );
+ cloff = get_cacheline_offset(a);
+ tno = get_treeno(a);
+ toff = get_tree_offset(a); /* == 0 .. 7 */
+ descr = cl->descrs[tno];
+ if (UNLIKELY( !(descr & (TREE_DESCR_8_0 << toff)) )) {
+ UInt* tree = &cl->svals[tno << 3];
+ cl->descrs[tno] = pulldown_to_8(tree, toff, descr);
/* EXPENSIVE: tl_assert(is_sane_CacheLine(cl)); */
- svOld = cl->w8[ix8];
- tl_assert(is_SHVAL_valid(svOld));
}
- cl->w8[ix8] = svNew;
+ cl->svals[cloff] = svNew;
}
static void shadow_mem_set16 ( Thread* uu_thr_acc, Addr a, UInt svNew ) {
CacheLine* cl;
- UWord ix16, ix8;
- stats__cline_set2s++;
+ UWord cloff, tno, toff;
+ UShort descr;
+ stats__cline_set16s++;
if (UNLIKELY(!aligned16(a))) goto slowcase;
cl = get_cacheline(a);
- ix16 = get_cacheline_offset(a) >> 1;
- /* We can't indiscriminately write on the w16 node as in the w64
- case, as that might make the node inconsistent with its parent.
- So first, pull down to this level. */
- if (cl->w16[ix16] == SHVAL_InvalidU) {
- pulldown_to_w16(cl, ix16);
+ cloff = get_cacheline_offset(a);
+ tno = get_treeno(a);
+ toff = get_tree_offset(a); /* == 0, 2, 4 or 6 */
+ descr = cl->descrs[tno];
+ if (UNLIKELY( !(descr & (TREE_DESCR_16_0 << toff)) )) {
+ if (valid_value_is_below_me_16(descr, toff)) {
+ /* Writing at this level. Need to fix up 'descr'. */
+ cl->descrs[tno] = pullup_descr_to_16(descr, toff);
+ /* At this point, the tree does not match cl->descr[tno] any
+ more. The assignments below will fix it up. */
+ } else {
+ /* We can't indiscriminately write on the w16 node as in the
+ w64 case, as that might make the node inconsistent with
+ its parent. So first, pull down to this level. */
+ UInt* tree = &cl->svals[tno << 3];
+ cl->descrs[tno] = pulldown_to_16(tree, toff, descr);
+ /* EXPENSIVE: tl_assert(is_sane_CacheLine(cl)); */
+ }
}
- cl->w16[ix16] = svNew;
- ix8 = LEFTCHILD(ix16);
- cl->w8[ ix8+0 ] = SHVAL_InvalidU;
- cl->w8[ ix8+1 ] = SHVAL_InvalidU;
+ cl->svals[cloff + 0] = svNew;
+ cl->svals[cloff + 1] = 0;
return;
slowcase: /* misaligned */
- stats__cline_2to1splits++;
- shadow_mem_set8( NULL/*unused*/, a + 0, svNew );
- shadow_mem_set8( NULL/*unused*/, a + 1, svNew );
+ stats__cline_16to8splits++;
+ shadow_mem_set8( uu_thr_acc, a + 0, svNew );
+ shadow_mem_set8( uu_thr_acc, a + 1, svNew );
}
static void shadow_mem_set32 ( Thread* uu_thr_acc, Addr a, UInt svNew ) {
CacheLine* cl;
- UWord ix32, ix16, ix8;
- stats__cline_set4s++...
[truncated message content] |
|
From: Julian S. <js...@ac...> - 2007-10-18 19:28:20
|
On Thursday 18 October 2007 16:26, Stefan Kost wrote: > the later was a very optimistic guess to replace the missing with what > sounds similar. it still does not build and I know next to nothing of > VG internals. Thanks for looking into this! Stefan, I guess you are building against 3.2.3 instead of against the current svn trunk. There are a number of differences. If you check out the trunk (see http://www.valgrind.org/downloads/repository.html) then I imagine this will build and work no problem. J |
|
From: Stefan K. <en...@ho...> - 2007-10-18 19:12:06
|
hi, I tried this localy too. One change I had to make was in omega/Makefile.am: -if VGP_X86_LINUX +if VG_X86_LINUX and so on and in o_main.c - ** Set up BB - */ - bb =3D emptyIRBB(); + ** Set up BB + */ + bb =3D emptyIRSB(); the later was a very optimistic guess to replace the missing with what =20 sounds similar. it still does not build and I know next to nothing of =20 VG internals. Thanks for looking into this! Stefan Quoting Rich Coe <Ric...@me...>: > On Wed, 17 Oct 2007 12:52:51 +0200 > Julian Seward <js...@ac...> wrote: >> On Friday 12 October 2007 22:02, Rich Coe wrote: >> >> As a first step, maybe you could prepare a version of Omega which compile= s >> against the current svn trunk? >> > > Sounds great. I'll start on it right away. > > R. > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Valgrind-developers mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-developers > |
|
From: <sv...@va...> - 2007-10-18 08:56:48
|
Author: njn
Date: 2007-10-18 09:56:48 +0100 (Thu, 18 Oct 2007)
New Revision: 7022
Log:
- Add some C++ tests.
- Add some notes about generic file formats.
Added:
branches/MASSIF2/massif/tests/new-cpp.cpp
branches/MASSIF2/massif/tests/new-cpp.post.exp
branches/MASSIF2/massif/tests/new-cpp.stderr.exp
branches/MASSIF2/massif/tests/new-cpp.vgtest
branches/MASSIF2/massif/tests/overloaded-new.post.exp
branches/MASSIF2/massif/tests/overloaded-new.stderr.exp
branches/MASSIF2/massif/tests/overloaded-new.vgtest
Modified:
branches/MASSIF2/massif/ms_main.c
branches/MASSIF2/massif/tests/Makefile.am
branches/MASSIF2/massif/tests/overloaded-new.cpp
Modified: branches/MASSIF2/massif/ms_main.c
===================================================================
--- branches/MASSIF2/massif/ms_main.c 2007-10-18 03:30:45 UTC (rev 7021)
+++ branches/MASSIF2/massif/ms_main.c 2007-10-18 08:56:48 UTC (rev 7022)
@@ -109,8 +109,6 @@
//
// Todo -- critical for release:
// - decide on a name!
-// - C++ tests -- for each of the allocators, and overloaded versions of
-// them (see 'init_alloc_fns').
// - do a graph-drawing test
// - write a good basic test that shows how the tool works, suitable for
// documentation
@@ -214,6 +212,68 @@
// Tests:
// - tests/overloaded_new.cpp is there
//
+// File format working notes:
+
+#if 0
+desc: --heap-admin=foo
+cmd: date
+time_unit: ms
+#-----------
+snapshot=0
+#-----------
+time=0
+mem_heap_B=0
+mem_heap_admin_B=0
+mem_stacks_B=0
+heap_tree=empty
+#-----------
+snapshot=1
+#-----------
+time=353
+mem_heap_B=5
+mem_heap_admin_B=0
+mem_stacks_B=0
+heap_tree=detailed
+n1: 5 (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+ n1: 5 0x27F6E0: _nl_normalize_codeset (in /lib/libc-2.3.5.so)
+ n1: 5 0x279DE6: _nl_load_locale_from_archive (in /lib/libc-2.3.5.so)
+ n1: 5 0x278E97: _nl_find_locale (in /lib/libc-2.3.5.so)
+ n1: 5 0x278871: setlocale (in /lib/libc-2.3.5.so)
+ n1: 5 0x8049821: (within /bin/date)
+ n0: 5 0x26ED5E: (below main) (in /lib/libc-2.3.5.so)
+
+
+n_events: n time(ms) total(B) useful-heap(B) admin-heap(B) stacks(B)
+t_events: B
+n 0 0 0 0 0
+td 0 0 0 0 0
+n1:
+
+Challenges:
+- how to specify and scale/abbreviate units on axes?
+- how to combine multiple values into the y-axis?
+
+--------------------------------------------------------------------------------Command: date
+Massif arguments: --heap-admin=foo
+ms_print arguments: massif.out
+--------------------------------------------------------------------------------
+ KB
+6.472^ :#
+ | :# :: . .
+ ...
+ | ::@ :@ :@ :@:::# :: : ::::
+ 0 +-----------------------------------@---@---@-----@--@---#-------------->ms 0 713
+
+Number of snapshots: 50
+ Detailed snapshots: [2, 11, 13, 19, 25, 32 (peak)]
+-------------------------------------------------------------------------------- n time(ms) total(B) useful-heap(B) admin-heap(B) stacks(B)
+-------------------------------------------------------------------------------- 0 0 0 0 0 0
+ 1 345 5 5 0 0
+ 2 353 5 5 0 0
+100.00% (5B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->100.00% (5B) 0x27F6E0: _nl_normalize_codeset (in /lib/libc-2.3.5.so)
+#endif
+
//---------------------------------------------------------------------------
#include "pub_tool_basics.h"
Modified: branches/MASSIF2/massif/tests/Makefile.am
===================================================================
--- branches/MASSIF2/massif/tests/Makefile.am 2007-10-18 03:30:45 UTC (rev 7021)
+++ branches/MASSIF2/massif/tests/Makefile.am 2007-10-18 08:56:48 UTC (rev 7022)
@@ -19,9 +19,11 @@
custom_alloc.post.exp custom_alloc.stderr.exp custom_alloc.vgtest
ignoring.post.exp ignoring.stderr.exp ignoring.vgtest \
long-time.post.exp long-time.stderr.exp long-time.vgtest \
+ new-cpp.post.exp new-cpp.stderr.exp new-cpp.vgtest \
no-stack-no-heap.post.exp no-stack-no-heap.stderr.exp no-stack-no-heap.vgtest \
null.post.exp null.stderr.exp null.vgtest \
one.post.exp one.stderr.exp one.vgtest \
+ overloaded-new.post.exp overloaded-new.stderr.exp overloaded-new.vgtest \
params.post.exp params.stderr.exp params.vgtest \
peak.post.exp peak.stderr.exp peak.vgtest \
peak2.post.exp peak2.stderr.exp peak2.vgtest \
@@ -52,10 +54,16 @@
ignoring \
insig \
long-time \
+ new-cpp \
null \
one \
+ overloaded-new \
peak \
realloc \
thresholds \
zero
+# C++ tests
+new_cpp_SOURCES = new-cpp.cpp
+overloaded_new_SOURCES = overloaded-new.cpp
+
Added: branches/MASSIF2/massif/tests/new-cpp.cpp
===================================================================
--- branches/MASSIF2/massif/tests/new-cpp.cpp (rev 0)
+++ branches/MASSIF2/massif/tests/new-cpp.cpp 2007-10-18 08:56:48 UTC (rev 7022)
@@ -0,0 +1,30 @@
+// operator new(unsigned)
+// operator new[](unsigned)
+// operator new(unsigned, std::nothrow_t const&)
+// operator new[](unsigned, std::nothrow_t const&)
+
+#include <stdlib.h>
+
+#include <new>
+
+using std::nothrow_t;
+
+// A big structure. Its details don't matter.
+struct s {
+ int array[1000];
+};
+
+int main(void)
+{
+ struct s* p1 = new struct s;
+ struct s* p2 = new (std::nothrow) struct s;
+ char* c1 = new char[2000];
+ char* c2 = new (std::nothrow) char[2000];
+ delete p1;
+ delete p2;
+ delete [] c1;
+ delete [] c2;
+ return 0;
+}
+
+
Added: branches/MASSIF2/massif/tests/new-cpp.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/new-cpp.post.exp (rev 0)
+++ branches/MASSIF2/massif/tests/new-cpp.post.exp 2007-10-18 08:56:48 UTC (rev 7022)
@@ -0,0 +1,58 @@
+--------------------------------------------------------------------------------
+Command: ./new-cpp
+Massif arguments: --stacks=no --time-unit=B
+ms_print arguments: massif.out
+--------------------------------------------------------------------------------
+
+
+ KB
+11.75^ #
+ | #
+ | #
+ | . #
+ | : #
+ | : #
+ | : #
+ | : : # :
+ | : : # :
+ | : : # :
+ | : : # :
+ | : : # :
+ | : : # :
+ | . : : # : .
+ | : : : # : :
+ | : : : # : :
+ | : : : # : :
+ | : : : # : : :
+ | : : : # : : :
+ | : : : # : : :
+ 0 +-----------------------------------#----------------------------------->KB
+ 0 23.50
+
+Number of snapshots: 10
+ Detailed snapshots: [5 (peak)]
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 0 0 0 0 0 0
+ 1 4,008 4,008 4,000 8 0
+ 2 8,016 8,016 8,000 16 0
+ 3 10,024 10,024 10,000 24 0
+ 4 12,032 12,032 12,000 32 0
+ 5 12,032 12,032 12,000 32 0
+99.73% (12,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->33.24% (4,000B) 0x........: main (new-cpp.cpp:19)
+|
+->33.24% (4,000B) 0x........: main (new-cpp.cpp:20)
+|
+->16.62% (2,000B) 0x........: main (new-cpp.cpp:21)
+|
+->16.62% (2,000B) 0x........: main (new-cpp.cpp:22)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 6 16,040 8,024 8,000 24 0
+ 7 20,048 4,016 4,000 16 0
+ 8 22,056 2,008 2,000 8 0
+ 9 24,064 0 0 0 0
Added: branches/MASSIF2/massif/tests/new-cpp.stderr.exp
===================================================================
--- branches/MASSIF2/massif/tests/new-cpp.stderr.exp (rev 0)
+++ branches/MASSIF2/massif/tests/new-cpp.stderr.exp 2007-10-18 08:56:48 UTC (rev 7022)
@@ -0,0 +1,2 @@
+
+
Added: branches/MASSIF2/massif/tests/new-cpp.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/new-cpp.vgtest (rev 0)
+++ branches/MASSIF2/massif/tests/new-cpp.vgtest 2007-10-18 08:56:48 UTC (rev 7022)
@@ -0,0 +1,4 @@
+prog: new-cpp
+vgopts: --stacks=no --time-unit=B
+post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
+cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/overloaded-new.cpp
===================================================================
--- branches/MASSIF2/massif/tests/overloaded-new.cpp 2007-10-18 03:30:45 UTC (rev 7021)
+++ branches/MASSIF2/massif/tests/overloaded-new.cpp 2007-10-18 08:56:48 UTC (rev 7022)
@@ -9,7 +9,7 @@
using std::nothrow_t;
-// A big structure. It's details don't matter.
+// A big structure. Its details don't matter.
struct s {
int array[1000];
};
@@ -34,12 +34,26 @@
return malloc(n);
}
+void operator delete (void* p)
+{
+ return free(p);
+}
+
+void operator delete[] (void* p)
+{
+ return free(p);
+}
+
int main(void)
{
struct s* p1 = new struct s;
struct s* p2 = new (std::nothrow) struct s;
char* c1 = new char[2000];
char* c2 = new (std::nothrow) char[2000];
+ delete p1;
+ delete p2;
+ delete [] c1;
+ delete [] c2;
return 0;
}
Added: branches/MASSIF2/massif/tests/overloaded-new.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/overloaded-new.post.exp (rev 0)
+++ branches/MASSIF2/massif/tests/overloaded-new.post.exp 2007-10-18 08:56:48 UTC (rev 7022)
@@ -0,0 +1,58 @@
+--------------------------------------------------------------------------------
+Command: ./overloaded-new
+Massif arguments: --stacks=no --time-unit=B
+ms_print arguments: massif.out
+--------------------------------------------------------------------------------
+
+
+ KB
+11.75^ #
+ | #
+ | #
+ | . #
+ | : #
+ | : #
+ | : #
+ | : : # :
+ | : : # :
+ | : : # :
+ | : : # :
+ | : : # :
+ | : : # :
+ | . : : # : .
+ | : : : # : :
+ | : : : # : :
+ | : : : # : :
+ | : : : # : : :
+ | : : : # : : :
+ | : : : # : : :
+ 0 +-----------------------------------#----------------------------------->KB
+ 0 23.50
+
+Number of snapshots: 10
+ Detailed snapshots: [5 (peak)]
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 0 0 0 0 0 0
+ 1 4,008 4,008 4,000 8 0
+ 2 8,016 8,016 8,000 16 0
+ 3 10,024 10,024 10,000 24 0
+ 4 12,032 12,032 12,000 32 0
+ 5 12,032 12,032 12,000 32 0
+99.73% (12,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->33.24% (4,000B) 0x........: main (overloaded-new.cpp:49)
+|
+->33.24% (4,000B) 0x........: main (overloaded-new.cpp:50)
+|
+->16.62% (2,000B) 0x........: main (overloaded-new.cpp:51)
+|
+->16.62% (2,000B) 0x........: main (overloaded-new.cpp:52)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 6 16,040 8,024 8,000 24 0
+ 7 20,048 4,016 4,000 16 0
+ 8 22,056 2,008 2,000 8 0
+ 9 24,064 0 0 0 0
Added: branches/MASSIF2/massif/tests/overloaded-new.stderr.exp
===================================================================
--- branches/MASSIF2/massif/tests/overloaded-new.stderr.exp (rev 0)
+++ branches/MASSIF2/massif/tests/overloaded-new.stderr.exp 2007-10-18 08:56:48 UTC (rev 7022)
@@ -0,0 +1,2 @@
+
+
Added: branches/MASSIF2/massif/tests/overloaded-new.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/overloaded-new.vgtest (rev 0)
+++ branches/MASSIF2/massif/tests/overloaded-new.vgtest 2007-10-18 08:56:48 UTC (rev 7022)
@@ -0,0 +1,4 @@
+prog: overloaded-new
+vgopts: --stacks=no --time-unit=B
+post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
+cleanup: rm massif.out
|
|
From: <sv...@va...> - 2007-10-18 03:31:15
|
Author: njn
Date: 2007-10-18 04:30:45 +0100 (Thu, 18 Oct 2007)
New Revision: 7021
Log:
- Change default --depth from 8 to 30
- update some comments
Modified:
branches/MASSIF2/massif/ms_main.c
branches/MASSIF2/massif/tests/deep-A.post.exp
branches/MASSIF2/massif/tests/deep-A.vgtest
branches/MASSIF2/massif/tests/deep-B.post.exp
branches/MASSIF2/massif/tests/deep-B.vgtest
branches/MASSIF2/massif/tests/deep-C.post.exp
branches/MASSIF2/massif/tests/deep-C.vgtest
Modified: branches/MASSIF2/massif/ms_main.c
===================================================================
--- branches/MASSIF2/massif/ms_main.c 2007-10-18 02:21:35 UTC (rev 7020)
+++ branches/MASSIF2/massif/ms_main.c 2007-10-18 03:30:45 UTC (rev 7021)
@@ -351,14 +351,10 @@
#define DO(x) { Char* s = x; VG_(addToXA)(alloc_fns, &s); }
// Ordered according to (presumed) frequency.
- // Nb: The C++ "operator new*" ones are overloadable. It's conceivable
- // that someone would want to not consider them as allocators, in order
- // to see what's happening beneath them. But if they're not in
- // alloc_fns, then when they're not overloaded they won't be seen as
- // alloc-fns, which will screw things up. So we always consider them to
- // be, and tough luck for anyone who wants to see inside them.
- // XXX: not actually necessarily true with the new (ie. old
- // Massif1-style) alloc-fn approach.
+ // Nb: The C++ "operator new*" ones are overloadable. We include them
+ // always anyway, because even if they're overloaded, it would be a
+ // prodigiously stupid overloading that caused them to not allocate
+ // memory.
DO("malloc" );
DO("__builtin_new" );
DO("operator new(unsigned)" );
@@ -413,7 +409,7 @@
static Bool clo_heap = True;
static UInt clo_heap_admin = 8;
static Bool clo_stacks = False;
-static UInt clo_depth = 8; // XXX: too low?
+static UInt clo_depth = 30; // XXX: too low?
static UInt clo_threshold = 100; // 100 == 1%
static UInt clo_peak_inaccuracy = 100; // 100 == 1%
static UInt clo_time_unit = TimeMS;
@@ -464,7 +460,7 @@
" --heap-admin=<number> average admin bytes per heap block;"
" ignored if --heap=no [8]\n"
" --stacks=no|yes profile stack(s) [no]\n"
-" --depth=<number> depth of contexts [8]\n"
+" --depth=<number> depth of contexts [30]\n"
" --alloc-fn=<name> specify <fn> as an alloc function [empty]\n"
" --threshold=<n> significance threshold, in 100ths of a percent\n"
" (eg. <n>=100 shows nodes covering >= 1%% of\n"
@@ -1269,9 +1265,6 @@
// Take a snapshot, and only that -- decisions on whether to take a
// snapshot, or what kind of snapshot, are made elsewhere.
-//
-// Note that with bigger depths, snapshots can be slow, eg. konqueror
-// snapshots can easily take 50ms! [XXX: is that still true?]
static void
take_snapshot(Snapshot* snapshot, SnapshotKind kind, Time time,
Bool is_detailed, Char* what)
@@ -1855,7 +1848,7 @@
{
sxpt->Sig.n_children = 0;
}
- // XXX: why the -1?
+ // We need the -1 to get the line number right, But I'm not sure why.
ip_desc = VG_(describe_IP)(sxpt->Sig.ip-1, ip_desc, BUF_LEN);
}
perc = make_perc(sxpt->szB, snapshot_total_szB);
Modified: branches/MASSIF2/massif/tests/deep-A.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/deep-A.post.exp 2007-10-18 02:21:35 UTC (rev 7020)
+++ branches/MASSIF2/massif/tests/deep-A.post.exp 2007-10-18 03:30:45 UTC (rev 7021)
@@ -1,6 +1,6 @@
--------------------------------------------------------------------------------
Command: ./deep
-Massif arguments: --stacks=no --time-unit=B
+Massif arguments: --stacks=no --time-unit=B --depth=8
ms_print arguments: massif.out
--------------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/deep-A.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/deep-A.vgtest 2007-10-18 02:21:35 UTC (rev 7020)
+++ branches/MASSIF2/massif/tests/deep-A.vgtest 2007-10-18 03:30:45 UTC (rev 7021)
@@ -1,4 +1,4 @@
prog: deep
-vgopts: --stacks=no --time-unit=B
+vgopts: --stacks=no --time-unit=B --depth=8
post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/deep-B.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/deep-B.post.exp 2007-10-18 02:21:35 UTC (rev 7020)
+++ branches/MASSIF2/massif/tests/deep-B.post.exp 2007-10-18 03:30:45 UTC (rev 7021)
@@ -1,6 +1,6 @@
--------------------------------------------------------------------------------
Command: ./deep
-Massif arguments: --stacks=no --time-unit=B --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12
+Massif arguments: --stacks=no --time-unit=B --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 --depth=8
ms_print arguments: massif.out
--------------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/deep-B.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/deep-B.vgtest 2007-10-18 02:21:35 UTC (rev 7020)
+++ branches/MASSIF2/massif/tests/deep-B.vgtest 2007-10-18 03:30:45 UTC (rev 7021)
@@ -1,5 +1,5 @@
prog: deep
-vgopts: --stacks=no --time-unit=B --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 -v -v
+vgopts: --stacks=no --time-unit=B --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 -v -v --depth=8
stderr_filter: filter_verbose
post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/deep-C.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/deep-C.post.exp 2007-10-18 02:21:35 UTC (rev 7020)
+++ branches/MASSIF2/massif/tests/deep-C.post.exp 2007-10-18 03:30:45 UTC (rev 7021)
@@ -1,6 +1,6 @@
--------------------------------------------------------------------------------
Command: ./deep
-Massif arguments: --stacks=no --time-unit=B --alloc-fn=a3 --alloc-fn=a4 --alloc-fn=a5 --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12
+Massif arguments: --stacks=no --time-unit=B --alloc-fn=a3 --alloc-fn=a4 --alloc-fn=a5 --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 --depth=8
ms_print arguments: massif.out
--------------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/deep-C.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/deep-C.vgtest 2007-10-18 02:21:35 UTC (rev 7020)
+++ branches/MASSIF2/massif/tests/deep-C.vgtest 2007-10-18 03:30:45 UTC (rev 7021)
@@ -1,5 +1,5 @@
prog: deep
-vgopts: --stacks=no --time-unit=B --alloc-fn=a3 --alloc-fn=a4 --alloc-fn=a5 --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 -v -v
+vgopts: --stacks=no --time-unit=B --alloc-fn=a3 --alloc-fn=a4 --alloc-fn=a5 --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 -v -v --depth=8
stderr_filter: filter_verbose
post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
cleanup: rm massif.out
|
|
From: Tom H. <th...@cy...> - 2007-10-18 02:31:06
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2007-10-18 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 == 260 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-18 02:24:01
|
Nightly build on lloyd ( x86_64, Fedora 7 ) started at 2007-10-18 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, 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-18 02:23:29
|
Nightly build on dellow ( x86_64, Fedora 7 ) started at 2007-10-18 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: <sv...@va...> - 2007-10-18 02:21:39
|
Author: njn Date: 2007-10-18 03:21:35 +0100 (Thu, 18 Oct 2007) New Revision: 7020 Log: update test outputs for recent changes Modified: branches/MASSIF2/massif/tests/basic.post.exp branches/MASSIF2/massif/tests/big-alloc.post.exp branches/MASSIF2/massif/tests/ignoring.post.exp branches/MASSIF2/massif/tests/insig.post.exp branches/MASSIF2/massif/tests/long-time.post.exp branches/MASSIF2/massif/tests/peak.post.exp branches/MASSIF2/massif/tests/peak2.post.exp branches/MASSIF2/massif/tests/peak2.stderr.exp branches/MASSIF2/massif/tests/thresholds_0_0.post.exp branches/MASSIF2/massif/tests/thresholds_0_10.post.exp branches/MASSIF2/massif/tests/thresholds_10_0.post.exp branches/MASSIF2/massif/tests/thresholds_10_10.post.exp branches/MASSIF2/massif/tests/thresholds_5_0.post.exp branches/MASSIF2/massif/tests/thresholds_5_10.post.exp Modified: branches/MASSIF2/massif/tests/basic.post.exp =================================================================== --- branches/MASSIF2/massif/tests/basic.post.exp 2007-10-18 02:19:43 UTC (rev 7019) +++ branches/MASSIF2/massif/tests/basic.post.exp 2007-10-18 02:21:35 UTC (rev 7020) @@ -60,8 +60,8 @@ 17 1,836 1,836 1,700 136 0 18 1,944 1,944 1,800 144 0 19 2,052 2,052 1,900 152 0 -92.59% (1900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->92.59% (1900B) 0x........: main (basic.c:14) +92.59% (1,900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->92.59% (1,900B) 0x........: main (basic.c:14) -------------------------------------------------------------------------------- n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B) @@ -76,8 +76,8 @@ 27 2,916 2,916 2,700 216 0 28 3,024 3,024 2,800 224 0 29 3,132 3,132 2,900 232 0 -92.59% (2900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->92.59% (2900B) 0x........: main (basic.c:14) +92.59% (2,900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->92.59% (2,900B) 0x........: main (basic.c:14) -------------------------------------------------------------------------------- n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B) @@ -90,8 +90,8 @@ 35 3,780 3,780 3,500 280 0 36 3,888 3,888 3,600 288 0 37 3,888 3,888 3,600 288 0 -92.59% (3600B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->92.59% (3600B) 0x........: main (basic.c:14) +92.59% (3,600B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->92.59% (3,600B) 0x........: main (basic.c:14) -------------------------------------------------------------------------------- n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B) @@ -106,8 +106,8 @@ 45 4,752 3,024 2,800 224 0 46 4,860 2,916 2,700 216 0 47 4,968 2,808 2,600 208 0 -92.59% (2600B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->92.59% (2600B) 0x........: main (basic.c:14) +92.59% (2,600B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->92.59% (2,600B) 0x........: main (basic.c:14) -------------------------------------------------------------------------------- n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B) @@ -122,8 +122,8 @@ 55 5,832 1,944 1,800 144 0 56 5,940 1,836 1,700 136 0 57 6,048 1,728 1,600 128 0 -92.59% (1600B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->92.59% (1600B) 0x........: main (basic.c:14) +92.59% (1,600B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->92.59% (1,600B) 0x........: main (basic.c:14) -------------------------------------------------------------------------------- n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B) Modified: branches/MASSIF2/massif/tests/big-alloc.post.exp =================================================================== --- branches/MASSIF2/massif/tests/big-alloc.post.exp 2007-10-18 02:19:43 UTC (rev 7019) +++ branches/MASSIF2/massif/tests/big-alloc.post.exp 2007-10-18 02:21:35 UTC (rev 7020) @@ -44,8 +44,8 @@ 7 73,400,376 73,400,376 73,400,320 56 0 8 83,886,144 83,886,144 83,886,080 64 0 9 94,371,912 94,371,912 94,371,840 72 0 -100.00% (94371840B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->100.00% (94371840B) 0x........: main (big-alloc.c:13) +100.00% (94,371,840B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->100.00% (94,371,840B) 0x........: main (big-alloc.c:13) -------------------------------------------------------------------------------- n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B) Modified: branches/MASSIF2/massif/tests/ignoring.post.exp =================================================================== --- branches/MASSIF2/massif/tests/ignoring.post.exp 2007-10-18 02:19:43 UTC (rev 7019) +++ branches/MASSIF2/massif/tests/ignoring.post.exp 2007-10-18 02:21:35 UTC (rev 7020) @@ -36,8 +36,8 @@ -------------------------------------------------------------------------------- 0 0 0 0 0 0 1 1,008 1,008 1,000 8 0 -99.21% (1000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->99.21% (1000B) 0x........: main (ignoring.c:13) +99.21% (1,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->99.21% (1,000B) 0x........: main (ignoring.c:13) -------------------------------------------------------------------------------- n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B) Modified: branches/MASSIF2/massif/tests/insig.post.exp =================================================================== --- branches/MASSIF2/massif/tests/insig.post.exp 2007-10-18 02:19:43 UTC (rev 7019) +++ branches/MASSIF2/massif/tests/insig.post.exp 2007-10-18 02:21:35 UTC (rev 7020) @@ -44,8 +44,8 @@ 7 1,087 1,087 1,031 56 0 8 1,096 1,096 1,032 64 0 9 1,105 1,105 1,033 72 0 -93.48% (1033B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->90.50% (1000B) 0x........: main (insig.c:8) +93.48% (1,033B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->90.50% (1,000B) 0x........: main (insig.c:8) | ->01.36% (15B) 0x........: main (insig.c:9) | @@ -66,8 +66,8 @@ 17 1,177 1,177 1,041 136 0 18 1,186 1,186 1,042 144 0 19 1,195 1,195 1,043 152 0 -87.28% (1043B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->83.68% (1000B) 0x........: main (insig.c:8) +87.28% (1,043B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->83.68% (1,000B) 0x........: main (insig.c:8) | ->01.34% (16B) in 16 places, all below massif's threshold (01.00%) | Modified: branches/MASSIF2/massif/tests/long-time.post.exp =================================================================== --- branches/MASSIF2/massif/tests/long-time.post.exp 2007-10-18 02:19:43 UTC (rev 7019) +++ branches/MASSIF2/massif/tests/long-time.post.exp 2007-10-18 02:21:35 UTC (rev 7020) @@ -36,10 +36,10 @@ -------------------------------------------------------------------------------- 0 0 0 0 0 0 1 3,900,000 2,300,000 2,300,000 0 0 -100.00% (2300000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->52.17% (1200000B) 0x........: main (long-time.c:15) +100.00% (2,300,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->52.17% (1,200,000B) 0x........: main (long-time.c:15) | -->47.83% (1100000B) 0x........: main (long-time.c:13) +->47.83% (1,100,000B) 0x........: main (long-time.c:13) | ->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%) @@ -52,8 +52,8 @@ 5 735,100,000 900,000 900,000 0 0 6 863,100,000 900,000 900,000 0 0 7 991,100,000 900,000 900,000 0 0 -100.00% (900000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->100.00% (900000B) 0x........: main (long-time.c:18) +100.00% (900,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->100.00% (900,000B) 0x........: main (long-time.c:18) | ->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%) @@ -103,10 +103,10 @@ 36 4,728,000,000 0 0 0 0 37 4,854,200,000 0 0 0 0 38 4,979,900,000 2,300,000 2,300,000 0 0 -100.00% (2300000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->52.17% (1200000B) 0x........: main (long-time.c:15) +100.00% (2,300,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->52.17% (1,200,000B) 0x........: main (long-time.c:15) | -->47.83% (1100000B) 0x........: main (long-time.c:13) +->47.83% (1,100,000B) 0x........: main (long-time.c:13) | ->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%) @@ -118,10 +118,10 @@ 41 5,358,200,000 0 0 0 0 42 5,483,900,000 2,300,000 2,300,000 0 0 43 5,609,900,000 1,900,000 1,900,000 0 0 -100.00% (1900000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->57.89% (1100000B) 0x........: main (long-time.c:13) +100.00% (1,900,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->57.89% (1,100,000B) 0x........: main (long-time.c:13) | -->42.11% (800000B) 0x........: main (long-time.c:12) +->42.11% (800,000B) 0x........: main (long-time.c:12) | ->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%) @@ -147,8 +147,8 @@ 54 7,058,700,000 1,100,000 1,100,000 0 0 55 7,184,800,000 800,000 800,000 0 0 56 7,311,100,000 900,000 900,000 0 0 -100.00% (900000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->100.00% (900000B) 0x........: main (long-time.c:18) +100.00% (900,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->100.00% (900,000B) 0x........: main (long-time.c:18) | ->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%) @@ -165,8 +165,8 @@ 64 8,319,100,000 900,000 900,000 0 0 65 8,445,000,000 1,200,000 1,200,000 0 0 66 8,570,700,000 1,100,000 1,100,000 0 0 -100.00% (1100000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->100.00% (1100000B) 0x........: main (long-time.c:13) +100.00% (1,100,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->100.00% (1,100,000B) 0x........: main (long-time.c:13) | ->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%) @@ -183,8 +183,8 @@ 74 9,578,700,000 1,100,000 1,100,000 0 0 75 9,704,800,000 800,000 800,000 0 0 76 9,831,100,000 900,000 900,000 0 0 -100.00% (900000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->100.00% (900000B) 0x........: main (long-time.c:18) +100.00% (900,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->100.00% (900,000B) 0x........: main (long-time.c:18) | ->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%) @@ -201,8 +201,8 @@ 84 10,839,100,000 900,000 900,000 0 0 85 10,965,000,000 1,200,000 1,200,000 0 0 86 11,090,700,000 1,100,000 1,100,000 0 0 -100.00% (1100000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->100.00% (1100000B) 0x........: main (long-time.c:13) +100.00% (1,100,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->100.00% (1,100,000B) 0x........: main (long-time.c:13) | ->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%) Modified: branches/MASSIF2/massif/tests/peak.post.exp =================================================================== --- branches/MASSIF2/massif/tests/peak.post.exp 2007-10-18 02:19:43 UTC (rev 7019) +++ branches/MASSIF2/massif/tests/peak.post.exp 2007-10-18 02:21:35 UTC (rev 7020) @@ -146,8 +146,8 @@ 37 1,242 1,080 1,000 80 0 38 1,251 1,089 1,001 88 0 39 1,251 1,089 1,001 88 0 -91.92% (1001B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->91.83% (1000B) 0x........: main (peak.c:8) +91.92% (1,001B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->91.83% (1,000B) 0x........: main (peak.c:8) | ->00.09% (1B) in 1+ places, all below ms_print's threshold (01.00%) @@ -158,8 +158,8 @@ 41 1,368 1,188 1,100 88 0 42 1,377 1,197 1,101 96 0 43 1,377 1,197 1,101 96 0 -91.98% (1101B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->91.90% (1100B) 0x........: main (peak.c:8) +91.98% (1,101B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->91.90% (1,100B) 0x........: main (peak.c:8) | ->00.08% (1B) in 1+ places, all below ms_print's threshold (01.00%) @@ -170,8 +170,8 @@ 45 1,494 1,296 1,200 96 0 46 1,503 1,305 1,201 104 0 47 1,503 1,305 1,201 104 0 -92.03% (1201B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->91.95% (1200B) 0x........: main (peak.c:8) +92.03% (1,201B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->91.95% (1,200B) 0x........: main (peak.c:8) | ->00.08% (1B) in 1+ places, all below ms_print's threshold (01.00%) @@ -182,8 +182,8 @@ 49 1,620 1,404 1,300 104 0 50 1,629 1,413 1,301 112 0 51 1,629 1,413 1,301 112 0 -92.07% (1301B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->92.00% (1300B) 0x........: main (peak.c:8) +92.07% (1,301B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->92.00% (1,300B) 0x........: main (peak.c:8) | ->00.07% (1B) in 1+ places, all below ms_print's threshold (01.00%) @@ -194,8 +194,8 @@ 53 1,746 1,512 1,400 112 0 54 1,755 1,521 1,401 120 0 55 1,755 1,521 1,401 120 0 -92.11% (1401B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->92.04% (1400B) 0x........: main (peak.c:8) +92.11% (1,401B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->92.04% (1,400B) 0x........: main (peak.c:8) | ->00.07% (1B) in 1+ places, all below ms_print's threshold (01.00%) @@ -206,8 +206,8 @@ 57 1,872 1,620 1,500 120 0 58 1,881 1,629 1,501 128 0 59 1,881 1,629 1,501 128 0 -92.14% (1501B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->92.08% (1500B) 0x........: main (peak.c:8) +92.14% (1,501B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->92.08% (1,500B) 0x........: main (peak.c:8) | ->00.06% (1B) in 1+ places, all below ms_print's threshold (01.00%) @@ -218,8 +218,8 @@ 61 1,998 1,728 1,600 128 0 62 2,007 1,737 1,601 136 0 63 2,007 1,737 1,601 136 0 -92.17% (1601B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->92.11% (1600B) 0x........: main (peak.c:8) +92.17% (1,601B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->92.11% (1,600B) 0x........: main (peak.c:8) | ->00.06% (1B) in 1+ places, all below ms_print's threshold (01.00%) @@ -230,8 +230,8 @@ 65 2,124 1,836 1,700 136 0 66 2,133 1,845 1,701 144 0 67 2,133 1,845 1,701 144 0 -92.20% (1701B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->92.14% (1700B) 0x........: main (peak.c:8) +92.20% (1,701B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->92.14% (1,700B) 0x........: main (peak.c:8) | ->00.05% (1B) in 1+ places, all below ms_print's threshold (01.00%) @@ -242,8 +242,8 @@ 69 2,250 1,944 1,800 144 0 70 2,259 1,953 1,801 152 0 71 2,259 1,953 1,801 152 0 -92.22% (1801B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->92.17% (1800B) 0x........: main (peak.c:8) +92.22% (1,801B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->92.17% (1,800B) 0x........: main (peak.c:8) | ->00.05% (1B) in 1+ places, all below ms_print's threshold (01.00%) @@ -254,8 +254,8 @@ 73 2,376 2,052 1,900 152 0 74 2,385 2,061 1,901 160 0 75 2,385 2,061 1,901 160 0 -92.24% (1901B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->92.19% (1900B) 0x........: main (peak.c:8) +92.24% (1,901B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->92.19% (1,900B) 0x........: main (peak.c:8) | ->00.05% (1B) in 1+ places, all below ms_print's threshold (01.00%) @@ -266,8 +266,8 @@ 77 2,502 2,160 2,000 160 0 78 2,511 2,169 2,001 168 0 79 2,511 2,169 2,001 168 0 -92.25% (2001B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->92.21% (2000B) 0x........: main (peak.c:8) +92.25% (2,001B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->92.21% (2,000B) 0x........: main (peak.c:8) | ->00.05% (1B) in 1+ places, all below ms_print's threshold (01.00%) Modified: branches/MASSIF2/massif/tests/peak2.post.exp =================================================================== --- branches/MASSIF2/massif/tests/peak2.post.exp 2007-10-18 02:19:43 UTC (rev 7019) +++ branches/MASSIF2/massif/tests/peak2.post.exp 2007-10-18 02:21:35 UTC (rev 7020) @@ -146,8 +146,8 @@ 37 1,242 1,080 1,000 80 0 38 1,251 1,089 1,001 88 0 39 1,251 1,089 1,001 88 0 -91.92% (1001B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->91.83% (1000B) 0x........: main (peak.c:8) +91.92% (1,001B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->91.83% (1,000B) 0x........: main (peak.c:8) | ->00.09% (1B) in 1+ places, all below ms_print's threshold (01.00%) @@ -161,8 +161,8 @@ 44 1,494 1,296 1,200 96 0 45 1,503 1,305 1,201 104 0 46 1,503 1,305 1,201 104 0 -92.03% (1201B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->91.95% (1200B) 0x........: main (peak.c:8) +92.03% (1,201B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->91.95% (1,200B) 0x........: main (peak.c:8) | ->00.08% (1B) in 1+ places, all below ms_print's threshold (01.00%) @@ -176,8 +176,8 @@ 51 1,746 1,512 1,400 112 0 52 1,755 1,521 1,401 120 0 53 1,755 1,521 1,401 120 0 -92.11% (1401B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->92.04% (1400B) 0x........: main (peak.c:8) +92.11% (1,401B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->92.04% (1,400B) 0x........: main (peak.c:8) | ->00.07% (1B) in 1+ places, all below ms_print's threshold (01.00%) @@ -191,8 +191,8 @@ 58 1,998 1,728 1,600 128 0 59 2,007 1,737 1,601 136 0 60 2,007 1,737 1,601 136 0 -92.17% (1601B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->92.11% (1600B) 0x........: main (peak.c:8) +92.17% (1,601B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->92.11% (1,600B) 0x........: main (peak.c:8) | ->00.06% (1B) in 1+ places, all below ms_print's threshold (01.00%) @@ -206,8 +206,8 @@ 65 2,250 1,944 1,800 144 0 66 2,259 1,953 1,801 152 0 67 2,259 1,953 1,801 152 0 -92.22% (1801B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->92.17% (1800B) 0x........: main (peak.c:8) +92.22% (1,801B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->92.17% (1,800B) 0x........: main (peak.c:8) | ->00.05% (1B) in 1+ places, all below ms_print's threshold (01.00%) @@ -221,8 +221,8 @@ 72 2,502 2,160 2,000 160 0 73 2,511 2,169 2,001 168 0 74 2,511 2,169 2,001 168 0 -92.25% (2001B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->92.21% (2000B) 0x........: main (peak.c:8) +92.25% (2,001B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->92.21% (2,000B) 0x........: main (peak.c:8) | ->00.05% (1B) in 1+ places, all below ms_print's threshold (01.00%) Modified: branches/MASSIF2/massif/tests/peak2.stderr.exp =================================================================== --- branches/MASSIF2/massif/tests/peak2.stderr.exp 2007-10-18 02:19:43 UTC (rev 7019) +++ branches/MASSIF2/massif/tests/peak2.stderr.exp 2007-10-18 02:21:35 UTC (rev 7020) @@ -1,20 +1,3 @@ - -Command line - ./peak -Startup, with flags: - --command-line-only=yes - --memcheck:leak-check=no - --tool=massif - --stacks=no - --time-unit=B - -v - -v - --peak-inaccuracy=1000 -Contents of /proc/version: - Linux version 2.6.15-1.1833_FC4 (bhc...@hs...) (gcc version 4.0.2 20051125 (Red Hat 4.0.2-8)) #1 Wed Mar 1 23:41:37 EST 2006 -Arch and hwcaps: X86, x86-sse1-sse2 -Page sizes: currently 4096, max supported 4096 -Valgrind library directory: /home/njn/grind/massif3/.in_place Massif: alloc-fns: Massif: 0: malloc Massif: 1: __builtin_new @@ -30,36 +13,9 @@ Massif: 11: operator new[](unsigned, std::nothrow_t const&) Massif: 12: operator new(unsigned long, std::nothrow_t const&) Massif: 13: operator new[](unsigned long, std::nothrow_t const&) -TT/TC: VG_(init_tt_tc) (startup of code management) -TT/TC: cache: 8 sectors of 9644544 bytes each = 77156352 total -TT/TC: table: 524168 total entries, max occupancy 419328 (80%) -Reading syms from /lib/ld-2.3.5.so (0x23C000) - svma 0x000023C000, avma 0x000023C000 -summarise_context(loc_start = 0x5D): cannot summarise(why=1): -0x66: 44(r3) u u u c-36 u u c-44 c-40 c-4 u u u u u u u u u u u -summarise_context(loc_start = 0x66): cannot summarise(why=1): -0x69: 44(r3) u u u c-36 u u u c-40 c-4 u u u u u u u u u u u -summarise_context(loc_start = 0x69): cannot summarise(why=1): -0x78: 44(r3) u u u c-36 u u u u c-4 u u u u u u u u u u u -Reading syms from /home/njn/grind/massif3/massif/tests/peak (0x8048000) - svma 0x0008048000, avma 0x0008048000 -Reading syms from /home/njn/grind/massif3/massif/massif-x86-linux (0x38000000) - svma 0x0038000000, avma 0x0038000000 - object doesn't have a dynamic symbol table Massif: startup S. 0 (t:0, hp:0, ad:0, st:0) -TT/TC: initialise sector 0 -Reading syms from /home/njn/grind/massif3/coregrind/vgpreload_core-x86-linux.so (0x4001000) - svma 0x0000000000, avma 0x0004001000 -Reading syms from /home/njn/grind/massif3/massif/vgpreload_massif-x86-linux.so (0x4003000) - svma 0x0000000000, avma 0x0004003000 -Reading syms from /lib/libc-2.3.5.so (0x25A000) - svma 0x000025A000, avma 0x000025A000 -summarise_context(loc_start = 0x34): cannot summarise(why=1): -0x4d: 0(r0) u c60 c56 c52 u c44 c40 c36 c-4 u u u u u u u u u u u -REDIR: 0x2bf41e (malloc) redirected to 0x4003e13 (malloc) Massif: alloc S. 1 (t:108, hp:100, ad:8, st:0) Massif: alloc S. 2 (t:117, hp:101, ad:16, st:0) -REDIR: 0x2bd5e8 (free) redirected to 0x40049a4 (free) Massif: de-PEAK Sp 3 (t:117, hp:101, ad:16, st:0) Massif: dealloc S. 4 (t:126, hp:100, ad:8, st:0) Massif: alloc S. 5 (t:234, hp:200, ad:16, st:0) @@ -133,8 +89,6 @@ Massif: alloc S. 73 (t:2511, hp:2001, ad:168, st:0) Massif: de-PEAK Sp 74 (t:2511, hp:2001, ad:168, st:0) Massif: dealloc S. 75 (t:2520, hp:2000, ad:160, st:0) -Caught __NR_exit; running __libc_freeres() - Massif: heap allocs: 40 Massif: heap reallocs: 0 Massif: heap frees: 20 @@ -152,39 +106,3 @@ Massif: peak snapshots: 15 Massif: cullings: 0 Massif: XCon_redos: 0 -translate: fast SP updates identified: 0 ( --%) -translate: generic_known SP updates identified: 0 ( --%) -translate: generic_unknown SP updates identified: 0 ( --%) - tt/tc: 2,987 tt lookups requiring 2,996 probes - tt/tc: 2,987 fast-cache updates, 2 flushes - transtab: new 1,489 (32,900 -> 182,505; ratio 55:10) [0 scs] - transtab: dumped 0 (0 -> ??) - transtab: discarded 0 (0 -> ??) -scheduler: 21,885 jumps (bb entries). -scheduler: 0/1,610 major/minor sched events. - sanity: 1 cheap, 1 expensive checks. - exectx: 30,011 lists, 0 contexts (avg 0 per list) - exectx: 0 searches, 0 full compares (0 per 1000) - exectx: 0 cmp2, 0 cmp4, 0 cmpAll - errormgr: 0 supplist searches, 0 comparisons during search - errormgr: 0 errlist searches, 0 comparisons during search - ------- Valgrind's internal memory use stats follow ------ -core : 1 sbs, 3 bs, 1/1 free bs, 1048576 mmap, 65552 loan -tool : 1 sbs, 161 bs, 2/2 free bs, 1048576 mmap, 325904 loan -symtab : 3 sbs, 199 bs, 7/7 free bs, 3145728 mmap, 1949288 loan -client : 1 sbs, 21 bs, 1/1 free bs, 1048576 mmap, 2080 loan -demangle: 0 sbs, 0 bs, 0/0 free bs, 0 mmap, 0 loan -exectxt : 0 sbs, 0 bs, 0/0 free bs, 0 mmap, 0 loan -errors : 0 sbs, 0 bs, 0/0 free bs, 0 mmap, 0 loan -ttaux : 1 sbs, 75 bs, 13/13 free bs, 65536 mmap, 4624 loan ------- -core : 1048576 mmap'd, 65552/ 65552 max/curr -tool : 1048576 mmap'd, 325920/ 325904 max/curr -symtab : 3145728 mmap'd, 2020528/ 1949288 max/curr -client : 1048576 mmap'd, 2088/ 2080 max/curr -demangle: 0 mmap'd, 0/ 0 max/curr -exectxt : 0 mmap'd, 0/ 0 max/curr -errors : 0 mmap'd, 0/ 0 max/curr -ttaux : 65536 mmap'd, 4752/ 4624 max/curr - Modified: branches/MASSIF2/massif/tests/thresholds_0_0.post.exp =================================================================== --- branches/MASSIF2/massif/tests/thresholds_0_0.post.exp 2007-10-18 02:19:43 UTC (rev 7019) +++ branches/MASSIF2/massif/tests/thresholds_0_0.post.exp 2007-10-18 02:21:35 UTC (rev 7020) @@ -44,10 +44,10 @@ 7 7,950 7,950 7,950 0 0 8 9,950 9,950 9,950 0 0 9 10,000 10,000 10,000 0 0 -100.00% (10000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->66.50% (6650B) 0x........: my_malloc1 (thresholds.c:23) -| ->60.00% (6000B) 0x........: a7550 (thresholds.c:38) -| | ->60.00% (6000B) 0x........: main (thresholds.c:52) +100.00% (10,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->66.50% (6,650B) 0x........: my_malloc1 (thresholds.c:23) +| ->60.00% (6,000B) 0x........: a7550 (thresholds.c:38) +| | ->60.00% (6,000B) 0x........: main (thresholds.c:52) | | | ->05.00% (500B) 0x........: main (thresholds.c:54) | | @@ -57,9 +57,9 @@ | ->00.50% (50B) 0x........: a450 (thresholds.c:47) | ->00.50% (50B) 0x........: main (thresholds.c:53) | -->20.00% (2000B) 0x........: main (thresholds.c:55) +->20.00% (2,000B) 0x........: main (thresholds.c:55) | -->13.00% (1300B) 0x........: my_malloc2 (thresholds.c:28) +->13.00% (1,300B) 0x........: my_malloc2 (thresholds.c:28) | ->09.00% (900B) 0x........: a7550 (thresholds.c:39) | | ->09.00% (900B) 0x........: main (thresholds.c:52) | | Modified: branches/MASSIF2/massif/tests/thresholds_0_10.post.exp =================================================================== --- branches/MASSIF2/massif/tests/thresholds_0_10.post.exp 2007-10-18 02:19:43 UTC (rev 7019) +++ branches/MASSIF2/massif/tests/thresholds_0_10.post.exp 2007-10-18 02:21:35 UTC (rev 7020) @@ -44,17 +44,17 @@ 7 7,950 7,950 7,950 0 0 8 9,950 9,950 9,950 0 0 9 10,000 10,000 10,000 0 0 -100.00% (10000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->66.50% (6650B) 0x........: my_malloc1 (thresholds.c:23) -| ->60.00% (6000B) 0x........: a7550 (thresholds.c:38) -| | ->60.00% (6000B) 0x........: main (thresholds.c:52) +100.00% (10,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->66.50% (6,650B) 0x........: my_malloc1 (thresholds.c:23) +| ->60.00% (6,000B) 0x........: a7550 (thresholds.c:38) +| | ->60.00% (6,000B) 0x........: main (thresholds.c:52) | | | ->06.50% (650B) in 3+ places, all below ms_print's threshold (10.00%) | -->20.00% (2000B) 0x........: main (thresholds.c:55) +->20.00% (2,000B) 0x........: main (thresholds.c:55) | -->13.00% (1300B) 0x........: my_malloc2 (thresholds.c:28) -| ->13.00% (1300B) in 3+ places, all below ms_print's threshold (10.00%) +->13.00% (1,300B) 0x........: my_malloc2 (thresholds.c:28) +| ->13.00% (1,300B) in 3+ places, all below ms_print's threshold (10.00%) | ->00.50% (50B) in 1+ places, all below ms_print's threshold (10.00%) Modified: branches/MASSIF2/massif/tests/thresholds_10_0.post.exp =================================================================== --- branches/MASSIF2/massif/tests/thresholds_10_0.post.exp 2007-10-18 02:19:43 UTC (rev 7019) +++ branches/MASSIF2/massif/tests/thresholds_10_0.post.exp 2007-10-18 02:21:35 UTC (rev 7020) @@ -44,17 +44,17 @@ 7 7,950 7,950 7,950 0 0 8 9,950 9,950 9,950 0 0 9 10,000 10,000 10,000 0 0 -100.00% (10000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->66.50% (6650B) 0x........: my_malloc1 (thresholds.c:23) -| ->60.00% (6000B) 0x........: a7550 (thresholds.c:38) -| | ->60.00% (6000B) 0x........: main (thresholds.c:52) +100.00% (10,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->66.50% (6,650B) 0x........: my_malloc1 (thresholds.c:23) +| ->60.00% (6,000B) 0x........: a7550 (thresholds.c:38) +| | ->60.00% (6,000B) 0x........: main (thresholds.c:52) | | | ->06.50% (650B) in 3 places, all below massif's threshold (10.00%) | -->20.00% (2000B) 0x........: main (thresholds.c:55) +->20.00% (2,000B) 0x........: main (thresholds.c:55) | -->13.00% (1300B) 0x........: my_malloc2 (thresholds.c:28) -| ->13.00% (1300B) in 3 places, all below massif's threshold (10.00%) +->13.00% (1,300B) 0x........: my_malloc2 (thresholds.c:28) +| ->13.00% (1,300B) in 3 places, all below massif's threshold (10.00%) | ->00.50% (50B) in 1 place, below massif's threshold (10.00%) Modified: branches/MASSIF2/massif/tests/thresholds_10_10.post.exp =================================================================== --- branches/MASSIF2/massif/tests/thresholds_10_10.post.exp 2007-10-18 02:19:43 UTC (rev 7019) +++ branches/MASSIF2/massif/tests/thresholds_10_10.post.exp 2007-10-18 02:21:35 UTC (rev 7020) @@ -44,17 +44,17 @@ 7 7,950 7,950 7,950 0 0 8 9,950 9,950 9,950 0 0 9 10,000 10,000 10,000 0 0 -100.00% (10000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->66.50% (6650B) 0x........: my_malloc1 (thresholds.c:23) -| ->60.00% (6000B) 0x........: a7550 (thresholds.c:38) -| | ->60.00% (6000B) 0x........: main (thresholds.c:52) +100.00% (10,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->66.50% (6,650B) 0x........: my_malloc1 (thresholds.c:23) +| ->60.00% (6,000B) 0x........: a7550 (thresholds.c:38) +| | ->60.00% (6,000B) 0x........: main (thresholds.c:52) | | | ->06.50% (650B) in 1+ places, all below ms_print's threshold (10.00%) | -->20.00% (2000B) 0x........: main (thresholds.c:55) +->20.00% (2,000B) 0x........: main (thresholds.c:55) | -->13.00% (1300B) 0x........: my_malloc2 (thresholds.c:28) -| ->13.00% (1300B) in 3 places, all below massif's threshold (10.00%) +->13.00% (1,300B) 0x........: my_malloc2 (thresholds.c:28) +| ->13.00% (1,300B) in 3 places, all below massif's threshold (10.00%) | ->00.50% (50B) in 1+ places, all below ms_print's threshold (10.00%) Modified: branches/MASSIF2/massif/tests/thresholds_5_0.post.exp =================================================================== --- branches/MASSIF2/massif/tests/thresholds_5_0.post.exp 2007-10-18 02:19:43 UTC (rev 7019) +++ branches/MASSIF2/massif/tests/thresholds_5_0.post.exp 2007-10-18 02:21:35 UTC (rev 7020) @@ -44,18 +44,18 @@ 7 7,950 7,950 7,950 0 0 8 9,950 9,950 9,950 0 0 9 10,000 10,000 10,000 0 0 -100.00% (10000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->66.50% (6650B) 0x........: my_malloc1 (thresholds.c:23) -| ->60.00% (6000B) 0x........: a7550 (thresholds.c:38) -| | ->60.00% (6000B) 0x........: main (thresholds.c:52) +100.00% (10,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->66.50% (6,650B) 0x........: my_malloc1 (thresholds.c:23) +| ->60.00% (6,000B) 0x........: a7550 (thresholds.c:38) +| | ->60.00% (6,000B) 0x........: main (thresholds.c:52) | | | ->05.00% (500B) 0x........: main (thresholds.c:54) | | | ->01.50% (150B) in 2 places, all below massif's threshold (05.00%) | -->20.00% (2000B) 0x........: main (thresholds.c:55) +->20.00% (2,000B) 0x........: main (thresholds.c:55) | -->13.00% (1300B) 0x........: my_malloc2 (thresholds.c:28) +->13.00% (1,300B) 0x........: my_malloc2 (thresholds.c:28) | ->09.00% (900B) 0x........: a7550 (thresholds.c:39) | | ->09.00% (900B) 0x........: main (thresholds.c:52) | | Modified: branches/MASSIF2/massif/tests/thresholds_5_10.post.exp =================================================================== --- branches/MASSIF2/massif/tests/thresholds_5_10.post.exp 2007-10-18 02:19:43 UTC (rev 7019) +++ branches/MASSIF2/massif/tests/thresholds_5_10.post.exp 2007-10-18 02:21:35 UTC (rev 7020) @@ -44,17 +44,17 @@ 7 7,950 7,950 7,950 0 0 8 9,950 9,950 9,950 0 0 9 10,000 10,000 10,000 0 0 -100.00% (10000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. -->66.50% (6650B) 0x........: my_malloc1 (thresholds.c:23) -| ->60.00% (6000B) 0x........: a7550 (thresholds.c:38) -| | ->60.00% (6000B) 0x........: main (thresholds.c:52) +100.00% (10,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->66.50% (6,650B) 0x........: my_malloc1 (thresholds.c:23) +| ->60.00% (6,000B) 0x........: a7550 (thresholds.c:38) +| | ->60.00% (6,000B) 0x........: main (thresholds.c:52) | | | ->06.50% (650B) in 2+ places, all below ms_print's threshold (10.00%) | -->20.00% (2000B) 0x........: main (thresholds.c:55) +->20.00% (2,000B) 0x........: main (thresholds.c:55) | -->13.00% (1300B) 0x........: my_malloc2 (thresholds.c:28) -| ->13.00% (1300B) in 2+ places, all below ms_print's threshold (10.00%) +->13.00% (1,300B) 0x........: my_malloc2 (thresholds.c:28) +| ->13.00% (1,300B) in 2+ places, all below ms_print's threshold (10.00%) | ->00.50% (50B) in 1+ places, all below ms_print's threshold (10.00%) |
|
From: <sv...@va...> - 2007-10-18 02:19:44
|
Author: njn
Date: 2007-10-18 03:19:43 +0100 (Thu, 18 Oct 2007)
New Revision: 7019
Log:
Put commas in tree sizes.
Modified:
branches/MASSIF2/massif/ms_print
Modified: branches/MASSIF2/massif/ms_print
===================================================================
--- branches/MASSIF2/massif/ms_print 2007-10-18 02:19:19 UTC (rev 7018)
+++ branches/MASSIF2/massif/ms_print 2007-10-18 02:19:43 UTC (rev 7019)
@@ -30,8 +30,6 @@
use warnings;
use strict;
-# XXX: put commas in sizes in heap trees?
-
#----------------------------------------------------------------------------
# Global variables, main data structures
#----------------------------------------------------------------------------
@@ -209,7 +207,8 @@
# Nb: $details might have '%' in it, so don't embed directly in the
# format string.
printf(TMPFILE
- "$this_prefix$arrow%05.2f%% (${bytes}B)%s\n", $perc, $details);
+ "$this_prefix$arrow%05.2f%% (%sB)%s\n", $perc, commify($bytes),
+ $details);
}
# Now read all the children.
@@ -232,9 +231,9 @@
# the "in N places" line for them.
if ($n_insig_children > 0) {
$perc = safe_div_0(100 * $total_insig_children_szB, $mem_total_B);
- printf(TMPFILE "%s->%05.2f%% (%dB) in %d+ places, all below "
+ printf(TMPFILE "%s->%05.2f%% (%sB) in %d+ places, all below "
. "ms_print's threshold (%05.2f%%)\n",
- $this_prefix2, $perc, $total_insig_children_szB,
+ $this_prefix2, $perc, commify($total_insig_children_szB),
$n_insig_children, $threshold);
print(TMPFILE "$this_prefix2\n");
}
|
|
From: <sv...@va...> - 2007-10-18 02:19:19
|
Author: njn Date: 2007-10-18 03:19:19 +0100 (Thu, 18 Oct 2007) New Revision: 7018 Log: comment changes Modified: branches/MASSIF2/massif/ms_main.c Modified: branches/MASSIF2/massif/ms_main.c =================================================================== --- branches/MASSIF2/massif/ms_main.c 2007-10-18 02:13:36 UTC (rev 7017) +++ branches/MASSIF2/massif/ms_main.c 2007-10-18 02:19:19 UTC (rev 7018) @@ -107,35 +107,34 @@ // - get_XCon accounts for about 9% of konqueror startup time. Try keeping // XPt children sorted by 'ip' and use binary search in get_XCon. // -// Todo: -// - for regtests, need to filter out code addresses in *.post.* files -// - do snapshots on client requests +// Todo -- critical for release: +// - decide on a name! // - C++ tests -- for each of the allocators, and overloaded versions of // them (see 'init_alloc_fns'). -// - Add ability to draw multiple graphs, eg. heap-only, stack-only, total. -// Give each graph a title. (try to do it generically!) +// - do a graph-drawing test +// - write a good basic test that shows how the tool works, suitable for +// documentation +// - write documentation // - make file format more generic. Obstacles: // - unit prefixes are not generic // - preset column widths for stats are not generic // - preset column headers are not generic // - "Massif arguments:" line is not generic -// - do a graph-drawing test -// - write a good basic test that shows how the tool works, suitable for -// documentation // -// Possible ideas for the future: +// Todo -- nice, but less critical: +// - do snapshots on client requests +// - Add ability to draw multiple graphs, eg. heap-only, stack-only, total. +// Give each graph a title. (try to do it generically!) +// - allow truncation of long fnnames if the exact line number is +// identified? [hmm, could make getting the name of alloc-fns more +// difficult] [could dump full names to file, truncate in ms_print] +// +// Todo -- low priority: // - Consider 'instructions executed' as a time unit -- more regular than // ms, less artificial than B (bug #121629). // - In each XPt, record both bytes and the number of allocations, and // possibly the global number of allocations. // -// Dumping the results to file: -// - work out the file format (Josef wants Callgrind format, Donna wants -// XML, Nick wants something easy to read in Perl) -// - allow truncation of long fnnames if the exact line number is -// identified? [hmm, could make getting the name of alloc-fns more -// difficult] [could dump full names to file, truncate in ms_print] -// // Examine and fix bugs on bugzilla: // IGNORE: // 112163 nor MASSIF crashed with signal 7 (SIGBUS) after running 2 days |
|
From: Tom H. <th...@cy...> - 2007-10-18 02:15:32
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2007-10-18 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: <sv...@va...> - 2007-10-18 02:13:38
|
Author: njn
Date: 2007-10-18 03:13:36 +0100 (Thu, 18 Oct 2007)
New Revision: 7017
Log:
- Filter out code addresses from 'post' outputs, so they'll work on other
machines.
- Filter out non-Massif output from peak2.stderr.out.
Modified:
branches/MASSIF2/massif/tests/alloc-fns-A.post.exp
branches/MASSIF2/massif/tests/alloc-fns-A.vgtest
branches/MASSIF2/massif/tests/alloc-fns-B.post.exp
branches/MASSIF2/massif/tests/alloc-fns-B.vgtest
branches/MASSIF2/massif/tests/basic.post.exp
branches/MASSIF2/massif/tests/basic.vgtest
branches/MASSIF2/massif/tests/big-alloc.post.exp
branches/MASSIF2/massif/tests/big-alloc.vgtest
branches/MASSIF2/massif/tests/custom_alloc.post.exp
branches/MASSIF2/massif/tests/custom_alloc.vgtest
branches/MASSIF2/massif/tests/deep-A.post.exp
branches/MASSIF2/massif/tests/deep-A.vgtest
branches/MASSIF2/massif/tests/deep-B.post.exp
branches/MASSIF2/massif/tests/deep-B.vgtest
branches/MASSIF2/massif/tests/deep-C.post.exp
branches/MASSIF2/massif/tests/deep-C.vgtest
branches/MASSIF2/massif/tests/deep-D.post.exp
branches/MASSIF2/massif/tests/deep-D.vgtest
branches/MASSIF2/massif/tests/ignoring.post.exp
branches/MASSIF2/massif/tests/ignoring.vgtest
branches/MASSIF2/massif/tests/insig.post.exp
branches/MASSIF2/massif/tests/insig.vgtest
branches/MASSIF2/massif/tests/long-time.post.exp
branches/MASSIF2/massif/tests/long-time.vgtest
branches/MASSIF2/massif/tests/no-stack-no-heap.vgtest
branches/MASSIF2/massif/tests/null.vgtest
branches/MASSIF2/massif/tests/one.vgtest
branches/MASSIF2/massif/tests/peak.post.exp
branches/MASSIF2/massif/tests/peak.vgtest
branches/MASSIF2/massif/tests/peak2.post.exp
branches/MASSIF2/massif/tests/peak2.vgtest
branches/MASSIF2/massif/tests/realloc.post.exp
branches/MASSIF2/massif/tests/realloc.vgtest
branches/MASSIF2/massif/tests/thresholds_0_0.post.exp
branches/MASSIF2/massif/tests/thresholds_0_0.vgtest
branches/MASSIF2/massif/tests/thresholds_0_10.post.exp
branches/MASSIF2/massif/tests/thresholds_0_10.vgtest
branches/MASSIF2/massif/tests/thresholds_10_0.post.exp
branches/MASSIF2/massif/tests/thresholds_10_0.vgtest
branches/MASSIF2/massif/tests/thresholds_10_10.post.exp
branches/MASSIF2/massif/tests/thresholds_10_10.vgtest
branches/MASSIF2/massif/tests/thresholds_5_0.post.exp
branches/MASSIF2/massif/tests/thresholds_5_0.vgtest
branches/MASSIF2/massif/tests/thresholds_5_10.post.exp
branches/MASSIF2/massif/tests/thresholds_5_10.vgtest
branches/MASSIF2/massif/tests/zero1.vgtest
branches/MASSIF2/massif/tests/zero2.vgtest
Modified: branches/MASSIF2/massif/tests/alloc-fns-A.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/alloc-fns-A.post.exp 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/alloc-fns-A.post.exp 2007-10-18 02:13:36 UTC (rev 7017)
@@ -45,37 +45,37 @@
8 800 800 800 0 0
9 900 900 900 0 0
100.00% (900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->44.44% (400B) 0x8048498: d4 (alloc-fns.c:18)
-| ->33.33% (300B) 0x80484AE: d3 (alloc-fns.c:19)
-| | ->22.22% (200B) 0x80484C4: d2 (alloc-fns.c:20)
-| | | ->11.11% (100B) 0x80484DA: d1 (alloc-fns.c:21)
-| | | | ->11.11% (100B) 0x8048546: main (alloc-fns.c:30)
+->44.44% (400B) 0x........: d4 (alloc-fns.c:18)
+| ->33.33% (300B) 0x........: d3 (alloc-fns.c:19)
+| | ->22.22% (200B) 0x........: d2 (alloc-fns.c:20)
+| | | ->11.11% (100B) 0x........: d1 (alloc-fns.c:21)
+| | | | ->11.11% (100B) 0x........: main (alloc-fns.c:30)
| | | |
-| | | ->11.11% (100B) 0x8048553: main (alloc-fns.c:31)
+| | | ->11.11% (100B) 0x........: main (alloc-fns.c:31)
| | |
-| | ->11.11% (100B) 0x8048560: main (alloc-fns.c:32)
+| | ->11.11% (100B) 0x........: main (alloc-fns.c:32)
| |
-| ->11.11% (100B) 0x804856D: main (alloc-fns.c:33)
+| ->11.11% (100B) 0x........: main (alloc-fns.c:33)
|
-->33.33% (300B) 0x804838D: a4 (alloc-fns.c:3)
-| ->33.33% (300B) 0x80483A3: a3 (alloc-fns.c:4)
-| ->33.33% (300B) 0x80483B9: a2 (alloc-fns.c:5)
-| ->33.33% (300B) 0x80483CF: a1 (alloc-fns.c:6)
-| ->11.11% (100B) 0x8048505: main (alloc-fns.c:25)
+->33.33% (300B) 0x........: a4 (alloc-fns.c:3)
+| ->33.33% (300B) 0x........: a3 (alloc-fns.c:4)
+| ->33.33% (300B) 0x........: a2 (alloc-fns.c:5)
+| ->33.33% (300B) 0x........: a1 (alloc-fns.c:6)
+| ->11.11% (100B) 0x........: main (alloc-fns.c:25)
| |
-| ->11.11% (100B) 0x8048512: main (alloc-fns.c:26)
+| ->11.11% (100B) 0x........: main (alloc-fns.c:26)
| |
-| ->11.11% (100B) 0x804851F: main (alloc-fns.c:27)
+| ->11.11% (100B) 0x........: main (alloc-fns.c:27)
|
-->11.11% (100B) 0x80483E6: b4 (alloc-fns.c:8)
-| ->11.11% (100B) 0x80483FC: b3 (alloc-fns.c:9)
-| ->11.11% (100B) 0x8048412: b2 (alloc-fns.c:10)
-| ->11.11% (100B) 0x8048428: b1 (alloc-fns.c:11)
-| ->11.11% (100B) 0x804852C: main (alloc-fns.c:28)
+->11.11% (100B) 0x........: b4 (alloc-fns.c:8)
+| ->11.11% (100B) 0x........: b3 (alloc-fns.c:9)
+| ->11.11% (100B) 0x........: b2 (alloc-fns.c:10)
+| ->11.11% (100B) 0x........: b1 (alloc-fns.c:11)
+| ->11.11% (100B) 0x........: main (alloc-fns.c:28)
|
-->11.11% (100B) 0x804843F: c4 (alloc-fns.c:13)
- ->11.11% (100B) 0x8048455: c3 (alloc-fns.c:14)
- ->11.11% (100B) 0x804846B: c2 (alloc-fns.c:15)
- ->11.11% (100B) 0x8048481: c1 (alloc-fns.c:16)
- ->11.11% (100B) 0x8048539: main (alloc-fns.c:29)
+->11.11% (100B) 0x........: c4 (alloc-fns.c:13)
+ ->11.11% (100B) 0x........: c3 (alloc-fns.c:14)
+ ->11.11% (100B) 0x........: c2 (alloc-fns.c:15)
+ ->11.11% (100B) 0x........: c1 (alloc-fns.c:16)
+ ->11.11% (100B) 0x........: main (alloc-fns.c:29)
Modified: branches/MASSIF2/massif/tests/alloc-fns-A.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/alloc-fns-A.vgtest 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/alloc-fns-A.vgtest 2007-10-18 02:13:36 UTC (rev 7017)
@@ -1,4 +1,4 @@
prog: alloc-fns
vgopts: --stacks=no --time-unit=B --heap-admin=0
-post: perl ../../massif/ms_print massif.out
+post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/alloc-fns-B.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/alloc-fns-B.post.exp 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/alloc-fns-B.post.exp 2007-10-18 02:13:36 UTC (rev 7017)
@@ -45,27 +45,27 @@
8 800 800 800 0 0
9 900 900 900 0 0
100.00% (900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->33.33% (300B) 0x80483A3: a3 (alloc-fns.c:4)
-| ->33.33% (300B) 0x80483B9: a2 (alloc-fns.c:5)
-| ->33.33% (300B) 0x80483CF: a1 (alloc-fns.c:6)
-| ->11.11% (100B) 0x8048505: main (alloc-fns.c:25)
+->33.33% (300B) 0x........: a3 (alloc-fns.c:4)
+| ->33.33% (300B) 0x........: a2 (alloc-fns.c:5)
+| ->33.33% (300B) 0x........: a1 (alloc-fns.c:6)
+| ->11.11% (100B) 0x........: main (alloc-fns.c:25)
| |
-| ->11.11% (100B) 0x8048512: main (alloc-fns.c:26)
+| ->11.11% (100B) 0x........: main (alloc-fns.c:26)
| |
-| ->11.11% (100B) 0x804851F: main (alloc-fns.c:27)
+| ->11.11% (100B) 0x........: main (alloc-fns.c:27)
|
-->11.11% (100B) 0x8048412: b2 (alloc-fns.c:10)
-| ->11.11% (100B) 0x8048428: b1 (alloc-fns.c:11)
-| ->11.11% (100B) 0x804852C: main (alloc-fns.c:28)
+->11.11% (100B) 0x........: b2 (alloc-fns.c:10)
+| ->11.11% (100B) 0x........: b1 (alloc-fns.c:11)
+| ->11.11% (100B) 0x........: main (alloc-fns.c:28)
|
-->11.11% (100B) 0x8048481: c1 (alloc-fns.c:16)
-| ->11.11% (100B) 0x8048539: main (alloc-fns.c:29)
+->11.11% (100B) 0x........: c1 (alloc-fns.c:16)
+| ->11.11% (100B) 0x........: main (alloc-fns.c:29)
|
-->11.11% (100B) 0x8048546: main (alloc-fns.c:30)
+->11.11% (100B) 0x........: main (alloc-fns.c:30)
|
-->11.11% (100B) 0x8048553: main (alloc-fns.c:31)
+->11.11% (100B) 0x........: main (alloc-fns.c:31)
|
-->11.11% (100B) 0x8048560: main (alloc-fns.c:32)
+->11.11% (100B) 0x........: main (alloc-fns.c:32)
|
-->11.11% (100B) 0x804856D: main (alloc-fns.c:33)
+->11.11% (100B) 0x........: main (alloc-fns.c:33)
Modified: branches/MASSIF2/massif/tests/alloc-fns-B.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/alloc-fns-B.vgtest 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/alloc-fns-B.vgtest 2007-10-18 02:13:36 UTC (rev 7017)
@@ -1,4 +1,4 @@
prog: alloc-fns
vgopts: --stacks=no --time-unit=B --heap-admin=0 --alloc-fn=a4 --alloc-fn=b4 --alloc-fn=b3 --alloc-fn=c4 --alloc-fn=c3 --alloc-fn=c2 --alloc-fn=d4 --alloc-fn=d3 --alloc-fn=d2 --alloc-fn=d1
-post: perl ../../massif/ms_print massif.out
+post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/basic.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/basic.post.exp 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/basic.post.exp 2007-10-18 02:13:36 UTC (rev 7017)
@@ -45,7 +45,7 @@
8 864 864 800 64 0
9 972 972 900 72 0
92.59% (900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.59% (900B) 0x80483E5: main (basic.c:14)
+->92.59% (900B) 0x........: main (basic.c:14)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
@@ -61,7 +61,7 @@
18 1,944 1,944 1,800 144 0
19 2,052 2,052 1,900 152 0
92.59% (1900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.59% (1900B) 0x80483E5: main (basic.c:14)
+->92.59% (1900B) 0x........: main (basic.c:14)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
@@ -77,7 +77,7 @@
28 3,024 3,024 2,800 224 0
29 3,132 3,132 2,900 232 0
92.59% (2900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.59% (2900B) 0x80483E5: main (basic.c:14)
+->92.59% (2900B) 0x........: main (basic.c:14)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
@@ -91,7 +91,7 @@
36 3,888 3,888 3,600 288 0
37 3,888 3,888 3,600 288 0
92.59% (3600B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.59% (3600B) 0x80483E5: main (basic.c:14)
+->92.59% (3600B) 0x........: main (basic.c:14)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
@@ -107,7 +107,7 @@
46 4,860 2,916 2,700 216 0
47 4,968 2,808 2,600 208 0
92.59% (2600B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.59% (2600B) 0x80483E5: main (basic.c:14)
+->92.59% (2600B) 0x........: main (basic.c:14)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
@@ -123,7 +123,7 @@
56 5,940 1,836 1,700 136 0
57 6,048 1,728 1,600 128 0
92.59% (1600B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.59% (1600B) 0x80483E5: main (basic.c:14)
+->92.59% (1600B) 0x........: main (basic.c:14)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
@@ -139,7 +139,7 @@
66 7,020 756 700 56 0
67 7,128 648 600 48 0
92.59% (600B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.59% (600B) 0x80483E5: main (basic.c:14)
+->92.59% (600B) 0x........: main (basic.c:14)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
Modified: branches/MASSIF2/massif/tests/basic.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/basic.vgtest 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/basic.vgtest 2007-10-18 02:13:36 UTC (rev 7017)
@@ -1,4 +1,4 @@
prog: basic
vgopts: --stacks=no --time-unit=B
-post: perl ../../massif/ms_print massif.out
+post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/big-alloc.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/big-alloc.post.exp 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/big-alloc.post.exp 2007-10-18 02:13:36 UTC (rev 7017)
@@ -45,7 +45,7 @@
8 83,886,144 83,886,144 83,886,080 64 0
9 94,371,912 94,371,912 94,371,840 72 0
100.00% (94371840B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->100.00% (94371840B) 0x80483AD: main (big-alloc.c:13)
+->100.00% (94371840B) 0x........: main (big-alloc.c:13)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
Modified: branches/MASSIF2/massif/tests/big-alloc.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/big-alloc.vgtest 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/big-alloc.vgtest 2007-10-18 02:13:36 UTC (rev 7017)
@@ -1,4 +1,4 @@
prog: big-alloc
vgopts: --stacks=no --time-unit=B
-post: perl ../../massif/ms_print massif.out
+post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/custom_alloc.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/custom_alloc.post.exp 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/custom_alloc.post.exp 2007-10-18 02:13:36 UTC (rev 7017)
@@ -38,8 +38,8 @@
1 108 108 100 8 0
2 108 108 100 8 0
92.59% (100B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.59% (100B) 0x80485A9: custom_alloc (custom_alloc.c:41)
- ->92.59% (100B) 0x804862D: main (custom_alloc.c:60)
+->92.59% (100B) 0x........: custom_alloc (custom_alloc.c:41)
+ ->92.59% (100B) 0x........: main (custom_alloc.c:60)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
@@ -48,8 +48,8 @@
4 424 208 200 8 0
5 424 208 200 8 0
96.15% (200B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->96.15% (200B) 0x80485A9: custom_alloc (custom_alloc.c:41)
- ->96.15% (200B) 0x804864B: main (custom_alloc.c:63)
+->96.15% (200B) 0x........: custom_alloc (custom_alloc.c:41)
+ ->96.15% (200B) 0x........: main (custom_alloc.c:63)
|
->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
Modified: branches/MASSIF2/massif/tests/custom_alloc.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/custom_alloc.vgtest 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/custom_alloc.vgtest 2007-10-18 02:13:36 UTC (rev 7017)
@@ -1,4 +1,4 @@
prog: custom_alloc
vgopts: --stacks=no --time-unit=B
-post: perl ../../massif/ms_print massif.out
+post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/deep-A.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/deep-A.post.exp 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/deep-A.post.exp 2007-10-18 02:13:36 UTC (rev 7017)
@@ -45,14 +45,14 @@
8 864 864 800 64 0
9 972 972 900 72 0
92.59% (900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.59% (900B) 0x804838D: a12 (deep.c:16)
- ->92.59% (900B) 0x80483A3: a11 (deep.c:17)
- ->92.59% (900B) 0x80483B9: a10 (deep.c:18)
- ->92.59% (900B) 0x80483CF: a9 (deep.c:19)
- ->92.59% (900B) 0x80483E5: a8 (deep.c:20)
- ->92.59% (900B) 0x80483FB: a7 (deep.c:21)
- ->92.59% (900B) 0x8048411: a6 (deep.c:22)
- ->92.59% (900B) 0x8048427: a5 (deep.c:23)
+->92.59% (900B) 0x........: a12 (deep.c:16)
+ ->92.59% (900B) 0x........: a11 (deep.c:17)
+ ->92.59% (900B) 0x........: a10 (deep.c:18)
+ ->92.59% (900B) 0x........: a9 (deep.c:19)
+ ->92.59% (900B) 0x........: a8 (deep.c:20)
+ ->92.59% (900B) 0x........: a7 (deep.c:21)
+ ->92.59% (900B) 0x........: a6 (deep.c:22)
+ ->92.59% (900B) 0x........: a5 (deep.c:23)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
Modified: branches/MASSIF2/massif/tests/deep-A.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/deep-A.vgtest 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/deep-A.vgtest 2007-10-18 02:13:36 UTC (rev 7017)
@@ -1,4 +1,4 @@
prog: deep
vgopts: --stacks=no --time-unit=B
-post: perl ../../massif/ms_print massif.out
+post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/deep-B.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/deep-B.post.exp 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/deep-B.post.exp 2007-10-18 02:13:36 UTC (rev 7017)
@@ -45,12 +45,12 @@
8 864 864 800 64 0
9 972 972 900 72 0
92.59% (900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.59% (900B) 0x8048427: a5 (deep.c:23)
- ->92.59% (900B) 0x804843D: a4 (deep.c:24)
- ->92.59% (900B) 0x8048453: a3 (deep.c:25)
- ->92.59% (900B) 0x8048469: a2 (deep.c:26)
- ->92.59% (900B) 0x804847F: a1 (deep.c:27)
- ->92.59% (900B) 0x80484B3: main (deep.c:35)
+->92.59% (900B) 0x........: a5 (deep.c:23)
+ ->92.59% (900B) 0x........: a4 (deep.c:24)
+ ->92.59% (900B) 0x........: a3 (deep.c:25)
+ ->92.59% (900B) 0x........: a2 (deep.c:26)
+ ->92.59% (900B) 0x........: a1 (deep.c:27)
+ ->92.59% (900B) 0x........: main (deep.c:35)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
Modified: branches/MASSIF2/massif/tests/deep-B.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/deep-B.vgtest 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/deep-B.vgtest 2007-10-18 02:13:36 UTC (rev 7017)
@@ -1,5 +1,5 @@
prog: deep
vgopts: --stacks=no --time-unit=B --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 -v -v
stderr_filter: filter_verbose
-post: perl ../../massif/ms_print massif.out
+post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/deep-C.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/deep-C.post.exp 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/deep-C.post.exp 2007-10-18 02:13:36 UTC (rev 7017)
@@ -45,9 +45,9 @@
8 864 864 800 64 0
9 972 972 900 72 0
92.59% (900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.59% (900B) 0x8048469: a2 (deep.c:26)
- ->92.59% (900B) 0x804847F: a1 (deep.c:27)
- ->92.59% (900B) 0x80484B3: main (deep.c:35)
+->92.59% (900B) 0x........: a2 (deep.c:26)
+ ->92.59% (900B) 0x........: a1 (deep.c:27)
+ ->92.59% (900B) 0x........: main (deep.c:35)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
Modified: branches/MASSIF2/massif/tests/deep-C.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/deep-C.vgtest 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/deep-C.vgtest 2007-10-18 02:13:36 UTC (rev 7017)
@@ -1,5 +1,5 @@
prog: deep
vgopts: --stacks=no --time-unit=B --alloc-fn=a3 --alloc-fn=a4 --alloc-fn=a5 --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 -v -v
stderr_filter: filter_verbose
-post: perl ../../massif/ms_print massif.out
+post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/deep-D.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/deep-D.post.exp 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/deep-D.post.exp 2007-10-18 02:13:36 UTC (rev 7017)
@@ -45,7 +45,7 @@
8 864 864 800 64 0
9 972 972 900 72 0
92.59% (900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.59% (900B) 0x26ED5E: (below main) (in /lib/libc-2.3.5.so)
+->92.59% (900B) 0x........: (below main) (in /lib/libc-2.3.5.so)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
Modified: branches/MASSIF2/massif/tests/deep-D.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/deep-D.vgtest 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/deep-D.vgtest 2007-10-18 02:13:36 UTC (rev 7017)
@@ -1,4 +1,4 @@
prog: deep
vgopts: --stacks=no --time-unit=B --alloc-fn=a1 --alloc-fn=a2 --alloc-fn=a3 --alloc-fn=a4 --alloc-fn=a5 --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 --alloc-fn=main --depth=20
-post: perl ../../massif/ms_print massif.out
+post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/ignoring.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/ignoring.post.exp 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/ignoring.post.exp 2007-10-18 02:13:36 UTC (rev 7017)
@@ -37,7 +37,7 @@
0 0 0 0 0 0
1 1,008 1,008 1,000 8 0
99.21% (1000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->99.21% (1000B) 0x80483D8: main (ignoring.c:13)
+->99.21% (1000B) 0x........: main (ignoring.c:13)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
@@ -45,7 +45,7 @@
2 5,104 508 500 8 0
3 7,168 508 500 8 0
98.43% (500B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->98.43% (500B) 0x80483F9: main (ignoring.c:17)
+->98.43% (500B) 0x........: main (ignoring.c:17)
|
->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -58,7 +58,7 @@
7 15,424 508 500 8 0
8 17,488 508 500 8 0
98.43% (500B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->98.43% (500B) 0x80483F9: main (ignoring.c:17)
+->98.43% (500B) 0x........: main (ignoring.c:17)
|
->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -84,9 +84,9 @@
25 53,866 766 750 16 0
26 55,930 766 750 16 0
97.91% (750B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->65.27% (500B) 0x80483F9: main (ignoring.c:17)
+->65.27% (500B) 0x........: main (ignoring.c:17)
|
-->32.64% (250B) 0x8048412: main (ignoring.c:26)
+->32.64% (250B) 0x........: main (ignoring.c:26)
|
->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -99,9 +99,9 @@
30 64,186 766 750 16 0
31 66,250 766 750 16 0
97.91% (750B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->65.27% (500B) 0x80483F9: main (ignoring.c:17)
+->65.27% (500B) 0x........: main (ignoring.c:17)
|
-->32.64% (250B) 0x8048412: main (ignoring.c:26)
+->32.64% (250B) 0x........: main (ignoring.c:26)
|
->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -114,9 +114,9 @@
35 74,506 766 750 16 0
36 76,570 766 750 16 0
97.91% (750B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->65.27% (500B) 0x80483F9: main (ignoring.c:17)
+->65.27% (500B) 0x........: main (ignoring.c:17)
|
-->32.64% (250B) 0x8048412: main (ignoring.c:26)
+->32.64% (250B) 0x........: main (ignoring.c:26)
|
->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -129,9 +129,9 @@
40 84,826 766 750 16 0
41 86,890 766 750 16 0
97.91% (750B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->65.27% (500B) 0x80483F9: main (ignoring.c:17)
+->65.27% (500B) 0x........: main (ignoring.c:17)
|
-->32.64% (250B) 0x8048412: main (ignoring.c:26)
+->32.64% (250B) 0x........: main (ignoring.c:26)
|
->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -144,9 +144,9 @@
45 95,146 766 750 16 0
46 97,210 766 750 16 0
97.91% (750B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->65.27% (500B) 0x80483F9: main (ignoring.c:17)
+->65.27% (500B) 0x........: main (ignoring.c:17)
|
-->32.64% (250B) 0x8048412: main (ignoring.c:26)
+->32.64% (250B) 0x........: main (ignoring.c:26)
|
->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -160,9 +160,9 @@
51 108,562 766 750 16 0
52 110,626 766 750 16 0
97.91% (750B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->65.27% (500B) 0x80483F9: main (ignoring.c:17)
+->65.27% (500B) 0x........: main (ignoring.c:17)
|
-->32.64% (250B) 0x8048412: main (ignoring.c:26)
+->32.64% (250B) 0x........: main (ignoring.c:26)
|
->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -180,9 +180,9 @@
61 129,202 766 750 16 0
62 131,266 766 750 16 0
97.91% (750B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->65.27% (500B) 0x80483F9: main (ignoring.c:17)
+->65.27% (500B) 0x........: main (ignoring.c:17)
|
-->32.64% (250B) 0x8048412: main (ignoring.c:26)
+->32.64% (250B) 0x........: main (ignoring.c:26)
|
->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -200,9 +200,9 @@
71 149,842 766 750 16 0
72 151,906 766 750 16 0
97.91% (750B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->65.27% (500B) 0x80483F9: main (ignoring.c:17)
+->65.27% (500B) 0x........: main (ignoring.c:17)
|
-->32.64% (250B) 0x8048412: main (ignoring.c:26)
+->32.64% (250B) 0x........: main (ignoring.c:26)
|
->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -220,9 +220,9 @@
81 170,482 766 750 16 0
82 172,546 766 750 16 0
97.91% (750B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->65.27% (500B) 0x80483F9: main (ignoring.c:17)
+->65.27% (500B) 0x........: main (ignoring.c:17)
|
-->32.64% (250B) 0x8048412: main (ignoring.c:26)
+->32.64% (250B) 0x........: main (ignoring.c:26)
|
->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
Modified: branches/MASSIF2/massif/tests/ignoring.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/ignoring.vgtest 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/ignoring.vgtest 2007-10-18 02:13:36 UTC (rev 7017)
@@ -1,4 +1,4 @@
prog: ignoring
vgopts: --stacks=no --time-unit=B
-post: perl ../../massif/ms_print massif.out
+post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/insig.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/insig.post.exp 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/insig.post.exp 2007-10-18 02:13:36 UTC (rev 7017)
@@ -45,11 +45,11 @@
8 1,096 1,096 1,032 64 0
9 1,105 1,105 1,033 72 0
93.48% (1033B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->90.50% (1000B) 0x80483A4: main (insig.c:8)
+->90.50% (1000B) 0x........: main (insig.c:8)
|
-->01.36% (15B) 0x80483B1: main (insig.c:9)
+->01.36% (15B) 0x........: main (insig.c:9)
|
-->01.09% (12B) 0x80483BE: main (insig.c:10)
+->01.09% (12B) 0x........: main (insig.c:10)
|
->00.54% (6B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -67,13 +67,13 @@
18 1,186 1,186 1,042 144 0
19 1,195 1,195 1,043 152 0
87.28% (1043B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->83.68% (1000B) 0x80483A4: main (insig.c:8)
+->83.68% (1000B) 0x........: main (insig.c:8)
|
->01.34% (16B) in 16 places, all below massif's threshold (01.00%)
|
-->01.26% (15B) 0x80483B1: main (insig.c:9)
+->01.26% (15B) 0x........: main (insig.c:9)
|
-->01.00% (12B) 0x80483BE: main (insig.c:10)
+->01.00% (12B) 0x........: main (insig.c:10)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
Modified: branches/MASSIF2/massif/tests/insig.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/insig.vgtest 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/insig.vgtest 2007-10-18 02:13:36 UTC (rev 7017)
@@ -1,4 +1,4 @@
prog: insig
vgopts: --stacks=no --time-unit=B
-post: perl ../../massif/ms_print massif.out
+post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/long-time.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/long-time.post.exp 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/long-time.post.exp 2007-10-18 02:13:36 UTC (rev 7017)
@@ -37,9 +37,9 @@
0 0 0 0 0 0
1 3,900,000 2,300,000 2,300,000 0 0
100.00% (2300000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->52.17% (1200000B) 0x8048418: main (long-time.c:15)
+->52.17% (1200000B) 0x........: main (long-time.c:15)
|
-->47.83% (1100000B) 0x80483F7: main (long-time.c:13)
+->47.83% (1100000B) 0x........: main (long-time.c:13)
|
->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -53,7 +53,7 @@
6 863,100,000 900,000 900,000 0 0
7 991,100,000 900,000 900,000 0 0
100.00% (900000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->100.00% (900000B) 0x8048447: main (long-time.c:18)
+->100.00% (900000B) 0x........: main (long-time.c:18)
|
->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -104,9 +104,9 @@
37 4,854,200,000 0 0 0 0
38 4,979,900,000 2,300,000 2,300,000 0 0
100.00% (2300000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->52.17% (1200000B) 0x8048418: main (long-time.c:15)
+->52.17% (1200000B) 0x........: main (long-time.c:15)
|
-->47.83% (1100000B) 0x80483F7: main (long-time.c:13)
+->47.83% (1100000B) 0x........: main (long-time.c:13)
|
->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -119,9 +119,9 @@
42 5,483,900,000 2,300,000 2,300,000 0 0
43 5,609,900,000 1,900,000 1,900,000 0 0
100.00% (1900000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->57.89% (1100000B) 0x80483F7: main (long-time.c:13)
+->57.89% (1100000B) 0x........: main (long-time.c:13)
|
-->42.11% (800000B) 0x80483E4: main (long-time.c:12)
+->42.11% (800000B) 0x........: main (long-time.c:12)
|
->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -148,7 +148,7 @@
55 7,184,800,000 800,000 800,000 0 0
56 7,311,100,000 900,000 900,000 0 0
100.00% (900000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->100.00% (900000B) 0x8048447: main (long-time.c:18)
+->100.00% (900000B) 0x........: main (long-time.c:18)
|
->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -166,7 +166,7 @@
65 8,445,000,000 1,200,000 1,200,000 0 0
66 8,570,700,000 1,100,000 1,100,000 0 0
100.00% (1100000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->100.00% (1100000B) 0x80483F7: main (long-time.c:13)
+->100.00% (1100000B) 0x........: main (long-time.c:13)
|
->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -184,7 +184,7 @@
75 9,704,800,000 800,000 800,000 0 0
76 9,831,100,000 900,000 900,000 0 0
100.00% (900000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->100.00% (900000B) 0x8048447: main (long-time.c:18)
+->100.00% (900000B) 0x........: main (long-time.c:18)
|
->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -202,7 +202,7 @@
85 10,965,000,000 1,200,000 1,200,000 0 0
86 11,090,700,000 1,100,000 1,100,000 0 0
100.00% (1100000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->100.00% (1100000B) 0x80483F7: main (long-time.c:13)
+->100.00% (1100000B) 0x........: main (long-time.c:13)
|
->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
Modified: branches/MASSIF2/massif/tests/long-time.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/long-time.vgtest 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/long-time.vgtest 2007-10-18 02:13:36 UTC (rev 7017)
@@ -1,4 +1,4 @@
prog: long-time
vgopts: --stacks=no --time-unit=B --heap-admin=0
-post: perl ../../massif/ms_print massif.out
+post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/no-stack-no-heap.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/no-stack-no-heap.vgtest 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/no-stack-no-heap.vgtest 2007-10-18 02:13:36 UTC (rev 7017)
@@ -1,4 +1,4 @@
prog: basic
vgopts: --stacks=no --heap=no --time-unit=B
-post: perl ../../massif/ms_print massif.out
+post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/null.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/null.vgtest 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/null.vgtest 2007-10-18 02:13:36 UTC (rev 7017)
@@ -1,4 +1,4 @@
prog: null
vgopts: --stacks=no --time-unit=B
-post: perl ../../massif/ms_print massif.out
+post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/one.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/one.vgtest 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/one.vgtest 2007-10-18 02:13:36 UTC (rev 7017)
@@ -1,4 +1,4 @@
prog: one
vgopts: --stacks=no --time-unit=B --heap-admin=0
-post: perl ../../massif/ms_print massif.out
+post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/peak.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/peak.post.exp 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/peak.post.exp 2007-10-18 02:13:36 UTC (rev 7017)
@@ -39,7 +39,7 @@
2 117 117 101 16 0
3 117 117 101 16 0
86.32% (101B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->85.47% (100B) 0x80483DE: main (peak.c:8)
+->85.47% (100B) 0x........: main (peak.c:8)
|
->00.85% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -51,7 +51,7 @@
6 243 225 201 24 0
7 243 225 201 24 0
89.33% (201B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->88.89% (200B) 0x80483DE: main (peak.c:8)
+->88.89% (200B) 0x........: main (peak.c:8)
|
->00.44% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -63,7 +63,7 @@
10 369 333 301 32 0
11 369 333 301 32 0
90.39% (301B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->90.09% (300B) 0x80483DE: main (peak.c:8)
+->90.09% (300B) 0x........: main (peak.c:8)
|
->00.30% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -75,7 +75,7 @@
14 495 441 401 40 0
15 495 441 401 40 0
90.93% (401B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->90.70% (400B) 0x80483DE: main (peak.c:8)
+->90.70% (400B) 0x........: main (peak.c:8)
|
->00.23% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -87,7 +87,7 @@
18 621 549 501 48 0
19 621 549 501 48 0
91.26% (501B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->91.07% (500B) 0x80483DE: main (peak.c:8)
+->91.07% (500B) 0x........: main (peak.c:8)
|
->00.18% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -99,7 +99,7 @@
22 747 657 601 56 0
23 747 657 601 56 0
91.48% (601B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->91.32% (600B) 0x80483DE: main (peak.c:8)
+->91.32% (600B) 0x........: main (peak.c:8)
|
->00.15% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -111,7 +111,7 @@
26 873 765 701 64 0
27 873 765 701 64 0
91.63% (701B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->91.50% (700B) 0x80483DE: main (peak.c:8)
+->91.50% (700B) 0x........: main (peak.c:8)
|
->00.13% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -123,7 +123,7 @@
30 999 873 801 72 0
31 999 873 801 72 0
91.75% (801B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->91.64% (800B) 0x80483DE: main (peak.c:8)
+->91.64% (800B) 0x........: main (peak.c:8)
|
->00.11% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -135,7 +135,7 @@
34 1,125 981 901 80 0
35 1,125 981 901 80 0
91.85% (901B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->91.74% (900B) 0x80483DE: main (peak.c:8)
+->91.74% (900B) 0x........: main (peak.c:8)
|
->00.10% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -147,7 +147,7 @@
38 1,251 1,089 1,001 88 0
39 1,251 1,089 1,001 88 0
91.92% (1001B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->91.83% (1000B) 0x80483DE: main (peak.c:8)
+->91.83% (1000B) 0x........: main (peak.c:8)
|
->00.09% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -159,7 +159,7 @@
42 1,377 1,197 1,101 96 0
43 1,377 1,197 1,101 96 0
91.98% (1101B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->91.90% (1100B) 0x80483DE: main (peak.c:8)
+->91.90% (1100B) 0x........: main (peak.c:8)
|
->00.08% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -171,7 +171,7 @@
46 1,503 1,305 1,201 104 0
47 1,503 1,305 1,201 104 0
92.03% (1201B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->91.95% (1200B) 0x80483DE: main (peak.c:8)
+->91.95% (1200B) 0x........: main (peak.c:8)
|
->00.08% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -183,7 +183,7 @@
50 1,629 1,413 1,301 112 0
51 1,629 1,413 1,301 112 0
92.07% (1301B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.00% (1300B) 0x80483DE: main (peak.c:8)
+->92.00% (1300B) 0x........: main (peak.c:8)
|
->00.07% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -195,7 +195,7 @@
54 1,755 1,521 1,401 120 0
55 1,755 1,521 1,401 120 0
92.11% (1401B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.04% (1400B) 0x80483DE: main (peak.c:8)
+->92.04% (1400B) 0x........: main (peak.c:8)
|
->00.07% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -207,7 +207,7 @@
58 1,881 1,629 1,501 128 0
59 1,881 1,629 1,501 128 0
92.14% (1501B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.08% (1500B) 0x80483DE: main (peak.c:8)
+->92.08% (1500B) 0x........: main (peak.c:8)
|
->00.06% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -219,7 +219,7 @@
62 2,007 1,737 1,601 136 0
63 2,007 1,737 1,601 136 0
92.17% (1601B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.11% (1600B) 0x80483DE: main (peak.c:8)
+->92.11% (1600B) 0x........: main (peak.c:8)
|
->00.06% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -231,7 +231,7 @@
66 2,133 1,845 1,701 144 0
67 2,133 1,845 1,701 144 0
92.20% (1701B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.14% (1700B) 0x80483DE: main (peak.c:8)
+->92.14% (1700B) 0x........: main (peak.c:8)
|
->00.05% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -243,7 +243,7 @@
70 2,259 1,953 1,801 152 0
71 2,259 1,953 1,801 152 0
92.22% (1801B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.17% (1800B) 0x80483DE: main (peak.c:8)
+->92.17% (1800B) 0x........: main (peak.c:8)
|
->00.05% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -255,7 +255,7 @@
74 2,385 2,061 1,901 160 0
75 2,385 2,061 1,901 160 0
92.24% (1901B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.19% (1900B) 0x80483DE: main (peak.c:8)
+->92.19% (1900B) 0x........: main (peak.c:8)
|
->00.05% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -267,7 +267,7 @@
78 2,511 2,169 2,001 168 0
79 2,511 2,169 2,001 168 0
92.25% (2001B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.21% (2000B) 0x80483DE: main (peak.c:8)
+->92.21% (2000B) 0x........: main (peak.c:8)
|
->00.05% (1B) in 1+ places, all below ms_print's threshold (01.00%)
Modified: branches/MASSIF2/massif/tests/peak.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/peak.vgtest 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/peak.vgtest 2007-10-18 02:13:36 UTC (rev 7017)
@@ -1,4 +1,4 @@
prog: peak
vgopts: --stacks=no --time-unit=B --peak-inaccuracy=0
-post: perl ../../massif/ms_print massif.out
+post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/peak2.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/peak2.post.exp 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/peak2.post.exp 2007-10-18 02:13:36 UTC (rev 7017)
@@ -39,7 +39,7 @@
2 117 117 101 16 0
3 117 117 101 16 0
86.32% (101B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->85.47% (100B) 0x80483DE: main (peak.c:8)
+->85.47% (100B) 0x........: main (peak.c:8)
|
->00.85% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -51,7 +51,7 @@
6 243 225 201 24 0
7 243 225 201 24 0
89.33% (201B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->88.89% (200B) 0x80483DE: main (peak.c:8)
+->88.89% (200B) 0x........: main (peak.c:8)
|
->00.44% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -63,7 +63,7 @@
10 369 333 301 32 0
11 369 333 301 32 0
90.39% (301B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->90.09% (300B) 0x80483DE: main (peak.c:8)
+->90.09% (300B) 0x........: main (peak.c:8)
|
->00.30% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -75,7 +75,7 @@
14 495 441 401 40 0
15 495 441 401 40 0
90.93% (401B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->90.70% (400B) 0x80483DE: main (peak.c:8)
+->90.70% (400B) 0x........: main (peak.c:8)
|
->00.23% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -87,7 +87,7 @@
18 621 549 501 48 0
19 621 549 501 48 0
91.26% (501B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->91.07% (500B) 0x80483DE: main (peak.c:8)
+->91.07% (500B) 0x........: main (peak.c:8)
|
->00.18% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -99,7 +99,7 @@
22 747 657 601 56 0
23 747 657 601 56 0
91.48% (601B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->91.32% (600B) 0x80483DE: main (peak.c:8)
+->91.32% (600B) 0x........: main (peak.c:8)
|
->00.15% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -111,7 +111,7 @@
26 873 765 701 64 0
27 873 765 701 64 0
91.63% (701B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->91.50% (700B) 0x80483DE: main (peak.c:8)
+->91.50% (700B) 0x........: main (peak.c:8)
|
->00.13% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -123,7 +123,7 @@
30 999 873 801 72 0
31 999 873 801 72 0
91.75% (801B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->91.64% (800B) 0x80483DE: main (peak.c:8)
+->91.64% (800B) 0x........: main (peak.c:8)
|
->00.11% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -135,7 +135,7 @@
34 1,125 981 901 80 0
35 1,125 981 901 80 0
91.85% (901B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->91.74% (900B) 0x80483DE: main (peak.c:8)
+->91.74% (900B) 0x........: main (peak.c:8)
|
->00.10% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -147,7 +147,7 @@
38 1,251 1,089 1,001 88 0
39 1,251 1,089 1,001 88 0
91.92% (1001B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->91.83% (1000B) 0x80483DE: main (peak.c:8)
+->91.83% (1000B) 0x........: main (peak.c:8)
|
->00.09% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -162,7 +162,7 @@
45 1,503 1,305 1,201 104 0
46 1,503 1,305 1,201 104 0
92.03% (1201B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->91.95% (1200B) 0x80483DE: main (peak.c:8)
+->91.95% (1200B) 0x........: main (peak.c:8)
|
->00.08% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -177,7 +177,7 @@
52 1,755 1,521 1,401 120 0
53 1,755 1,521 1,401 120 0
92.11% (1401B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.04% (1400B) 0x80483DE: main (peak.c:8)
+->92.04% (1400B) 0x........: main (peak.c:8)
|
->00.07% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -192,7 +192,7 @@
59 2,007 1,737 1,601 136 0
60 2,007 1,737 1,601 136 0
92.17% (1601B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.11% (1600B) 0x80483DE: main (peak.c:8)
+->92.11% (1600B) 0x........: main (peak.c:8)
|
->00.06% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -207,7 +207,7 @@
66 2,259 1,953 1,801 152 0
67 2,259 1,953 1,801 152 0
92.22% (1801B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.17% (1800B) 0x80483DE: main (peak.c:8)
+->92.17% (1800B) 0x........: main (peak.c:8)
|
->00.05% (1B) in 1+ places, all below ms_print's threshold (01.00%)
@@ -222,7 +222,7 @@
73 2,511 2,169 2,001 168 0
74 2,511 2,169 2,001 168 0
92.25% (2001B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.21% (2000B) 0x80483DE: main (peak.c:8)
+->92.21% (2000B) 0x........: main (peak.c:8)
|
->00.05% (1B) in 1+ places, all below ms_print's threshold (01.00%)
Modified: branches/MASSIF2/massif/tests/peak2.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/peak2.vgtest 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/peak2.vgtest 2007-10-18 02:13:36 UTC (rev 7017)
@@ -1,4 +1,5 @@
prog: peak
vgopts: --stacks=no --time-unit=B -v -v --peak-inaccuracy=1000
-post: perl ../../massif/ms_print massif.out
+stderr_filter: filter_verbose
+post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/realloc.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/realloc.post.exp 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/realloc.post.exp 2007-10-18 02:13:36 UTC (rev 7017)
@@ -39,9 +39,9 @@
2 100 100 100 0 0
3 100 100 100 0 0
100.00% (100B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->100.00% (100B) 0x80483BA: main (realloc.c:8)
+->100.00% (100B) 0x........: main (realloc.c:8)
|
-->00.00% (0B) 0x80483A7: main (realloc.c:5)
+->00.00% (0B) 0x........: main (realloc.c:5)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
@@ -50,13 +50,13 @@
5 250 150 150 0 0
6 250 150 150 0 0
100.00% (150B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->100.00% (150B) 0x80483E3: main (realloc.c:12)
+->100.00% (150B) 0x........: main (realloc.c:12)
|
-->00.00% (0B) 0x80483A7: main (realloc.c:5)
+->00.00% (0B) 0x........: main (realloc.c:5)
|
-->00.00% (0B) 0x80483BA: main (realloc.c:8)
+->00.00% (0B) 0x........: main (realloc.c:8)
|
-->00.00% (0B) 0x80483CD: main (realloc.c:10)
+->00.00% (0B) 0x........: main (realloc.c:10)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
Modified: branches/MASSIF2/massif/tests/realloc.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/realloc.vgtest 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/realloc.vgtest 2007-10-18 02:13:36 UTC (rev 7017)
@@ -1,5 +1,5 @@
prog: realloc
vgopts: -v -v --stacks=no --heap-admin=0 --time-unit=B --threshold=0
stderr_filter: filter_verbose
-post: perl ../../massif/ms_print --threshold=0 massif.out
+post: perl ../../massif/ms_print --threshold=0 massif.out | ../../tests/filter_addresses
cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/thresholds_0_0.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/thresholds_0_0.post.exp 2007-10-18 02:00:19 UTC (rev 7016)
+++ branches/MASSIF2/massif/tests/thresholds_0_0.post.exp 2007-10-18 02:13:36 UTC (rev 7017)
@@ -45,30 +45,30 @@
8 9,950 9,950 9,950 0 0
9 10,000 10,000 10,000 0 0
100.00% (10000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->66.50% (6650B) 0x804838D: my_malloc1 (thresholds.c:23)
-| ->60.00% (6000B) 0x80483D3: a7550 (thresholds.c:38)
-| | ->60.00% (6000B) 0x8048448: main (thresholds.c:52)
+->66.50% (6650B) 0x........: my_malloc1 (thresholds.c:23)
+| ->60.00% (6000B) 0x........: a7550 (thresholds.c:38)
+| | ->60.00% (6000B) 0x........: main (thresholds.c:52)
| |
-| ->05.00% (500B) 0x804845A: main (thresholds.c:54)
+| ->05.00% (500B) 0x........: main (thresholds.c:54)
| |
-| ->01.00% (100B) 0x8048408: a450 (thresholds.c:45)
-| | ->01.00% (100B) 0x804844D: main (thresholds.c:53)
+| ->01.00% (100B) 0x........: a450 (thresholds.c:45)
+| | ->01.00% (100B) 0x........: main (thresholds.c:53)
| |
-| ->00.50% (50B) 0x8048422: a450 (thresholds.c:47)
-| ->00.50% (50B) 0x804844D: main (thresholds.c:53)
+| ->00.50% (50B) 0x........: a450 (thresholds.c:47)
+| ->00.50% (50B) 0x........: main (thresholds.c:53)
|
-->20.00% (2000B) 0x804846A: main (thresholds.c:55)
+->20.00% (2000B) 0x........: main (thresholds.c:55)
|
-->13.00% (1300B) 0x80483A4: my_malloc2 (thresholds.c:28)
-| ->09.00% (900B) 0x80483E3: a7550 (thresholds.c:39)
-| | ->09.00% (900B) 0x8048448: main (thresholds.c:52)
+->13.00% (1300B) 0x........: my_malloc2 (thresholds.c:28)
+| ->09.00% (900B) 0x........: a755...
[truncated message content] |
|
From: <sv...@va...> - 2007-10-18 02:00:19
|
Author: njn Date: 2007-10-18 03:00:19 +0100 (Thu, 18 Oct 2007) New Revision: 7016 Log: comment Modified: branches/MASSIF2/massif/ms_main.c Modified: branches/MASSIF2/massif/ms_main.c =================================================================== --- branches/MASSIF2/massif/ms_main.c 2007-10-17 22:29:08 UTC (rev 7015) +++ branches/MASSIF2/massif/ms_main.c 2007-10-18 02:00:19 UTC (rev 7016) @@ -61,7 +61,7 @@ // tinycc 0.49s ma: 7.6s (15.4x, -----) // many-xpts 0.04s ma: 1.9s (46.2x, -----) // -// Many many-xpts run for longer (r7001): +// Make many-xpts run for longer (r7001): // heap 0.59s ma:20.3s (34.5x, -----) // tinycc 0.49s ma: 7.6s (15.4x, -----) // many-xpts 0.13s ma: 2.8s (21.6x, -----) @@ -97,12 +97,16 @@ // // By default, only snapshot a peak if it's 1% larger than the previous peak, // rather than snapshotting every peak. Greatly reduces the number of peak -// snapshots taken for larger programs like konqueror. +// snapshots taken for larger programs like konqueror (r7013): // heap 0.53s ma:12.4s (23.5x, -----) // tinycc 0.46s ma: 4.9s (10.7x, -----) // many-xpts 0.08s ma: 2.0s (25.0x, -----) // konqueror 29.6s real 0:21.0s user // +// Performance todos: +// - get_XCon accounts for about 9% of konqueror startup time. Try keeping +// XPt children sorted by 'ip' and use binary search in get_XCon. +// // Todo: // - for regtests, need to filter out code addresses in *.post.* files // - do snapshots on client requests |
|
From: <js...@ac...> - 2007-10-18 00:17:57
|
Nightly build on g5 ( SuSE 10.1, ppc970 ) started at 2007-10-18 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) |