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
(12) |
|
2
(6) |
3
(13) |
4
(9) |
5
(6) |
6
(8) |
7
(5) |
8
(5) |
|
9
(15) |
10
(18) |
11
(18) |
12
(18) |
13
(7) |
14
(11) |
15
(6) |
|
16
(12) |
17
(28) |
18
(15) |
19
(12) |
20
(17) |
21
(23) |
22
(10) |
|
23
(9) |
24
(11) |
25
(7) |
26
(21) |
27
(12) |
28
(6) |
29
(6) |
|
30
(8) |
|
|
|
|
|
|
|
From: <sv...@va...> - 2007-09-21 23:54:19
|
Author: njn
Date: 2007-09-22 00:54:20 +0100 (Sat, 22 Sep 2007)
New Revision: 6897
Log:
Add --x and --y options to ms_print, to control how big the graph is
printed.
Modified:
branches/MASSIF2/massif/ms_print
Modified: branches/MASSIF2/massif/ms_print
===================================================================
--- branches/MASSIF2/massif/ms_print 2007-09-21 23:42:13 UTC (rev 6896)
+++ branches/MASSIF2/massif/ms_print 2007-09-21 23:54:20 UTC (rev 6897)
@@ -44,6 +44,10 @@
# bother showing it.
my $threshold = 1.0;
+# Graph x and y dimensions.
+my $graph_x = 72;
+my $graph_y = 20;
+
# Input file name
my $input_file = undef;
@@ -63,11 +67,10 @@
options for the user, with defaults in [ ], are:
-h --help show this message
-v --version show version
- --threshold=<n> significance threshold, in percent [$threshold]
+ --threshold=<n.n> significance threshold, in percent [$threshold]
+ --x=<n> graph width, in columns; min=4, max=1000 [72]
+ --y=<n> graph height, in rows; min=4, max=1000 [20]
- You must use either --<pid> or specify exactly one profile file
- so that ms_print knows what file to read profile data from.
-
ms_print is Copyright (C) 2007-2007 Nicholas Nethercote.
and licensed under the GNU General Public License, version 2.
Bug reports, feedback, admiration, abuse, etc, to: njn\@valgrind.org.
@@ -113,6 +116,14 @@
$threshold = $1;
($1 >= 0 && $1 <= 100) or die($usage);
+ } elsif ($arg =~ /^--x=(\d+)$/) {
+ $graph_x = $1;
+ (4 <= $graph_x && $graph_x <= 1000) or die($usage);
+
+ } elsif ($arg =~ /^--y=(\d+)$/) {
+ $graph_y = $1;
+ (4 <= $graph_y && $graph_y <= 1000) or die($usage);
+
} else { # -h and --help fall under this case
die($usage);
}
@@ -378,11 +389,9 @@
# Setup for graph.
#-------------------------------------------------------------------------
# The ASCII graph.
- # Row 0 ([0..GRAPH_X][0]) is the X-axis.
- # Column 0 ([0][0..GRAPH_Y]) is the Y-axis.
- # The rest ([1][1]..[GRAPH_X][GRAPH_Y]) is the usable graph area.
- my $GRAPH_X = 72; # XXX: Make these command-line options, with
- my $GRAPH_Y = 20; # sensible min/max values (eg. 10--1000)
+ # Row 0 ([0..graph_x][0]) is the X-axis.
+ # Column 0 ([0][0..graph_y]) is the Y-axis.
+ # The rest ([1][1]..[graph_x][graph_y]) is the usable graph area.
my @graph;
my $x;
my $y;
@@ -396,10 +405,10 @@
# Setup graph[][].
$graph[0][0] = '+'; # axes join point
- for ($x = 1; $x <= $GRAPH_X; $x++) { $graph[$x][0] = '-'; } # X-axis
- for ($y = 1; $y <= $GRAPH_Y; $y++) { $graph[0][$y] = '|'; } # Y-axis
- for ($x = 1; $x <= $GRAPH_X; $x++) { # usable area
- for ($y = 1; $y <= $GRAPH_Y; $y++) {
+ for ($x = 1; $x <= $graph_x; $x++) { $graph[$x][0] = '-'; } # X-axis
+ for ($y = 1; $y <= $graph_y; $y++) { $graph[0][$y] = '|'; } # Y-axis
+ for ($x = 1; $x <= $graph_x; $x++) { # usable area
+ for ($y = 1; $y <= $graph_y; $y++) {
$graph[$x][$y] = ' ';
}
}
@@ -407,7 +416,7 @@
#-------------------------------------------------------------------------
# Write snapshot bars into graph[][].
#-------------------------------------------------------------------------
- # Each row represents K bytes, which is 1/GRAPH_Yth of the peak size
+ # Each row represents K bytes, which is 1/graph_y of the peak size
# (and K can be non-integral). When drawing the column for a snapshot,
# in order to fill the slot in row y (where the first row drawn on is
# row 1) with a half-char (eg. '.'), it must be >= (y - 1/2)*K. In
@@ -430,12 +439,12 @@
# Work out how many bytes each row represents. If the peak size was 0,
# make it 1 so that the Y-axis covers a non-zero range of values.
if (0 == $peak_mem_total_szB) { $peak_mem_total_szB = 1; }
- my $K = $peak_mem_total_szB / $GRAPH_Y;
+ my $K = $peak_mem_total_szB / $graph_y;
for (my $i = 0; $i < $n_snapshots; $i++) {
# Work out which column this snapshot belongs to.
- my $x_pos_frac = ($times[$i] / $end_time) * $GRAPH_X;
+ my $x_pos_frac = ($times[$i] / $end_time) * $graph_x;
$x = int($x_pos_frac) + 1; # +1 due to Y-axis
# Draw the column only if it's a detailed snapshot, or we don't
@@ -455,7 +464,7 @@
$full_char = $normal_full_char;
}
# Grow this snapshot bar from bottom to top.
- for ($y = 1; $y <= $GRAPH_Y; $y++) {
+ for ($y = 1; $y <= $graph_y; $y++) {
if ($mem_total_Bs[$i] >= ($y - 1/2) * $K) {
$graph[$x][$y] = $half_char;
}
@@ -484,9 +493,9 @@
#-------------------------------------------------------------------------
# Print graph[][].
#-------------------------------------------------------------------------
- for ($y = $GRAPH_Y; $y >= 0; $y--) {
+ for ($y = $graph_y; $y >= 0; $y--) {
# Row prefix (ie. X-axis label)
- if ($GRAPH_Y == $y) { # top point
+ if ($graph_y == $y) { # top point
if ($peak_mem_total_szBscaled < 10) {
printf("%3.1f%s", $peak_mem_total_szBscaled, $unit);
} else {
@@ -499,7 +508,7 @@
}
# Axis and data for the row.
- for ($x = 0; $x <= $GRAPH_X; $x++) {
+ for ($x = 0; $x <= $graph_x; $x++) {
printf("%s", $graph[$x][$y]);
}
print("\n");
|
|
From: <sv...@va...> - 2007-09-21 23:42:12
|
Author: njn
Date: 2007-09-22 00:42:13 +0100 (Sat, 22 Sep 2007)
New Revision: 6896
Log:
wibble
Modified:
branches/MASSIF2/massif/ms_print
Modified: branches/MASSIF2/massif/ms_print
===================================================================
--- branches/MASSIF2/massif/ms_print 2007-09-21 23:41:46 UTC (rev 6895)
+++ branches/MASSIF2/massif/ms_print 2007-09-21 23:42:13 UTC (rev 6896)
@@ -367,7 +367,6 @@
#-------------------------------------------------------------------------
# Print header.
#-------------------------------------------------------------------------
- # XXX: print the massif invocation and the ms_print invocation
print($fancy_nl);
print("Command: $cmd\n");
print("Massif arguments: $desc");
|
|
From: <sv...@va...> - 2007-09-21 23:41:45
|
Author: njn
Date: 2007-09-22 00:41:46 +0100 (Sat, 22 Sep 2007)
New Revision: 6895
Log:
Print massif's and ms_prints args in the output.
Modified:
branches/MASSIF2/massif/ms_main.c
branches/MASSIF2/massif/ms_print
branches/MASSIF2/massif/tests/alloc-fns-A.post.exp
branches/MASSIF2/massif/tests/alloc-fns-B.post.exp
branches/MASSIF2/massif/tests/basic.post.exp
branches/MASSIF2/massif/tests/long-time.post.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
branches/MASSIF2/massif/tests/zero1.post.exp
branches/MASSIF2/massif/tests/zero2.post.exp
Modified: branches/MASSIF2/massif/ms_main.c
===================================================================
--- branches/MASSIF2/massif/ms_main.c 2007-09-21 23:11:15 UTC (rev 6894)
+++ branches/MASSIF2/massif/ms_main.c 2007-09-21 23:41:46 UTC (rev 6895)
@@ -330,8 +330,13 @@
static UInt clo_threshold = 100; // 100 == 1%
static UInt clo_time_unit = TimeMS;
+static XArray* args_for_massif;
+
static Bool ms_process_cmd_line_option(Char* arg)
{
+ // Remember the arg for later use.
+ VG_(addToXA)(args_for_massif, &arg);
+
VG_BOOL_CLO(arg, "--heap", clo_heap)
else VG_BOOL_CLO(arg, "--stacks", clo_stacks)
@@ -1600,17 +1605,17 @@
fd = sres.res;
}
- // Print description lines. Include:
- // * --alloc-fn values
- // * --threshold values
- FP("desc: Options: XXX\n");
-// FP("desc: Options: Heap profiling %s. Stack profiling %s\n",
-// clo_heap ? "on" : "off", clo_stacks ? "on" : "off");
-// FP("desc: Options: Heap admin size = %u bytes.\n", clo_heap_admin);
-// FP("desc: Options: Max. tree depth = %u calls.\n", clo_depth);
-// FP("desc: Options: Significance threshold = %s\n",
-// make_perc(clo_threshold, 10000));
-// FP("desc: Allocation functions = ...");
+ // Print massif-specific options that were used.
+ // XXX: is it worth having a "desc:" line? Could just call it "options:"
+ // -- this file format isn't as generic as Cachegrind's, so the
+ // implied genericity of "desc:" is bogus.
+ FP("desc:");
+ for (i = 0; i < VG_(sizeXA)(args_for_massif); i++) {
+ Char* arg = *(Char**)VG_(indexXA)(args_for_massif, i);
+ FP(" %s", arg);
+ }
+ if (0 == i) FP(" (none)");
+ FP("\n");
// Print "cmd:" line.
FP("cmd: ");
@@ -1744,6 +1749,9 @@
// Initialise alloc_fns.
init_alloc_fns();
+ // Initialise args_for_massif.
+ args_for_massif = VG_(newXA)(VG_(malloc), VG_(free), sizeof(HChar*));
+
tl_assert( VG_(getcwd)(base_dir, VKI_PATH_MAX) );
}
Modified: branches/MASSIF2/massif/ms_print
===================================================================
--- branches/MASSIF2/massif/ms_print 2007-09-21 23:11:15 UTC (rev 6894)
+++ branches/MASSIF2/massif/ms_print 2007-09-21 23:41:46 UTC (rev 6895)
@@ -53,6 +53,9 @@
# Version number (XXX: change it when I convert this file to ms_print.in)
my $version = "XXX"; # "@VERSION@";
+# Args passed, for printing.
+my $ms_print_args;
+
# Usage message.
my $usage = <<END
usage: ms_print [options] <file>
@@ -89,8 +92,14 @@
sub process_cmd_line()
{
my @files;
+
+ # Grab a copy of the arguments, for printing later.
for my $arg (@ARGV) {
+ $ms_print_args .= " $arg"; # The arguments.
+ }
+ for my $arg (@ARGV) {
+
# Option handling
if ($arg =~ /^-/) {
@@ -264,7 +273,7 @@
# Read "desc:" lines.
my $line;
while ($line = get_line()) {
- if ($line =~ s/^desc:\s*//) {
+ if ($line =~ s/^desc://) {
$desc .= $line;
} else {
last;
@@ -360,9 +369,9 @@
#-------------------------------------------------------------------------
# XXX: print the massif invocation and the ms_print invocation
print($fancy_nl);
- print("Command: $cmd\n");
- print("Data file: $input_file\n");
- print("$desc");
+ print("Command: $cmd\n");
+ print("Massif arguments: $desc");
+ print("ms_print arguments:$ms_print_args\n");
print($fancy_nl);
print("\n\n");
Modified: branches/MASSIF2/massif/tests/alloc-fns-A.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/alloc-fns-A.post.exp 2007-09-21 23:11:15 UTC (rev 6894)
+++ branches/MASSIF2/massif/tests/alloc-fns-A.post.exp 2007-09-21 23:41:46 UTC (rev 6895)
@@ -1,7 +1,7 @@
--------------------------------------------------------------------------------
-Command: ./alloc-fns
-Data file: massif.out
-Options: XXX
+Command: ./alloc-fns
+Massif arguments: --stacks=no --time-unit=B --heap-admin=0
+ms_print arguments: massif.out
--------------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/alloc-fns-B.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/alloc-fns-B.post.exp 2007-09-21 23:11:15 UTC (rev 6894)
+++ branches/MASSIF2/massif/tests/alloc-fns-B.post.exp 2007-09-21 23:41:46 UTC (rev 6895)
@@ -1,7 +1,7 @@
--------------------------------------------------------------------------------
-Command: ./alloc-fns
-Data file: massif.out
-Options: XXX
+Command: ./alloc-fns
+Massif arguments: --stacks=no --time-unit=B --heap-admin=0 --alloc-fn=a4 --alloc-fn=b3 --alloc-fn=c2 --alloc-fn=d1 --alloc-fn=d3
+ms_print arguments: massif.out
--------------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/basic.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/basic.post.exp 2007-09-21 23:11:15 UTC (rev 6894)
+++ branches/MASSIF2/massif/tests/basic.post.exp 2007-09-21 23:41:46 UTC (rev 6895)
@@ -1,7 +1,7 @@
--------------------------------------------------------------------------------
-Command: ./basic
-Data file: massif.out
-Options: XXX
+Command: ./basic
+Massif arguments: --stacks=no --time-unit=B
+ms_print arguments: massif.out
--------------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/long-time.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/long-time.post.exp 2007-09-21 23:11:15 UTC (rev 6894)
+++ branches/MASSIF2/massif/tests/long-time.post.exp 2007-09-21 23:41:46 UTC (rev 6895)
@@ -1,7 +1,7 @@
--------------------------------------------------------------------------------
-Command: ./long-time
-Data file: massif.out
-Options: XXX
+Command: ./long-time
+Massif arguments: --stacks=no --time-unit=B
+ms_print arguments: massif.out
--------------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/thresholds_0_0.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/thresholds_0_0.post.exp 2007-09-21 23:11:15 UTC (rev 6894)
+++ branches/MASSIF2/massif/tests/thresholds_0_0.post.exp 2007-09-21 23:41:46 UTC (rev 6895)
@@ -1,7 +1,7 @@
--------------------------------------------------------------------------------
-Command: ./thresholds
-Data file: massif.out
-Options: XXX
+Command: ./thresholds
+Massif arguments: --stacks=no --time-unit=B --heap-admin=0 --threshold=0
+ms_print arguments: massif.out --threshold=0
--------------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/thresholds_0_10.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/thresholds_0_10.post.exp 2007-09-21 23:11:15 UTC (rev 6894)
+++ branches/MASSIF2/massif/tests/thresholds_0_10.post.exp 2007-09-21 23:41:46 UTC (rev 6895)
@@ -1,7 +1,7 @@
--------------------------------------------------------------------------------
-Command: ./thresholds
-Data file: massif.out
-Options: XXX
+Command: ./thresholds
+Massif arguments: --stacks=no --time-unit=B --heap-admin=0 --threshold=0
+ms_print arguments: massif.out --threshold=10
--------------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/thresholds_10_0.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/thresholds_10_0.post.exp 2007-09-21 23:11:15 UTC (rev 6894)
+++ branches/MASSIF2/massif/tests/thresholds_10_0.post.exp 2007-09-21 23:41:46 UTC (rev 6895)
@@ -1,7 +1,7 @@
--------------------------------------------------------------------------------
-Command: ./thresholds
-Data file: massif.out
-Options: XXX
+Command: ./thresholds
+Massif arguments: --stacks=no --time-unit=B --heap-admin=0 --threshold=1000
+ms_print arguments: massif.out --threshold=0
--------------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/thresholds_10_10.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/thresholds_10_10.post.exp 2007-09-21 23:11:15 UTC (rev 6894)
+++ branches/MASSIF2/massif/tests/thresholds_10_10.post.exp 2007-09-21 23:41:46 UTC (rev 6895)
@@ -1,7 +1,7 @@
--------------------------------------------------------------------------------
-Command: ./thresholds
-Data file: massif.out
-Options: XXX
+Command: ./thresholds
+Massif arguments: --stacks=no --time-unit=B --heap-admin=0 --threshold=1000
+ms_print arguments: massif.out --threshold=10
--------------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/thresholds_5_0.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/thresholds_5_0.post.exp 2007-09-21 23:11:15 UTC (rev 6894)
+++ branches/MASSIF2/massif/tests/thresholds_5_0.post.exp 2007-09-21 23:41:46 UTC (rev 6895)
@@ -1,7 +1,7 @@
--------------------------------------------------------------------------------
-Command: ./thresholds
-Data file: massif.out
-Options: XXX
+Command: ./thresholds
+Massif arguments: --stacks=no --time-unit=B --heap-admin=0 --threshold=500
+ms_print arguments: massif.out --threshold=0
--------------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/thresholds_5_10.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/thresholds_5_10.post.exp 2007-09-21 23:11:15 UTC (rev 6894)
+++ branches/MASSIF2/massif/tests/thresholds_5_10.post.exp 2007-09-21 23:41:46 UTC (rev 6895)
@@ -1,7 +1,7 @@
--------------------------------------------------------------------------------
-Command: ./thresholds
-Data file: massif.out
-Options: XXX
+Command: ./thresholds
+Massif arguments: --stacks=no --time-unit=B --heap-admin=0 --threshold=500
+ms_print arguments: massif.out --threshold=10
--------------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/zero1.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/zero1.post.exp 2007-09-21 23:11:15 UTC (rev 6894)
+++ branches/MASSIF2/massif/tests/zero1.post.exp 2007-09-21 23:41:46 UTC (rev 6895)
@@ -1,7 +1,7 @@
--------------------------------------------------------------------------------
-Command: ./zero
-Data file: massif.out
-Options: XXX
+Command: ./zero
+Massif arguments: --stacks=no --heap-admin=no --time-unit=B
+ms_print arguments: --threshold=0 massif.out
--------------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/zero2.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/zero2.post.exp 2007-09-21 23:11:15 UTC (rev 6894)
+++ branches/MASSIF2/massif/tests/zero2.post.exp 2007-09-21 23:41:46 UTC (rev 6895)
@@ -1,7 +1,7 @@
--------------------------------------------------------------------------------
-Command: ./zero
-Data file: massif.out
-Options: XXX
+Command: ./zero
+Massif arguments: --stacks=no --heap-admin=no --time-unit=B
+ms_print arguments: massif.out
--------------------------------------------------------------------------------
|
|
From: <sv...@va...> - 2007-09-21 23:11:15
|
Author: njn
Date: 2007-09-22 00:11:15 +0100 (Sat, 22 Sep 2007)
New Revision: 6894
Log:
Handle bad input files a little better.
Modified:
branches/MASSIF2/massif/ms_print
Modified: branches/MASSIF2/massif/ms_print
===================================================================
--- branches/MASSIF2/massif/ms_print 2007-09-21 23:08:52 UTC (rev 6893)
+++ branches/MASSIF2/massif/ms_print 2007-09-21 23:11:15 UTC (rev 6894)
@@ -141,8 +141,10 @@
sub equals_num_line($$)
{
my ($line, $fieldname) = @_;
- (defined($line) and $line =~ s/^$fieldname=(.*)\s*$//) or
- die("Line $.: expected \"$fieldname\" line, got:\n$line\n");
+ defined($line)
+ or die("Line $.: expected \"$fieldname\" line, got end of file\n");
+ $line =~ s/^$fieldname=(.*)\s*$//
+ or die("Line $.: expected \"$fieldname\" line, got:\n$line");
return $1;
}
|
|
From: <sv...@va...> - 2007-09-21 23:08:51
|
Author: njn
Date: 2007-09-22 00:08:52 +0100 (Sat, 22 Sep 2007)
New Revision: 6893
Log:
Don't print a summary header if there are no snapshots to follow.
Modified:
branches/MASSIF2/massif/ms_main.c
branches/MASSIF2/massif/ms_print
branches/MASSIF2/massif/tests/alloc-fns-A.post.exp
branches/MASSIF2/massif/tests/alloc-fns-B.post.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/ms_main.c
===================================================================
--- branches/MASSIF2/massif/ms_main.c 2007-09-21 22:42:49 UTC (rev 6892)
+++ branches/MASSIF2/massif/ms_main.c 2007-09-21 23:08:52 UTC (rev 6893)
@@ -33,12 +33,11 @@
// Todo:
// - do a test for realloc -- I think no snapshots are being taken for it.
// - do tests with complicated stack traces -- big ones, ones that require
-// XCon_redo, etc.
+// XCon_redo, ones that exceed --depth, etc.
// - test what happens when alloc-fns cover an entire trace
// - write a good basic test that shows how the tool works, suitable for
// documentation
// - Check MALLOCLIKE_BLOCK works, write regtest
-// - clean up structure of ms_print
// - work out peak-taking
// - make everything configurable, eg. min/max number of snapshots (which
// also determine culling proportion), frequency of detailed snapshots,
Modified: branches/MASSIF2/massif/ms_print
===================================================================
--- branches/MASSIF2/massif/ms_print 2007-09-21 22:42:49 UTC (rev 6892)
+++ branches/MASSIF2/massif/ms_print 2007-09-21 23:08:52 UTC (rev 6893)
@@ -50,8 +50,8 @@
# Tmp file name.
my $tmp_file = "ms_print.tmp.$$";
-# Version number
-my $version = "XXX";
+# Version number (XXX: change it when I convert this file to ms_print.in)
+my $version = "XXX"; # "@VERSION@";
# Usage message.
my $usage = <<END
@@ -334,19 +334,20 @@
# Read the heap tree, and if it's detailed, print it and a subsequent
# snapshot list header to $tmp_file.
if ($heap_tree eq "empty") {
- # do nothing
+ $line = get_line();
} elsif ($heap_tree eq "...") {
# '1' means it's the top node of the tree.
read_heap_tree(1, "", "", "", $mem_total_B);
- # XXX: don't print the header if there are no more snapshots!
- # (see tests/thresholds.c for an example)
- print(TMPFILE $header);
+ # Print the header, unless there are no more snapshots.
+ $line = get_line();
+ if (defined $line) {
+ print(TMPFILE $header);
+ }
} else {
die("Line $.: expected 'empty' or '...' after 'heap_tree='\n");
}
- $line = get_line();
}
close(INPUTFILE);
Modified: branches/MASSIF2/massif/tests/alloc-fns-A.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/alloc-fns-A.post.exp 2007-09-21 22:42:49 UTC (rev 6892)
+++ branches/MASSIF2/massif/tests/alloc-fns-A.post.exp 2007-09-21 23:08:52 UTC (rev 6893)
@@ -78,6 +78,3 @@
->11.11% (100B) 0x8048481: c1 (alloc-fns.c:16)
->11.11% (100B) 0x8048539: main (alloc-fns.c:29)
---------------------------------------------------------------------------------
- n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
---------------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/alloc-fns-B.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/alloc-fns-B.post.exp 2007-09-21 22:42:49 UTC (rev 6892)
+++ branches/MASSIF2/massif/tests/alloc-fns-B.post.exp 2007-09-21 23:08:52 UTC (rev 6893)
@@ -70,6 +70,3 @@
->11.11% (100B) 0x8048498: d4 (alloc-fns.c:18)
->11.11% (100B) 0x804856D: main (alloc-fns.c:33)
---------------------------------------------------------------------------------
- n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
---------------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/thresholds_0_0.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/thresholds_0_0.post.exp 2007-09-21 22:42:49 UTC (rev 6892)
+++ branches/MASSIF2/massif/tests/thresholds_0_0.post.exp 2007-09-21 23:08:52 UTC (rev 6893)
@@ -71,6 +71,3 @@
->00.50% (50B) 0x80483BB: my_malloc3 (thresholds.c:33)
->00.50% (50B) 0x8048477: main (thresholds.c:56)
---------------------------------------------------------------------------------
- n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
---------------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/thresholds_0_10.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/thresholds_0_10.post.exp 2007-09-21 22:42:49 UTC (rev 6892)
+++ branches/MASSIF2/massif/tests/thresholds_0_10.post.exp 2007-09-21 23:08:52 UTC (rev 6893)
@@ -57,6 +57,3 @@
|
->00.50% (50B) in 1+ places, all below ms_print's threshold (10.00%)
---------------------------------------------------------------------------------
- n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
---------------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/thresholds_10_0.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/thresholds_10_0.post.exp 2007-09-21 22:42:49 UTC (rev 6892)
+++ branches/MASSIF2/massif/tests/thresholds_10_0.post.exp 2007-09-21 23:08:52 UTC (rev 6893)
@@ -57,6 +57,3 @@
|
->00.50% (50B) in 1 place, below massif's threshold (10.00%)
---------------------------------------------------------------------------------
- n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
---------------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/thresholds_10_10.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/thresholds_10_10.post.exp 2007-09-21 22:42:49 UTC (rev 6892)
+++ branches/MASSIF2/massif/tests/thresholds_10_10.post.exp 2007-09-21 23:08:52 UTC (rev 6893)
@@ -57,6 +57,3 @@
|
->00.50% (50B) in 1+ places, all below ms_print's threshold (10.00%)
---------------------------------------------------------------------------------
- n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
---------------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/thresholds_5_0.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/thresholds_5_0.post.exp 2007-09-21 22:42:49 UTC (rev 6892)
+++ branches/MASSIF2/massif/tests/thresholds_5_0.post.exp 2007-09-21 23:08:52 UTC (rev 6893)
@@ -62,6 +62,3 @@
|
->00.50% (50B) in 1 place, below massif's threshold (05.00%)
---------------------------------------------------------------------------------
- n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
---------------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/thresholds_5_10.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/thresholds_5_10.post.exp 2007-09-21 22:42:49 UTC (rev 6892)
+++ branches/MASSIF2/massif/tests/thresholds_5_10.post.exp 2007-09-21 23:08:52 UTC (rev 6893)
@@ -57,6 +57,3 @@
|
->00.50% (50B) in 1+ places, all below ms_print's threshold (10.00%)
---------------------------------------------------------------------------------
- n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
---------------------------------------------------------------------------------
|
|
From: <sv...@va...> - 2007-09-21 22:42:51
|
Author: njn
Date: 2007-09-21 23:42:49 +0100 (Fri, 21 Sep 2007)
New Revision: 6892
Log:
- Don't forget to delete the tmp file.
- Clean up line reading.
Modified:
branches/MASSIF2/massif/ms_print
Modified: branches/MASSIF2/massif/ms_print
===================================================================
--- branches/MASSIF2/massif/ms_print 2007-09-21 07:09:33 UTC (rev 6891)
+++ branches/MASSIF2/massif/ms_print 2007-09-21 22:42:49 UTC (rev 6892)
@@ -146,13 +146,6 @@
return $1;
}
-sub get_equals_num_line($)
-{
- my ($fieldname) = @_;
- my $line = get_line();
- return equals_num_line($line, $fieldname);
-}
-
sub is_significant_XPt($$$)
{
my ($is_top_node, $xpt_szB, $total_szB) = @_;
@@ -312,14 +305,13 @@
#-------------------------------------------------------------------------
$line = get_line();
while (defined $line) {
- # XXX: equals_num_line vs get_equals_num_line is ugly
- my $snapshot_num = equals_num_line($line, "snapshot");
- my $time = get_equals_num_line("time");
- my $mem_total_B = get_equals_num_line("mem_total_B");
- my $mem_heap_B = get_equals_num_line("mem_heap_B");
- my $mem_heap_admin_B = get_equals_num_line("mem_heap_admin_B");
- my $mem_stacks_B = get_equals_num_line("mem_stacks_B");
- my $heap_tree = get_equals_num_line("heap_tree");
+ my $snapshot_num = equals_num_line($line, "snapshot");
+ my $time = equals_num_line(get_line(), "time");
+ my $mem_total_B = equals_num_line(get_line(), "mem_total_B");
+ my $mem_heap_B = equals_num_line(get_line(), "mem_heap_B");
+ my $mem_heap_admin_B = equals_num_line(get_line(), "mem_heap_admin_B");
+ my $mem_stacks_B = equals_num_line(get_line(), "mem_stacks_B");
+ my $heap_tree = equals_num_line(get_line(), "heap_tree");
# Print the snapshot data to $tmp_file.
printf(TMPFILE $column_format,
@@ -530,6 +522,7 @@
while (my $line = <TMPFILE>) {
print($line);
}
+ unlink($tmp_file);
}
#-----------------------------------------------------------------------------
|
|
From: <js...@ac...> - 2007-09-21 13:14:07
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2007-09-21 09:00:01 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 220 tests, 10 stderr failures, 6 stdout failures, 0 posttest failures == memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) none/tests/ppc32/round (stdout) none/tests/ppc32/round (stderr) none/tests/ppc32/test_fx (stdout) none/tests/ppc32/test_fx (stderr) none/tests/ppc32/test_gx (stdout) |
|
From: <sv...@va...> - 2007-09-21 07:09:34
|
Author: njn
Date: 2007-09-21 08:09:33 +0100 (Fri, 21 Sep 2007)
New Revision: 6891
Log:
ms_print now reads the input file only once, and puts some of its stuff in a
temp file, before printing the temp file out later. This is better than
reading the input file twice, which involved some code duplication.
Modified:
branches/MASSIF2/massif/ms_main.c
branches/MASSIF2/massif/ms_print
Modified: branches/MASSIF2/massif/ms_main.c
===================================================================
--- branches/MASSIF2/massif/ms_main.c 2007-09-21 06:04:07 UTC (rev 6890)
+++ branches/MASSIF2/massif/ms_main.c 2007-09-21 07:09:33 UTC (rev 6891)
@@ -1141,8 +1141,7 @@
static Bool ms_cheap_sanity_check ( void )
{
- // Nothing useful we can rapidly check.
- return True;
+ return True; // Nothing useful we can cheaply check.
}
static Bool ms_expensive_sanity_check ( void )
Modified: branches/MASSIF2/massif/ms_print
===================================================================
--- branches/MASSIF2/massif/ms_print 2007-09-21 06:04:07 UTC (rev 6890)
+++ branches/MASSIF2/massif/ms_print 2007-09-21 07:09:33 UTC (rev 6891)
@@ -30,10 +30,6 @@
use warnings;
use strict;
-# XXX:
-# - move graph printing stuff into a separate subroutine
-# - merge read_input_file[12]
-
#----------------------------------------------------------------------------
# Global variables, main data structures
#----------------------------------------------------------------------------
@@ -51,6 +47,9 @@
# Input file name
my $input_file = undef;
+# Tmp file name.
+my $tmp_file = "ms_print.tmp.$$";
+
# Version number
my $version = "XXX";
@@ -132,7 +131,6 @@
{
while (my $line = <INPUTFILE>) {
$line =~ s/#.*$//; # remove comments
- $line =~ s/==\d+==.*$//; # remove Valgrind output lines XXX
if ($line !~ /^\s*$/) {
return $line; # return $line if non-empty
}
@@ -165,17 +163,20 @@
( $total_szB != 0 && $xpt_szB * 100 / $total_szB >= $threshold );
}
+#-----------------------------------------------------------------------------
+# Reading the input file: reading heap trees
+#-----------------------------------------------------------------------------
+
# Forward declaration, because it's recursive.
-sub read_heap_tree($$$$$$);
+sub read_heap_tree($$$$$);
# Return pair: if the tree was significant, both are zero. If it was
# insignificant, the first element is 1 and the second is the number of
# bytes.
-sub read_heap_tree($$$$$$)
+sub read_heap_tree($$$$$)
{
# Read the line and determine if it is significant.
- my ($print, $is_top_node, $this_prefix, $child_midfix, $arrow,
- $mem_total_B) = @_;
+ my ($is_top_node, $this_prefix, $child_midfix, $arrow, $mem_total_B) = @_;
my $line = get_line();
(defined $line and $line =~ /^\s*n(\d+):\s*(\d+)(.*)$/)
or die("Line $.: expected a tree node line, got:\n$line\n");
@@ -188,10 +189,11 @@
# We precede this node's line with "$this_prefix.$arrow". We precede
# any children of this node with "$this_prefix$child_midfix$arrow".
- if ($print && $is_significant) {
+ if ($is_significant) {
# Nb: $details might have '%' in it, so don't embed directly in the
# format string.
- printf("$this_prefix$arrow%05.2f%% (${bytes}B)%s\n", $perc, $details);
+ printf(TMPFILE
+ "$this_prefix$arrow%05.2f%% (${bytes}B)%s\n", $perc, $details);
}
# Now read all the children.
@@ -203,7 +205,7 @@
my $child_midfix2 = ( $i+1 == $n_children ? " " : "| " );
my ($is_child_insignificant, $child_insig_bytes) =
# '0' means it's not the top node of the tree.
- read_heap_tree($print, 0, $this_prefix2, $child_midfix2, "->",
+ read_heap_tree(0, $this_prefix2, $child_midfix2, "->",
$mem_total_B);
$n_insig_children += $is_child_insignificant;
$total_insig_children_szB += $child_insig_bytes;
@@ -212,18 +214,18 @@
if ($is_significant) {
# If this was significant but any children were insignificant, print
# the "in N places" line for them.
- if ($print && $n_insig_children > 0) {
+ if ($n_insig_children > 0) {
$perc = safe_div_0(100 * $total_insig_children_szB, $mem_total_B);
- printf("%s->%05.2f%% (%dB) in %d+ places, all below "
+ printf(TMPFILE "%s->%05.2f%% (%dB) in %d+ places, all below "
. "ms_print's threshold (%05.2f%%)\n",
$this_prefix2, $perc, $total_insig_children_szB,
$n_insig_children, $threshold);
- print("$this_prefix2\n");
+ print(TMPFILE "$this_prefix2\n");
}
# If this node has no children, print an extra (mostly) empty line.
- if ($print && 0 == $n_children) {
- print("$this_prefix2\n");
+ if (0 == $n_children) {
+ print(TMPFILE "$this_prefix2\n");
}
return (0, 0);
@@ -233,23 +235,34 @@
}
#-----------------------------------------------------------------------------
-# Reading the input file: pass 1
+# Reading the input file
#-----------------------------------------------------------------------------
-# This pass is just for printing the graph. It just collects the snapshot
-# times and total sizes from the file and then prints the graph.
+# This prints four things:
+# - the output header
+# - the graph
+# - the snapshot summaries (number, list of detailed ones)
+# - the snapshots
#
-# XXX: should probably combine read_input_file[12] into a single function
-# with some conditionals in it.
-sub read_input_file1()
+# The first three parts can't be printed until we've read the whole input file;
+# but the fourth part is much easier to print while we're reading the file. So
+# we print the fourth part to a tmp file, and then dump the tmp file at the
+# end.
+#
+sub read_input_file()
{
my $desc = ""; # Concatenated description lines.
+ my $peak_mem_total_szB = 0;
+
+ # Info about each snapshot.
my @snapshot_nums = ();
my @times = ();
my @mem_total_Bs = ();
my @is_detaileds = ();
- my $peak_mem_total_szB = 0;
+ #-------------------------------------------------------------------------
+ # Read start of input file.
+ #-------------------------------------------------------------------------
open(INPUTFILE, "< $input_file")
|| die "Cannot open $input_file for reading\n";
@@ -264,8 +277,7 @@
}
# Read "cmd:" line (Nb: will already be in $line from "desc:" loop above).
- ($line =~ /^cmd:\s*(.*)$/) or
- die("Line $.: missing 'cmd' line\n");
+ ($line =~ /^cmd:\s*(.*)$/) or die("Line $.: missing 'cmd' line\n");
$cmd = $1;
# Read "time_unit:" line.
@@ -274,30 +286,52 @@
die("Line $.: missing 'time_unit' line\n");
$time_unit = $1;
+ #-------------------------------------------------------------------------
+ # Print snapshot list header to $tmp_file.
+ #-------------------------------------------------------------------------
+ open(TMPFILE, "> $tmp_file")
+ || die "Cannot open $tmp_file for reading\n";
+
+ my $time_column = sprintf("%14s", "time($time_unit)");
+ my $column_format = "%3s %14s %16s %16s %13s %12s\n";
+ my $header =
+ $fancy_nl .
+ sprintf($column_format
+ , "n"
+ , $time_column
+ , "total(B)"
+ , "useful-heap(B)"
+ , "admin-heap(B)"
+ , "stacks(B)"
+ ) .
+ $fancy_nl;
+ print(TMPFILE $header);
+
+ #-------------------------------------------------------------------------
# Read body of input file.
+ #-------------------------------------------------------------------------
$line = get_line();
while (defined $line) {
# XXX: equals_num_line vs get_equals_num_line is ugly
my $snapshot_num = equals_num_line($line, "snapshot");
- my $time = get_equals_num_line("time");
- my $mem_total_B = get_equals_num_line("mem_total_B");
+ my $time = get_equals_num_line("time");
+ my $mem_total_B = get_equals_num_line("mem_total_B");
my $mem_heap_B = get_equals_num_line("mem_heap_B");
my $mem_heap_admin_B = get_equals_num_line("mem_heap_admin_B");
my $mem_stacks_B = get_equals_num_line("mem_stacks_B");
my $heap_tree = get_equals_num_line("heap_tree");
- # Skip over the heap_tree
- if ($heap_tree eq "empty") {
- # do nothing
- } elsif ($heap_tree eq "...") {
- # Depth in the heap tree. '0' means the tree should not be
- # printed. '1' means it's the top node of the tree.
- read_heap_tree(0, 1, "", "", "", $mem_total_B);
- } else {
- die("Line $.: expected 'empty' or '...' after 'heap_tree='\n");
- }
+ # Print the snapshot data to $tmp_file.
+ printf(TMPFILE $column_format,
+ , $snapshot_num
+ , commify($time)
+ , commify($mem_total_B)
+ , commify($mem_heap_B)
+ , commify($mem_heap_admin_B)
+ , commify($mem_stacks_B)
+ );
- # Remember the pertinent information
+ # Remember the snapshot data.
push(@snapshot_nums, $snapshot_num);
push(@times, $time);
push(@mem_total_Bs, $mem_total_B);
@@ -305,13 +339,29 @@
$peak_mem_total_szB = $mem_total_B
if $mem_total_B > $peak_mem_total_szB;
+ # Read the heap tree, and if it's detailed, print it and a subsequent
+ # snapshot list header to $tmp_file.
+ if ($heap_tree eq "empty") {
+ # do nothing
+ } elsif ($heap_tree eq "...") {
+ # '1' means it's the top node of the tree.
+ read_heap_tree(1, "", "", "", $mem_total_B);
+
+ # XXX: don't print the header if there are no more snapshots!
+ # (see tests/thresholds.c for an example)
+ print(TMPFILE $header);
+ } else {
+ die("Line $.: expected 'empty' or '...' after 'heap_tree='\n");
+ }
+
$line = get_line();
}
close(INPUTFILE);
+ close(TMPFILE);
#-------------------------------------------------------------------------
- # Print header
+ # Print header.
#-------------------------------------------------------------------------
# XXX: print the massif invocation and the ms_print invocation
print($fancy_nl);
@@ -322,7 +372,7 @@
print("\n\n");
#-------------------------------------------------------------------------
- # Print graph
+ # Setup for graph.
#-------------------------------------------------------------------------
# The ASCII graph.
# Row 0 ([0..GRAPH_X][0]) is the X-axis.
@@ -351,8 +401,9 @@
}
}
+ #-------------------------------------------------------------------------
# Write snapshot bars into graph[][].
- #
+ #-------------------------------------------------------------------------
# Each row represents K bytes, which is 1/GRAPH_Yth of the peak size
# (and K can be non-integral). When drawing the column for a snapshot,
# in order to fill the slot in row y (where the first row drawn on is
@@ -427,7 +478,9 @@
elsif (4 == $orders_of_magnitude) { $unit = 'T'; }
else { die("unknown order of magnitude: $orders_of_magnitude\n"); }
+ #-------------------------------------------------------------------------
# Print graph[][].
+ #-------------------------------------------------------------------------
for ($y = $GRAPH_Y; $y >= 0; $y--) {
# Row prefix (ie. X-axis label)
if ($GRAPH_Y == $y) { # top point
@@ -450,7 +503,7 @@
}
#-------------------------------------------------------------------------
- # Print snapshot numbers
+ # Print snapshot numbers.
#-------------------------------------------------------------------------
print("\n\n");
print("Number of snapshots: $n_snapshots\n");
@@ -467,97 +520,16 @@
}
}
print("]\n");
-}
-#-----------------------------------------------------------------------------
-# Reading the input file: pass 2
-#-----------------------------------------------------------------------------
-
-# This pass is for printing the snapshots. It prints them as it reads in
-# the file (as opposed to reading it all in and then dumping the output at
-# the end).
-sub read_input_file2()
-{
- open(INPUTFILE, "< $input_file")
- || die "Cannot open $input_file for reading\n";
-
- # Read "desc:" lines.
- my $line;
- while ($line = get_line()) {
- if ($line !~ s/^desc:\s*//) {
- last;
- }
- }
-
- # Read "cmd:" line (Nb: will already be in $line from "desc:" loop above).
- ($line =~ /^cmd:\s*(.*)$/) or die("Line $.: missing command line\n");
-
- # Read "time_unit:" line.
- $line = get_line();
- ($line =~ /^time_unit:\s*(.*)$/) or
- die("Line $.: missing 'time_unit' line\n");
-
-
#-------------------------------------------------------------------------
- # Print snapshot list header
+ # Print snapshots, from $tmp_file.
#-------------------------------------------------------------------------
- my $time_column = sprintf("%14s", "time($time_unit)");
- my $column_format = "%3s %14s %16s %16s %13s %12s\n";
- my $header =
- $fancy_nl .
- sprintf($column_format
- , "n"
- , $time_column
- , "total(B)"
- , "useful-heap(B)"
- , "admin-heap(B)"
- , "stacks(B)"
- ) .
- $fancy_nl;
- print($header);
+ open(TMPFILE, "< $tmp_file")
+ || die "Cannot open $tmp_file for reading\n";
- #-------------------------------------------------------------------------
- # Print snapshot list
- #-------------------------------------------------------------------------
- # Read body of input file.
- $line = get_line();
- while (defined $line) {
- # XXX: equals_num_line vs get_equals_num_line is ugly
- my $snapshot_num = equals_num_line($line, "snapshot");
- my $time = get_equals_num_line("time");
- my $mem_total_B = get_equals_num_line("mem_total_B");
- my $mem_heap_B = get_equals_num_line("mem_heap_B");
- my $mem_heap_admin_B = get_equals_num_line("mem_heap_admin_B");
- my $mem_stacks_B = get_equals_num_line("mem_stacks_B");
- my $heap_tree = get_equals_num_line("heap_tree");
-
- # Print snapshot details.
- printf($column_format,
- , $snapshot_num
- , commify($time)
- , commify($mem_total_B)
- , commify($mem_heap_B)
- , commify($mem_heap_admin_B)
- , commify($mem_stacks_B)
- );
-
- if ($heap_tree eq "empty") {
- # do nothing
- } elsif ($heap_tree eq "...") {
- # Depth in the heap tree. '1' means the tree should be printed.
- # '1' means it's the top node of the tree. Then reprint the
- # header.
- read_heap_tree(1, 1, "", "", "", $mem_total_B);
- # XXX: don't print the header if there are no more snapshots!
- # (see tests/thresholds.c for an example)
- print($header);
- } else {
- die("Line $.: expected 'empty' or '...' after 'heap_tree='\n");
- }
- $line = get_line();
+ while (my $line = <TMPFILE>) {
+ print($line);
}
-
- close(INPUTFILE);
}
#-----------------------------------------------------------------------------
@@ -574,11 +546,7 @@
# "main()"
#----------------------------------------------------------------------------
process_cmd_line();
-read_input_file1();
-read_input_file2();
-#print_options();
-#my $threshold_files = print_summary_and_fn_totals();
-#annotate_ann_files($threshold_files);
+read_input_file();
##--------------------------------------------------------------------##
##--- end ms_print.in ---##
|
|
From: <sv...@va...> - 2007-09-21 06:04:07
|
Author: njn
Date: 2007-09-21 07:04:07 +0100 (Fri, 21 Sep 2007)
New Revision: 6890
Log:
Rearranged code. No functional changes.
Modified:
branches/MASSIF2/massif/ms_main.c
Modified: branches/MASSIF2/massif/ms_main.c
===================================================================
--- branches/MASSIF2/massif/ms_main.c 2007-09-21 05:51:26 UTC (rev 6889)
+++ branches/MASSIF2/massif/ms_main.c 2007-09-21 06:04:07 UTC (rev 6890)
@@ -46,8 +46,8 @@
//
// Misc:
// - with --heap=no, --heap-admin still counts. should it?
-// - in each XPt, record both bytes and the number of live allocations (or even
-// total allocations and total deallocations?)
+// - in each XPt, record both bytes and the number of live allocations? (or
+// even total allocations and total deallocations?)
//
// Work out how to take the peak.
// - exact peak, or within a certain percentage?
@@ -211,85 +211,8 @@
#define VERB(format, args...) \
VG_(message)(Vg_DebugMsg, "Massif: " format, ##args)
-///-----------------------------------------------------------//
-//--- XPts ---//
-//------------------------------------------------------------//
-// An XPt represents an "execution point", ie. a code address. Each XPt is
-// part of a tree of XPts (an "execution tree", or "XTree"). The details of
-// the heap are represented by a single XTree.
-//
-// The root of the tree is 'alloc_xpt', which represents all allocation
-// functions, eg:
-// - malloc/calloc/realloc/memalign/new/new[];
-// - user-specified allocation functions (using --alloc-fn);
-// - custom allocation (MALLOCLIKE) points
-// It's a bit of a fake XPt (ie. its 'ip' is zero), and is only used because
-// it makes the code simpler.
-//
-// Any child of 'alloc_xpt' is called a "top-XPt". The XPts at the bottom
-// of an XTree (leaf nodes) are "bottom-XPTs".
-//
-// Each path from a top-XPt to a bottom-XPt through an XTree gives an
-// execution context ("XCon"), ie. a stack trace. (And sub-paths represent
-// stack sub-traces.) The number of XCons in an XTree is equal to the
-// number of bottom-XPTs in that XTree.
-//
-// alloc_xpt XTrees are bi-directional.
-// | ^
-// v |
-// > parent < Example: if child1() calls parent() and child2()
-// / | \ also calls parent(), and parent() calls malloc(),
-// | / \ | the XTree will look like this.
-// | v v |
-// child1 child2
-//
-// Sanity checking: we check snapshot XTrees when they are taken, deleted
-// and printed. We periodically check the main heap XTree with
-// ms_expensive_sanity_check.
-
-typedef struct _XPt XPt;
-
-struct _XPt {
- Addr ip; // code address
-
- // Bottom-XPts: space for the precise context.
- // Other XPts: space of all the descendent bottom-XPts.
- // Nb: this value goes up and down as the program executes.
- SizeT curr_szB;
-
- XPt* parent; // pointer to parent XPt
-
- // Children.
- // n_children and max_children are 32-bit integers. 16-bit integers
- // are too small -- a very big program might have more than 65536
- // allocation points (ie. top-XPts) -- Konqueror starting up has 1800.
- UInt n_children; // number of children
- UInt max_children; // capacity of children array
- XPt** children; // pointers to children XPts
-};
-
//------------------------------------------------------------//
-//--- Heap blocks ---//
-//------------------------------------------------------------//
-
-// Metadata for heap blocks. Each one contains a pointer to a bottom-XPt,
-// which is a foothold into the XCon at which it was allocated. From
-// HP_Chunks, XPt 'space' fields are incremented (at allocation) and
-// decremented (at deallocation).
-//
-// Nb: first two fields must match core's VgHashNode.
-typedef
- struct _HP_Chunk {
- struct _HP_Chunk* next;
- Addr data; // Ptr to actual block
- SizeT szB; // Size requested
- XPt* where; // Where allocated; bottom-XPt
- }
- HP_Chunk;
-
-
-//------------------------------------------------------------//
//--- Statistics ---//
//------------------------------------------------------------//
@@ -319,26 +242,22 @@
//--- Globals ---//
//------------------------------------------------------------//
-// Make these signed so things are more obvious if they go negative.
+// These are signed so things are more obvious if they go negative.
static SSizeT sigstacks_szB = 0; // Current signal stacks space sum
static SSizeT heap_szB = 0; // Live heap size
static SSizeT peak_heap_szB = 0; // XXX: currently unused
static SSizeT peak_snapshot_total_szB = 0;
// Incremented every time memory is allocated/deallocated, by the
-// allocated/deallocated amount. An alternative unit of program progress to
-// time.
-static ULong total_allocs_deallocs_szB = 0;
+// allocated/deallocated amount. An alternative to milliseconds as a unit
+// of program "time".
+static ULong total_allocs_deallocs_szB = 0;
-static VgHashTable malloc_list = NULL; // HP_Chunks
-
static UInt n_heap_blocks = 0;
// Current directory at startup.
static Char base_dir[VKI_PATH_MAX]; // XXX: currently unused
-#define MAX_ALLOC_FNS 128 // includes the builtin ones
-
//------------------------------------------------------------//
//--- Alloc fns ---//
//------------------------------------------------------------//
@@ -459,9 +378,58 @@
//------------------------------------------------------------//
-//--- XPts ---//
+//--- XPts, XTrees and XCons ---//
//------------------------------------------------------------//
+// An XPt represents an "execution point", ie. a code address. Each XPt is
+// part of a tree of XPts (an "execution tree", or "XTree"). The details of
+// the heap are represented by a single XTree.
+//
+// The root of the tree is 'alloc_xpt', which represents all allocation
+// functions, eg:
+// - malloc/calloc/realloc/memalign/new/new[];
+// - user-specified allocation functions (using --alloc-fn);
+// - custom allocation (MALLOCLIKE) points
+// It's a bit of a fake XPt (ie. its 'ip' is zero), and is only used because
+// it makes the code simpler.
+//
+// Any child of 'alloc_xpt' is called a "top-XPt". The XPts at the bottom
+// of an XTree (leaf nodes) are "bottom-XPTs".
+//
+// Each path from a top-XPt to a bottom-XPt through an XTree gives an
+// execution context ("XCon"), ie. a stack trace. (And sub-paths represent
+// stack sub-traces.) The number of XCons in an XTree is equal to the
+// number of bottom-XPTs in that XTree.
+//
+// alloc_xpt XTrees are bi-directional.
+// | ^
+// v |
+// > parent < Example: if child1() calls parent() and child2()
+// / | \ also calls parent(), and parent() calls malloc(),
+// | / \ | the XTree will look like this.
+// | v v |
+// child1 child2
+
+typedef struct _XPt XPt;
+struct _XPt {
+ Addr ip; // code address
+
+ // Bottom-XPts: space for the precise context.
+ // Other XPts: space of all the descendent bottom-XPts.
+ // Nb: this value goes up and down as the program executes.
+ SizeT curr_szB;
+
+ XPt* parent; // pointer to parent XPt
+
+ // Children.
+ // n_children and max_children are 32-bit integers. 16-bit integers
+ // are too small -- a very big program might have more than 65536
+ // allocation points (ie. top-XPts) -- Konqueror starting up has 1800.
+ UInt n_children; // number of children
+ UInt max_children; // capacity of children array
+ XPt** children; // pointers to children XPts
+};
+
// Fake XPt representing all allocation functions like malloc(). Acts as
// parent node to all top-XPts.
static XPt* alloc_xpt;
@@ -559,13 +527,14 @@
//------------------------------------------------------------//
-//--- XTrees ---//
+//--- XTree Operations ---//
//------------------------------------------------------------//
// XXX: taking a full snapshot... could/should just snapshot the significant
// parts. Nb: then the amounts wouldn't add up, unless I represented the
// "insignificant places" in XPts. Might be worthwhile -- there can
-// be a lot of zero nodes in the XTree...
+// be a lot of zero nodes in the XTree... (simpler: ignore all zero nodes
+// unless threshold=0?)
static XPt* dup_XTree(XPt* xpt, XPt* parent)
{
Int i;
@@ -601,6 +570,10 @@
n_dupd_xpts_freed++;
}
+// Sanity checking: we check snapshot XTrees when they are taken, deleted
+// and printed. We periodically check the main heap XTree with
+// ms_expensive_sanity_check.
+//
static void sanity_check_XTree(XPt* xpt, XPt* parent)
{
Int i;
@@ -631,7 +604,7 @@
//------------------------------------------------------------//
-//--- XCons ---//
+//--- XCon Operations ---//
//------------------------------------------------------------//
// This is the limit on the number of removed alloc-fns that can be in a
@@ -1184,6 +1157,23 @@
//--- Heap management ---//
//------------------------------------------------------------//
+// Metadata for heap blocks. Each one contains a pointer to a bottom-XPt,
+// which is a foothold into the XCon at which it was allocated. From
+// HP_Chunks, XPt 'space' fields are incremented (at allocation) and
+// decremented (at deallocation).
+//
+// Nb: first two fields must match core's VgHashNode.
+typedef
+ struct _HP_Chunk {
+ struct _HP_Chunk* next;
+ Addr data; // Ptr to actual block
+ SizeT szB; // Size requested
+ XPt* where; // Where allocated; bottom-XPt
+ }
+ HP_Chunk;
+
+static VgHashTable malloc_list = NULL; // HP_Chunks
+
static void update_heap_stats(SSizeT heap_szB_delta, Int n_heap_blocks_delta)
{
if (n_heap_blocks_delta<0) tl_assert(n_heap_blocks >= -n_heap_blocks_delta);
|
|
From: <sv...@va...> - 2007-09-21 05:51:24
|
Author: njn Date: 2007-09-21 06:51:26 +0100 (Fri, 21 Sep 2007) New Revision: 6889 Log: update Modified: branches/MASSIF2/massif/ms_main.c Modified: branches/MASSIF2/massif/ms_main.c =================================================================== --- branches/MASSIF2/massif/ms_main.c 2007-09-21 05:50:30 UTC (rev 6888) +++ branches/MASSIF2/massif/ms_main.c 2007-09-21 05:51:26 UTC (rev 6889) @@ -32,25 +32,17 @@ //--------------------------------------------------------------------------- // Todo: // - do a test for realloc -- I think no snapshots are being taken for it. -// - do a test where the time exceeds 32-bits -// - do a test with no allocations -- bar should be zero sized in graph? // - do tests with complicated stack traces -- big ones, ones that require // XCon_redo, etc. // - test what happens when alloc-fns cover an entire trace // - write a good basic test that shows how the tool works, suitable for // documentation -// - try to write a -v test. how to filter the Valgrind -v stuff out? Have -// --ms-verbose, which is implied by -v but also able to be turned on -// separately? -// - get snapshot frequency right after some have been discarded // - Check MALLOCLIKE_BLOCK works, write regtest // - clean up structure of ms_print // - work out peak-taking // - make everything configurable, eg. min/max number of snapshots (which // also determine culling proportion), frequency of detailed snapshots, // etc. -// - have a test with lots of zero-sized allocations -- makes sure that -// timespans of 0 between snapshots is ok... // // Misc: // - with --heap=no, --heap-admin still counts. should it? |
|
From: <sv...@va...> - 2007-09-21 05:50:29
|
Author: njn
Date: 2007-09-21 06:50:30 +0100 (Fri, 21 Sep 2007)
New Revision: 6888
Log:
Fix a bug in time printing that was screwing up times that didn't fit in 32
bits. Add a test case.
Added:
branches/MASSIF2/massif/tests/long-time.c
branches/MASSIF2/massif/tests/long-time.post.exp
branches/MASSIF2/massif/tests/long-time.stderr.exp
branches/MASSIF2/massif/tests/long-time.vgtest
Modified:
branches/MASSIF2/massif/ms_main.c
branches/MASSIF2/massif/tests/Makefile.am
Modified: branches/MASSIF2/massif/ms_main.c
===================================================================
--- branches/MASSIF2/massif/ms_main.c 2007-09-21 05:12:34 UTC (rev 6887)
+++ branches/MASSIF2/massif/ms_main.c 2007-09-21 05:50:30 UTC (rev 6888)
@@ -317,9 +317,7 @@
static UInt n_zero_allocs = 0;
static UInt n_frees = 0;
static UInt n_xpt_expansions = 0;
-
static UInt n_getXCon_redo = 0;
-
static UInt n_cullings = 0;
static UInt n_real_snapshots = 0;
static UInt n_skipped_snapshots = 0;
@@ -1541,7 +1539,7 @@
ip_desc = VG_(describe_IP)(xpt->ip-1, ip_desc, BUF_LEN);
}
perc = make_perc(xpt->curr_szB, curr_total_szB);
- FP("%sn%d: %ld %s\n", depth_str, n_child_entries, xpt->curr_szB, ip_desc);
+ FP("%sn%d: %lu %s\n", depth_str, n_child_entries, xpt->curr_szB, ip_desc);
// Indent.
tl_assert(depth+1 < depth_str_len-1); // -1 for end NUL char
@@ -1561,7 +1559,7 @@
Char* s = ( n_insig_children == 1 ? "," : "s, all" );
SizeT total_insig_children_szB = xpt->curr_szB - printed_children_szB;
perc = make_perc(total_insig_children_szB, curr_total_szB);
- FP("%sn0: %ld in %d place%s below massif's threshold (%s)\n",
+ FP("%sn0: %lu in %d place%s below massif's threshold (%s)\n",
depth_str, total_insig_children_szB, n_insig_children, s,
make_perc(clo_threshold, 10000));
}
@@ -1578,7 +1576,7 @@
FP("#-----------\n");
FP("snapshot=%d\n", snapshot_n);
FP("#-----------\n");
- FP("time=%lu\n", snapshot->time);
+ FP("time=%lld\n", snapshot->time);
FP("mem_total_B=%lu\n", snapshot->total_szB);
FP("mem_heap_B=%lu\n", snapshot->heap_szB);
FP("mem_heap_admin_B=%lu\n", snapshot->heap_admin_szB);
Modified: branches/MASSIF2/massif/tests/Makefile.am
===================================================================
--- branches/MASSIF2/massif/tests/Makefile.am 2007-09-21 05:12:34 UTC (rev 6887)
+++ branches/MASSIF2/massif/tests/Makefile.am 2007-09-21 05:50:30 UTC (rev 6888)
@@ -11,6 +11,7 @@
basic_malloc.stderr.exp basic_malloc.vgtest \
culling1.stderr.exp culling1.vgtest \
culling2.stderr.exp culling2.vgtest \
+ long-time.post.exp long-time.stderr.exp long-time.vgtest \
thresholds_0_0.post.exp thresholds_0_0.stderr.exp thresholds_0_0.vgtest \
thresholds_0_10.post.exp thresholds_0_10.stderr.exp thresholds_0_10.vgtest \
thresholds_10_0.post.exp thresholds_10_0.stderr.exp thresholds_10_0.vgtest \
@@ -28,6 +29,7 @@
basic \
basic_malloc \
culling1 culling2 \
+ long-time \
thresholds \
zero
Added: branches/MASSIF2/massif/tests/long-time.c
===================================================================
--- branches/MASSIF2/massif/tests/long-time.c (rev 0)
+++ branches/MASSIF2/massif/tests/long-time.c 2007-09-21 05:50:30 UTC (rev 6888)
@@ -0,0 +1,22 @@
+// This test does enough allocation and deallocation that the time-unit,
+// when measured in bytes -- 6,000,000,000 -- exceeds 32-bits. It also does
+// it in a slightly uneven fashion so we get a range of different totals
+// for the snapshots, including a zero-sized detailed snapshot.
+
+#include <stdlib.h>
+
+int main(void)
+{
+ int i;
+ for (i = 0; i < 1500; i++) {
+ int* x1 = malloc( 800 * 1000);
+ int* x2 = malloc(1100 * 1000);
+ free(x1);
+ int* x3 = malloc(1200 * 1000);
+ free(x2);
+ free(x3);
+ int* x4 = malloc( 900 * 1000);
+ free(x4);
+ }
+ return 0;
+}
Added: branches/MASSIF2/massif/tests/long-time.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/long-time.post.exp (rev 0)
+++ branches/MASSIF2/massif/tests/long-time.post.exp 2007-09-21 05:50:30 UTC (rev 6888)
@@ -0,0 +1,206 @@
+--------------------------------------------------------------------------------
+Command: ./long-time
+Data file: massif.out
+Options: XXX
+--------------------------------------------------------------------------------
+
+
+2.3M| : @ : @ : @ : @ : @ :
+ | : @ : @ : @ : @ : @ :
+ | : @ : @ : @ : @ : @ :
+ | ........: . . . . . @. . @ . @ :. @. :. @. :.
+ | ::::::::: : @ : : : @: : @ : @ :: @: :: @: ::
+ | ::::::::: : @ : : : @: : @ : @ :: @: :: @: ::
+ | ::::::::: : @ : : : @: : @ : @ :: @: :: @: ::
+ | ::::::::: : @ : : : @: : @ : @ :: @: :: @: ::
+ | ::::::::: : @ : : : @: : @ : @ :: @: :: @: ::
+ | ::::::::: : @ : : : @: : @ : @ :: @: :: @: ::
+ |.. ::::::::.::::::::: : @ : : : @: :: :@ :: :@ ::::@:::: @: ::
+ |:: :::::::::::::::::: : @ : : : @: :: :@ :: :@ ::::@:::: @: ::
+ |::.......:::::::::::::::::: : @ : : : @: :: :@ :: :@ ::::@:::: @: ::
+ |::@:::::::::::::::::::::::: : @ : : : @: :: :@ :: :@ ::::@:::: @: ::
+ |::@:::::::::::::::::::::::: : @ : : : @: :: :@ :: :@ ::::@:::: @: ::
+ |::@:::::::::::::::::::::::: : @ : : : @: :: :@ :: :@ ::::@:::: @: ::
+ |::@:::::::::::::::::::::::: : @ : : : @: :: :@ :: :@ ::::@:::: @: ::
+ |::@:::::::::::::::::::::::: : @ : : : @: :: :@ :: :@ ::::@:::: @: ::
+ |::@:::::::::::::::::::::::: : @ : : : @: :: :@ :: :@ ::::@:::: @: ::
+ |::@:::::::::::::::::::::::: : @ : : : @: :: :@ :: :@ ::::@:::: @: ::
+ 0 +--@-----------------------------@------@--@------@-----@-----@-----@----
+
+
+Number of snapshots: 97
+ Detailed snapshots: [3, 40, 46, 49, 59, 69, 79, 89]
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 0 0 0 0 0 0
+ 1 122,700,000 1,100,008 1,100,000 8 0
+ 2 250,700,000 1,100,008 1,100,000 8 0
+ 3 399,100,000 900,008 900,000 8 0
+100.00% (900000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->100.00% (900000B) 0x8048447: main (long-time.c:18)
+|
+->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 4 527,100,000 900,008 900,000 8 0
+ 5 655,100,000 900,008 900,000 8 0
+ 6 783,100,000 900,008 900,000 8 0
+ 7 911,100,000 900,008 900,000 8 0
+ 8 1,039,100,000 900,008 900,000 8 0
+ 9 1,167,100,000 900,008 900,000 8 0
+ 10 1,295,100,000 900,008 900,000 8 0
+ 11 1,423,100,000 900,008 900,000 8 0
+ 12 1,551,100,000 900,008 900,000 8 0
+ 13 1,653,000,000 1,200,008 1,200,000 8 0
+ 14 1,789,000,000 1,200,008 1,200,000 8 0
+ 15 1,925,000,000 1,200,008 1,200,000 8 0
+ 16 2,061,000,000 1,200,008 1,200,000 8 0
+ 17 2,197,000,000 1,200,008 1,200,000 8 0
+ 18 2,333,000,000 1,200,008 1,200,000 8 0
+ 19 2,469,000,000 1,200,008 1,200,000 8 0
+ 20 2,605,000,000 1,200,008 1,200,000 8 0
+ 21 2,741,000,000 1,200,008 1,200,000 8 0
+ 22 2,930,700,000 1,100,008 1,100,000 8 0
+ 23 3,041,900,000 1,900,016 1,900,000 16 0
+ 24 3,153,900,000 1,900,016 1,900,000 16 0
+ 25 3,265,900,000 1,900,016 1,900,000 16 0
+ 26 3,377,900,000 1,900,016 1,900,000 16 0
+ 27 3,489,900,000 1,900,016 1,900,000 16 0
+ 28 3,601,900,000 1,900,016 1,900,000 16 0
+ 29 3,713,900,000 1,900,016 1,900,000 16 0
+ 30 3,825,900,000 1,900,016 1,900,000 16 0
+ 31 3,937,900,000 1,900,016 1,900,000 16 0
+ 32 4,049,900,000 1,900,016 1,900,000 16 0
+ 33 4,161,900,000 1,900,016 1,900,000 16 0
+ 34 4,273,900,000 1,900,016 1,900,000 16 0
+ 35 4,467,900,000 2,300,016 2,300,000 16 0
+ 36 4,688,000,000 0 0 0 0
+ 37 4,798,200,000 0 0 0 0
+ 38 5,017,900,000 1,900,016 1,900,000 16 0
+ 39 5,238,200,000 0 0 0 0
+ 40 5,457,900,000 1,900,016 1,900,000 16 0
+100.00% (1900000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->57.89% (1100000B) 0x80483F7: main (long-time.c:13)
+|
+->42.10% (800000B) 0x80483E4: main (long-time.c:12)
+|
+->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 41 5,678,200,000 0 0 0 0
+ 42 5,897,900,000 1,900,016 1,900,000 16 0
+ 43 6,118,200,000 0 0 0 0
+ 44 6,337,900,000 1,900,016 1,900,000 16 0
+ 45 6,448,000,000 0 0 0 0
+ 46 6,558,200,000 0 0 0 0
+00.00% (0B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 47 6,777,900,000 1,900,016 1,900,000 16 0
+ 48 6,888,000,000 0 0 0 0
+ 49 7,107,900,000 2,300,016 2,300,000 16 0
+100.00% (2300000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->52.17% (1200000B) 0x8048418: main (long-time.c:15)
+|
+->47.83% (1100000B) 0x80483F7: main (long-time.c:13)
+|
+->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 50 7,209,900,000 1,900,016 1,900,000 16 0
+ 51 7,312,000,000 0 0 0 0
+ 52 7,414,200,000 0 0 0 0
+ 53 7,517,000,000 1,200,008 1,200,000 8 0
+ 54 7,619,900,000 2,300,016 2,300,000 16 0
+ 55 7,721,900,000 1,900,016 1,900,000 16 0
+ 56 7,824,000,000 0 0 0 0
+ 57 7,926,200,000 0 0 0 0
+ 58 8,029,000,000 1,200,008 1,200,000 8 0
+ 59 8,131,900,000 2,300,016 2,300,000 16 0
+100.00% (2300000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->52.17% (1200000B) 0x8048418: main (long-time.c:15)
+|
+->47.83% (1100000B) 0x80483F7: main (long-time.c:13)
+|
+->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 60 8,233,900,000 1,900,016 1,900,000 16 0
+ 61 8,336,000,000 0 0 0 0
+ 62 8,438,200,000 0 0 0 0
+ 63 8,541,000,000 1,200,008 1,200,000 8 0
+ 64 8,643,900,000 2,300,016 2,300,000 16 0
+ 65 8,745,900,000 1,900,016 1,900,000 16 0
+ 66 8,848,000,000 0 0 0 0
+ 67 8,950,200,000 0 0 0 0
+ 68 9,053,000,000 1,200,008 1,200,000 8 0
+ 69 9,155,900,000 2,300,016 2,300,000 16 0
+100.00% (2300000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->52.17% (1200000B) 0x8048418: main (long-time.c:15)
+|
+->47.83% (1100000B) 0x80483F7: main (long-time.c:13)
+|
+->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 70 9,257,900,000 1,900,016 1,900,000 16 0
+ 71 9,360,000,000 0 0 0 0
+ 72 9,462,200,000 0 0 0 0
+ 73 9,565,000,000 1,200,008 1,200,000 8 0
+ 74 9,667,900,000 2,300,016 2,300,000 16 0
+ 75 9,769,900,000 1,900,016 1,900,000 16 0
+ 76 9,872,000,000 0 0 0 0
+ 77 9,974,200,000 0 0 0 0
+ 78 10,077,000,000 1,200,008 1,200,000 8 0
+ 79 10,179,900,000 2,300,016 2,300,000 16 0
+100.00% (2300000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->52.17% (1200000B) 0x8048418: main (long-time.c:15)
+|
+->47.83% (1100000B) 0x80483F7: main (long-time.c:13)
+|
+->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 80 10,281,900,000 1,900,016 1,900,000 16 0
+ 81 10,384,000,000 0 0 0 0
+ 82 10,486,200,000 0 0 0 0
+ 83 10,589,000,000 1,200,008 1,200,000 8 0
+ 84 10,691,900,000 2,300,016 2,300,000 16 0
+ 85 10,793,900,000 1,900,016 1,900,000 16 0
+ 86 10,896,000,000 0 0 0 0
+ 87 10,998,200,000 0 0 0 0
+ 88 11,101,000,000 1,200,008 1,200,000 8 0
+ 89 11,203,900,000 2,300,016 2,300,000 16 0
+100.00% (2300000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->52.17% (1200000B) 0x8048418: main (long-time.c:15)
+|
+->47.83% (1100000B) 0x80483F7: main (long-time.c:13)
+|
+->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 90 11,305,900,000 1,900,016 1,900,000 16 0
+ 91 11,408,000,000 0 0 0 0
+ 92 11,510,200,000 0 0 0 0
+ 93 11,613,000,000 1,200,008 1,200,000 8 0
+ 94 11,715,900,000 2,300,016 2,300,000 16 0
+ 95 11,817,900,000 1,900,016 1,900,000 16 0
+ 96 11,920,000,000 0 0 0 0
Added: branches/MASSIF2/massif/tests/long-time.stderr.exp
===================================================================
--- branches/MASSIF2/massif/tests/long-time.stderr.exp (rev 0)
+++ branches/MASSIF2/massif/tests/long-time.stderr.exp 2007-09-21 05:50:30 UTC (rev 6888)
@@ -0,0 +1,2 @@
+
+
Added: branches/MASSIF2/massif/tests/long-time.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/long-time.vgtest (rev 0)
+++ branches/MASSIF2/massif/tests/long-time.vgtest 2007-09-21 05:50:30 UTC (rev 6888)
@@ -0,0 +1,4 @@
+prog: long-time
+vgopts: --stacks=no --time-unit=B
+post: perl ../../massif/ms_print massif.out
+cleanup: rm massif.out
|
|
From: <sv...@va...> - 2007-09-21 05:12:37
|
Author: njn
Date: 2007-09-21 06:12:34 +0100 (Fri, 21 Sep 2007)
New Revision: 6887
Log:
fix compile error
Modified:
branches/MASSIF2/massif/ms_main.c
Modified: branches/MASSIF2/massif/ms_main.c
===================================================================
--- branches/MASSIF2/massif/ms_main.c 2007-09-21 05:05:45 UTC (rev 6886)
+++ branches/MASSIF2/massif/ms_main.c 2007-09-21 05:12:34 UTC (rev 6887)
@@ -1500,7 +1500,7 @@
// every XPt significant. We also always consider the alloc_xpt to be
// significant.
tl_assert(xpt->curr_szB <= curr_total_szB);
- return xpt == alloc_xpt || 0 == clo_threshold
+ return xpt == alloc_xpt || 0 == clo_threshold ||
(0 != curr_total_szB &&
xpt->curr_szB * 10000 / curr_total_szB >= clo_threshold);
}
|
|
From: <sv...@va...> - 2007-09-21 05:05:44
|
Author: njn
Date: 2007-09-21 06:05:45 +0100 (Fri, 21 Sep 2007)
New Revision: 6886
Log:
Handle zero size snapshots better throughout. Added a couple of test cases
for them.
Added:
branches/MASSIF2/massif/tests/zero.c
branches/MASSIF2/massif/tests/zero1.post.exp
branches/MASSIF2/massif/tests/zero1.stderr.exp
branches/MASSIF2/massif/tests/zero1.vgtest
branches/MASSIF2/massif/tests/zero2.post.exp
branches/MASSIF2/massif/tests/zero2.stderr.exp
branches/MASSIF2/massif/tests/zero2.vgtest
Modified:
branches/MASSIF2/massif/ms_main.c
branches/MASSIF2/massif/ms_print
branches/MASSIF2/massif/tests/Makefile.am
Modified: branches/MASSIF2/massif/ms_main.c
===================================================================
--- branches/MASSIF2/massif/ms_main.c 2007-09-21 04:33:36 UTC (rev 6885)
+++ branches/MASSIF2/massif/ms_main.c 2007-09-21 05:05:45 UTC (rev 6886)
@@ -1245,6 +1245,7 @@
}
VG_(HT_add_node)(malloc_list, hc);
+ // Do a snapshot!
take_snapshot(" alloc");
return p;
@@ -1490,14 +1491,18 @@
return mbuf;
}
-// Does the xpt account for >= 1% of total memory used?
+// Does the xpt account for >= 1% (or so) of total memory used?
static Bool is_significant_XPt(XPt* xpt, SizeT curr_total_szB)
{
// clo_threshold is measured in hundredths of a percent of total size,
// ie. 10,000ths of total size. So clo_threshold=100 means that the
- // threshold is 1% of total size.
+ // threshold is 1% of total size. If curr_total_szB is zero, we consider
+ // every XPt significant. We also always consider the alloc_xpt to be
+ // significant.
tl_assert(xpt->curr_szB <= curr_total_szB);
- return (xpt->curr_szB * 10000 / curr_total_szB >= clo_threshold);
+ return xpt == alloc_xpt || 0 == clo_threshold
+ (0 != curr_total_szB &&
+ xpt->curr_szB * 10000 / curr_total_szB >= clo_threshold);
}
static void pp_snapshot_XPt(Int fd, XPt* xpt, Int depth, Char* depth_str,
Modified: branches/MASSIF2/massif/ms_print
===================================================================
--- branches/MASSIF2/massif/ms_print 2007-09-21 04:33:36 UTC (rev 6885)
+++ branches/MASSIF2/massif/ms_print 2007-09-21 05:05:45 UTC (rev 6886)
@@ -77,6 +77,13 @@
my $fancy = '-' x 80;
my $fancy_nl = $fancy . "\n";
+# Returns 0 if the denominator is 0.
+sub safe_div_0($$)
+{
+ my ($x, $y) = @_;
+ return ($y ? $x / $y : 0);
+}
+
#-----------------------------------------------------------------------------
# Argument and option handling
#-----------------------------------------------------------------------------
@@ -148,31 +155,36 @@
return equals_num_line($line, $fieldname);
}
-sub is_significant_XPt($$)
+sub is_significant_XPt($$$)
{
- my ($xpt_szB, $total_szB) = @_;
+ my ($is_top_node, $xpt_szB, $total_szB) = @_;
($xpt_szB <= $total_szB) or die;
- return ( $xpt_szB * 100 / $total_szB >= $threshold ? 1 : 0 );
+ # Nb: we always consider the alloc-XPt significant, even if the size is
+ # zero.
+ return $is_top_node || 0 == $threshold ||
+ ( $total_szB != 0 && $xpt_szB * 100 / $total_szB >= $threshold );
}
# Forward declaration, because it's recursive.
-sub read_heap_tree($$$$$);
+sub read_heap_tree($$$$$$);
# Return pair: if the tree was significant, both are zero. If it was
# insignificant, the first element is 1 and the second is the number of
# bytes.
-sub read_heap_tree($$$$$)
+sub read_heap_tree($$$$$$)
{
# Read the line and determine if it is significant.
- my ($print, $this_prefix, $child_midfix, $arrow, $mem_total_B) = @_;
+ my ($print, $is_top_node, $this_prefix, $child_midfix, $arrow,
+ $mem_total_B) = @_;
my $line = get_line();
(defined $line and $line =~ /^\s*n(\d+):\s*(\d+)(.*)$/)
or die("Line $.: expected a tree node line, got:\n$line\n");
my $n_children = $1;
my $bytes = $2;
my $details = $3;
- my $perc = 100 * $bytes / $mem_total_B;
- my $is_significant = is_significant_XPt($bytes, $mem_total_B);
+ my $perc = safe_div_0(100 * $bytes, $mem_total_B);
+ # Nb: we always print the alloc-XPt, even if its size is zero.
+ my $is_significant = is_significant_XPt($is_top_node, $bytes, $mem_total_B);
# We precede this node's line with "$this_prefix.$arrow". We precede
# any children of this node with "$this_prefix$child_midfix$arrow".
@@ -190,7 +202,8 @@
# If child is the last sibling, the midfix is empty.
my $child_midfix2 = ( $i+1 == $n_children ? " " : "| " );
my ($is_child_insignificant, $child_insig_bytes) =
- read_heap_tree($print, $this_prefix2, $child_midfix2, "->",
+ # '0' means it's not the top node of the tree.
+ read_heap_tree($print, 0, $this_prefix2, $child_midfix2, "->",
$mem_total_B);
$n_insig_children += $is_child_insignificant;
$total_insig_children_szB += $child_insig_bytes;
@@ -200,7 +213,7 @@
# If this was significant but any children were insignificant, print
# the "in N places" line for them.
if ($print && $n_insig_children > 0) {
- $perc = 100 * $total_insig_children_szB / $mem_total_B;
+ $perc = safe_div_0(100 * $total_insig_children_szB, $mem_total_B);
printf("%s->%05.2f%% (%dB) in %d+ places, all below "
. "ms_print's threshold (%05.2f%%)\n",
$this_prefix2, $perc, $total_insig_children_szB,
@@ -277,8 +290,9 @@
if ($heap_tree eq "empty") {
# do nothing
} elsif ($heap_tree eq "...") {
- # Depth in the heap tree. '0' means the tree should not be printed.
- read_heap_tree(0, "", "", "", $mem_total_B);
+ # Depth in the heap tree. '0' means the tree should not be
+ # printed. '1' means it's the top node of the tree.
+ read_heap_tree(0, 1, "", "", "", $mem_total_B);
} else {
die("Line $.: expected 'empty' or '...' after 'heap_tree='\n");
}
@@ -337,9 +351,6 @@
}
}
- my $detailed_char = '@';
- my $normal_char = ':';
-
# Write snapshot bars into graph[][].
#
# Each row represents K bytes, which is 1/GRAPH_Yth of the peak size
@@ -362,7 +373,9 @@
my $normal_full_char = ':';
my $half_char = '.';
- # Work out how many bytes each row represents.
+ # Work out how many bytes each row represents. If the peak size was 0,
+ # make it 1 so that the Y-axis covers a non-zero range of values.
+ if (0 == $peak_mem_total_szB) { $peak_mem_total_szB = 1; }
my $K = $peak_mem_total_szB / $GRAPH_Y;
for (my $i = 0; $i < $n_snapshots; $i++) {
@@ -376,14 +389,13 @@
# want to overwrite detailed snapshot's bars with non-detailed
# snapshot's bars.
my $should_draw_column =
- ($is_detaileds[$i] or $graph[$x][0] ne $detailed_char
- ? 1 : 0);
+ ($is_detaileds[$i] or $graph[$x][0] ne $detailed_full_char);
if ($should_draw_column) {
# If it's detailed, mark the X-axis. Also choose the full-slot
# char.
my $full_char;
if ($is_detaileds[$i]) {
- $graph[$x][0] = $detailed_char;
+ $graph[$x][0] = $detailed_full_char;
$full_char = $detailed_full_char;
} else {
$full_char = $normal_full_char;
@@ -533,8 +545,9 @@
# do nothing
} elsif ($heap_tree eq "...") {
# Depth in the heap tree. '1' means the tree should be printed.
- # Then reprint the header.
- read_heap_tree(1, "", "", "", $mem_total_B);
+ # '1' means it's the top node of the tree. Then reprint the
+ # header.
+ read_heap_tree(1, 1, "", "", "", $mem_total_B);
# XXX: don't print the header if there are no more snapshots!
# (see tests/thresholds.c for an example)
print($header);
Modified: branches/MASSIF2/massif/tests/Makefile.am
===================================================================
--- branches/MASSIF2/massif/tests/Makefile.am 2007-09-21 04:33:36 UTC (rev 6885)
+++ branches/MASSIF2/massif/tests/Makefile.am 2007-09-21 05:05:45 UTC (rev 6886)
@@ -17,7 +17,9 @@
thresholds_5_0.post.exp thresholds_5_0.stderr.exp thresholds_5_0.vgtest \
thresholds_5_10.post.exp thresholds_5_10.stderr.exp thresholds_5_10.vgtest \
thresholds_10_10.post.exp thresholds_10_10.stderr.exp thresholds_10_10.vgtest \
- toobig-allocs.stderr.exp toobig-allocs.vgtest
+ toobig-allocs.stderr.exp toobig-allocs.vgtest \
+ zero1.post.exp zero1.stderr.exp zero1.vgtest
+ zero2.post.exp zero2.stderr.exp zero2.vgtest
AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -g $(AM_FLAG_M3264_PRI)
@@ -25,6 +27,7 @@
alloc-fns \
basic \
basic_malloc \
- culling1 culling2
- thresholds
+ culling1 culling2 \
+ thresholds \
+ zero
Added: branches/MASSIF2/massif/tests/zero.c
===================================================================
--- branches/MASSIF2/massif/tests/zero.c (rev 0)
+++ branches/MASSIF2/massif/tests/zero.c 2007-09-21 05:05:45 UTC (rev 6886)
@@ -0,0 +1,19 @@
+// Test zero-size allocations -- shouldn't cause division by zero, that kind
+// of thing.
+
+#include <stdlib.h>
+
+int main(void)
+{
+ free(malloc(0));
+ free(malloc(0));
+ free(malloc(0));
+ free(malloc(0));
+ free(malloc(0));
+ free(malloc(0));
+ free(malloc(0));
+ free(malloc(0));
+ free(malloc(0));
+ free(malloc(0));
+ return 0;
+}
Added: branches/MASSIF2/massif/tests/zero1.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/zero1.post.exp (rev 0)
+++ branches/MASSIF2/massif/tests/zero1.post.exp 2007-09-21 05:05:45 UTC (rev 6886)
@@ -0,0 +1,68 @@
+--------------------------------------------------------------------------------
+Command: ./zero
+Data file: massif.out
+Options: XXX
+--------------------------------------------------------------------------------
+
+
+1.0 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ 0 +@-----------------------------------------------------------------------
+
+
+Number of snapshots: 21
+ Detailed snapshots: [9, 19]
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 0 0 0 0 0 0
+ 1 0 0 0 0 0
+ 2 0 0 0 0 0
+ 3 0 0 0 0 0
+ 4 0 0 0 0 0
+ 5 0 0 0 0 0
+ 6 0 0 0 0 0
+ 7 0 0 0 0 0
+ 8 0 0 0 0 0
+ 9 0 0 0 0 0
+00.00% (0B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->00.00% (0B) in 5 places, all below massif's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 10 0 0 0 0 0
+ 11 0 0 0 0 0
+ 12 0 0 0 0 0
+ 13 0 0 0 0 0
+ 14 0 0 0 0 0
+ 15 0 0 0 0 0
+ 16 0 0 0 0 0
+ 17 0 0 0 0 0
+ 18 0 0 0 0 0
+ 19 0 0 0 0 0
+00.00% (0B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->00.00% (0B) in 10 places, all below massif's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 20 0 0 0 0 0
Added: branches/MASSIF2/massif/tests/zero1.stderr.exp
===================================================================
--- branches/MASSIF2/massif/tests/zero1.stderr.exp (rev 0)
+++ branches/MASSIF2/massif/tests/zero1.stderr.exp 2007-09-21 05:05:45 UTC (rev 6886)
@@ -0,0 +1,2 @@
+
+
Added: branches/MASSIF2/massif/tests/zero1.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/zero1.vgtest (rev 0)
+++ branches/MASSIF2/massif/tests/zero1.vgtest 2007-09-21 05:05:45 UTC (rev 6886)
@@ -0,0 +1,4 @@
+prog: zero
+vgopts: --stacks=no --heap-admin=no --time-unit=B
+post: perl ../../massif/ms_print --threshold=0 massif.out
+cleanup: rm massif.out
Added: branches/MASSIF2/massif/tests/zero2.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/zero2.post.exp (rev 0)
+++ branches/MASSIF2/massif/tests/zero2.post.exp 2007-09-21 05:05:45 UTC (rev 6886)
@@ -0,0 +1,68 @@
+--------------------------------------------------------------------------------
+Command: ./zero
+Data file: massif.out
+Options: XXX
+--------------------------------------------------------------------------------
+
+
+1.0 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ 0 +@-----------------------------------------------------------------------
+
+
+Number of snapshots: 21
+ Detailed snapshots: [9, 19]
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 0 0 0 0 0 0
+ 1 0 0 0 0 0
+ 2 0 0 0 0 0
+ 3 0 0 0 0 0
+ 4 0 0 0 0 0
+ 5 0 0 0 0 0
+ 6 0 0 0 0 0
+ 7 0 0 0 0 0
+ 8 0 0 0 0 0
+ 9 0 0 0 0 0
+00.00% (0B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 10 0 0 0 0 0
+ 11 0 0 0 0 0
+ 12 0 0 0 0 0
+ 13 0 0 0 0 0
+ 14 0 0 0 0 0
+ 15 0 0 0 0 0
+ 16 0 0 0 0 0
+ 17 0 0 0 0 0
+ 18 0 0 0 0 0
+ 19 0 0 0 0 0
+00.00% (0B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 20 0 0 0 0 0
Added: branches/MASSIF2/massif/tests/zero2.stderr.exp
===================================================================
--- branches/MASSIF2/massif/tests/zero2.stderr.exp (rev 0)
+++ branches/MASSIF2/massif/tests/zero2.stderr.exp 2007-09-21 05:05:45 UTC (rev 6886)
@@ -0,0 +1,2 @@
+
+
Added: branches/MASSIF2/massif/tests/zero2.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/zero2.vgtest (rev 0)
+++ branches/MASSIF2/massif/tests/zero2.vgtest 2007-09-21 05:05:45 UTC (rev 6886)
@@ -0,0 +1,4 @@
+prog: zero
+vgopts: --stacks=no --heap-admin=no --time-unit=B
+post: perl ../../massif/ms_print massif.out
+cleanup: rm massif.out
|
|
From: <sv...@va...> - 2007-09-21 04:37:28
|
Author: njn
Date: 2007-09-21 05:33:36 +0100 (Fri, 21 Sep 2007)
New Revision: 6885
Log:
Clean up graph drawing a bit.
Modified:
branches/MASSIF2/massif/ms_print
Modified: branches/MASSIF2/massif/ms_print
===================================================================
--- branches/MASSIF2/massif/ms_print 2007-09-21 04:19:04 UTC (rev 6884)
+++ branches/MASSIF2/massif/ms_print 2007-09-21 04:33:36 UTC (rev 6885)
@@ -35,73 +35,6 @@
# - merge read_input_file[12]
#----------------------------------------------------------------------------
-# Discussion of the graph.
-#----------------------------------------------------------------------------
-# The summary output includes a graph like this.
-#
-#---------------------------------------------------------------------------
-# 100M|B . :A
-# | .::: :::#
-# | :::::. c:::#:
-# | b:::::: |:::#::
-# | :|:::::::|:::#::
-# 75M| :|:::::::|:::#:::
-# | ::|:::::::|:::#:::
-# | ::|:::::::|:::#:::d
-# | ::|:::::::|:::#:::|:
-# | .::|:::::::|:::#:::|::
-# 50M| :::|:::::::|:::#:::|:::
-# | ::::|:::::::|:::#:::|::::: :::.
-# | :::::|:::::::|:::#:::|:::::: g::::::::
-# | a:::::|:::::::|:::#:::|:::::::e: ::|::::::::::h
-# | |:::::|:::::::|:::#:::|:::::::|::. :: .:::|::::::::::|::
-# 25M| |:::::|:::::::|:::#:::|:::::::|:::: f:::::::|::::::::::|::
-# | :|:::::|:::::::|:::#:::|:::::::|::::. .::|:::::::|::::::::::|::
-# | .::|:::::|:::::::|:::#:::|:::::::|::::::::::|:::::::|::::::::::|::
-# | .::::|:::::|:::::::|:::#:::|:::::::|::::::::::|:::::::|::::::::::|::
-# |:::::::|:::::|:::::::|:::#:::|:::::::|::::::::::|:::::::|::::::::::|::
-# 0M+----------------------------------------------------------------------t
-# 012
-#
-# Temporary snapshots:
-# a: periodic snapshot, total size: 33,000,000 bytes
-# b: periodic snapshot, total size: 82,000,000 bytes
-# c: periodic snapshot, total size: 90,000,000 bytes
-# d: periodic snapshot, total size: 64,000,000 bytes
-# e: periodic snapshot, total size: 34,000,000 bytes
-# f: periodic snapshot, total size: 24,000,000 bytes
-# g: periodic snapshot, total size: 39,000,000 bytes
-# h: periodic snapshot, total size: 33,000,000 bytes
-#
-# Permanent snapshots:
-# A: peak snapshot, total size: 100,000,000 bytes
-#---------------------------------------------------------------------------
-#
-# Explanation of the y-axis:
-# - Top of the x-axis box represents 0.
-#
-# 4M^| .: This row has base=2M, half-threshold=3M, full-threshold=4M
-# 2M^| .::: This row has base=0M, half-threshold=1M, full-threshold=2M
-# 0M +-----
-# abcde
-#
-# - A '.' is only shown in a row if we've reached its half-threshold
-# - A ':' is only shown in a row if we've reached its full-threshold
-# - So: a is in range 0 -- 0.99
-# b is in range 1 -- 1.99
-# c is in range 2 -- 2.99
-# d is in range 3 -- 3.99
-# e is in range 4 -- 4.99
-#
-# Explanation of x-axis:
-# - Assume each column represents one second
-# - First usable column has range 0..0.99s
-# - Second usable column has range 1..1.99s
-# - etc.
-
-
-
-#----------------------------------------------------------------------------
# Global variables, main data structures
#----------------------------------------------------------------------------
@@ -378,11 +311,11 @@
# Print graph
#-------------------------------------------------------------------------
# The ASCII graph.
- # Row 0 ([0..GRAPH_X][0]) is the x-axis.
- # Column 0 ([0][0..GRAPH_Y]) is the y-axis.
+ # Row 0 ([0..GRAPH_X][0]) is the X-axis.
+ # Column 0 ([0][0..GRAPH_Y]) is the Y-axis.
# The rest ([1][1]..[GRAPH_X][GRAPH_Y]) is the usable graph area.
- my $GRAPH_X = 72; # Make these command-line options
- my $GRAPH_Y = 20;
+ my $GRAPH_X = 72; # XXX: Make these command-line options, with
+ my $GRAPH_Y = 20; # sensible min/max values (eg. 10--1000)
my @graph;
my $x;
my $y;
@@ -396,8 +329,8 @@
# Setup graph[][].
$graph[0][0] = '+'; # axes join point
- for ($x = 1; $x <= $GRAPH_X; $x++) { $graph[$x][0] = '-'; } # x-axis
- for ($y = 1; $y <= $GRAPH_Y; $y++) { $graph[0][$y] = '|'; } # y-axis
+ for ($x = 1; $x <= $GRAPH_X; $x++) { $graph[$x][0] = '-'; } # X-axis
+ for ($y = 1; $y <= $GRAPH_Y; $y++) { $graph[0][$y] = '|'; } # Y-axis
for ($x = 1; $x <= $GRAPH_X; $x++) { # usable area
for ($y = 1; $y <= $GRAPH_Y; $y++) {
$graph[$x][$y] = ' ';
@@ -408,45 +341,66 @@
my $normal_char = ':';
# Write snapshot bars into graph[][].
+ #
+ # Each row represents K bytes, which is 1/GRAPH_Yth of the peak size
+ # (and K can be non-integral). When drawing the column for a snapshot,
+ # in order to fill the slot in row y (where the first row drawn on is
+ # row 1) with a half-char (eg. '.'), it must be >= (y - 1/2)*K. In
+ # order to fill a row/column spot with a full-char (eg. ':'), it must be
+ # >= y*K. For example, if K = 10 bytes, then the values 0, 4, 5, 9, 10,
+ # 14, 15, 19, 20, 24, 25, 29, 30 would be drawn like this (showing one
+ # per column):
+ #
+ # y (y - 1/2) * K y * K
+ # - ------------- -----------
+ # 30 | ..: 3 (3 - 1/2) * 10 = 25 3 * 10 = 30
+ # 20 | ..::::: 2 (2 - 1/2) * 10 = 15 2 * 10 = 20
+ # 10 | ..::::::::: 1 (1 - 1/2) * 10 = 5 1 * 10 = 10
+ # 0 +-------------
+
+ my $detailed_full_char = '@';
+ my $normal_full_char = ':';
+ my $half_char = '.';
+
+ # Work out how many bytes each row represents.
+ my $K = $peak_mem_total_szB / $GRAPH_Y;
+
for (my $i = 0; $i < $n_snapshots; $i++) {
- # Work out how many bytes each row represents.
- my $per_row_full_thresh_szB = $peak_mem_total_szB / $GRAPH_Y;
- my $per_row_half_thresh_szB = $per_row_full_thresh_szB / 2;
-
# Work out which column this snapshot belongs to.
my $x_pos_frac = ($times[$i] / $end_time) * $GRAPH_X;
- $x = int($x_pos_frac) + 1; # +1 due to y-axis
+ $x = int($x_pos_frac) + 1; # +1 due to Y-axis
- # Draw the column only if it's a detailed snapshot, or we don't already
- # have a detailed snapshot's bar in this column -- we don't want to
- # overwrite detailed snapshot's bars with non-detailed snapshot's bars.
+ # Draw the column only if it's a detailed snapshot, or we don't
+ # already have a detailed snapshot's bar in this column -- we don't
+ # want to overwrite detailed snapshot's bars with non-detailed
+ # snapshot's bars.
my $should_draw_column =
($is_detaileds[$i] or $graph[$x][0] ne $detailed_char
? 1 : 0);
- if ($should_draw_column == 1) {
- # If it's detailed, mark the x-axis
+ if ($should_draw_column) {
+ # If it's detailed, mark the X-axis. Also choose the full-slot
+ # char.
+ my $full_char;
if ($is_detaileds[$i]) {
- $graph[$x][0] = $detailed_char;
+ $graph[$x][0] = $detailed_char;
+ $full_char = $detailed_full_char;
+ } else {
+ $full_char = $normal_full_char;
}
# Grow this snapshot bar from bottom to top.
for ($y = 1; $y <= $GRAPH_Y; $y++) {
- my $this_row_full_thresh_szB = $y * $per_row_full_thresh_szB;
- my $this_row_half_thresh_szB =
- $this_row_full_thresh_szB - $per_row_half_thresh_szB;
-
- if ($mem_total_Bs[$i] >= $this_row_half_thresh_szB) {
- $graph[$x][$y] = '.';
+ if ($mem_total_Bs[$i] >= ($y - 1/2) * $K) {
+ $graph[$x][$y] = $half_char;
}
- if ($mem_total_Bs[$i] >= $this_row_full_thresh_szB) {
- $graph[$x][$y] = ( $is_detaileds[$i]
- ? $detailed_char : $normal_char );
+ if ($mem_total_Bs[$i] >= $y * $K) {
+ $graph[$x][$y] = $full_char;
}
}
}
}
- # Work out the units for the $y-axis.
+ # Work out the units for the Y-axis.
my $orders_of_magnitude = 0;
my $unit;
my $peak_mem_total_szBscaled = $peak_mem_total_szB;
@@ -463,7 +417,7 @@
# Print graph[][].
for ($y = $GRAPH_Y; $y >= 0; $y--) {
- # Row prefix (ie. x-axis label)
+ # Row prefix (ie. X-axis label)
if ($GRAPH_Y == $y) { # top point
if ($peak_mem_total_szBscaled < 10) {
printf("%3.1f%s", $peak_mem_total_szBscaled, $unit);
|
|
From: <sv...@va...> - 2007-09-21 04:19:09
|
Author: njn
Date: 2007-09-21 05:19:04 +0100 (Fri, 21 Sep 2007)
New Revision: 6884
Log:
Clarify -v snapshot printing, including showing the cause of the snapshot
taking.
Modified:
branches/MASSIF2/massif/ms_main.c
branches/MASSIF2/massif/tests/culling1.stderr.exp
branches/MASSIF2/massif/tests/culling2.stderr.exp
Modified: branches/MASSIF2/massif/ms_main.c
===================================================================
--- branches/MASSIF2/massif/ms_main.c 2007-09-21 02:08:49 UTC (rev 6883)
+++ branches/MASSIF2/massif/ms_main.c 2007-09-21 04:19:04 UTC (rev 6884)
@@ -31,6 +31,7 @@
// XXX:
//---------------------------------------------------------------------------
// Todo:
+// - do a test for realloc -- I think no snapshots are being taken for it.
// - do a test where the time exceeds 32-bits
// - do a test with no allocations -- bar should be zero sized in graph?
// - do tests with complicated stack traces -- big ones, ones that require
@@ -1045,7 +1046,7 @@
if (VG_(clo_verbosity) > 1) {
VERB("Finished culling (%3d of %3d deleted)", n_deleted, MAX_N_SNAPSHOTS);
for (i = 0; i < next_snapshot_i; i++) {
- VERB_snapshot(" new", i);
+ VERB_snapshot(" post-cull", i);
}
VERB("New time interval = %lld (between snapshots %d and %d)",
min_timespan, min_timespan_i-1, min_timespan_i);
@@ -1057,7 +1058,7 @@
// Take a snapshot. 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(void)
+static void take_snapshot(Char* kind)
{
// 'min_time_interval' is the minimum time interval between snapshots;
// if we try to take a snapshot and less than this much time has passed,
@@ -1157,7 +1158,7 @@
}
if (VG_(clo_verbosity) > 1) {
- VERB_snapshot("took", this_snapshot_i);
+ VERB_snapshot(kind, this_snapshot_i);
}
// Cull the entries, if our snapshot table is full.
@@ -1244,8 +1245,7 @@
}
VG_(HT_add_node)(malloc_list, hc);
- // Do a snapshot!
- take_snapshot();
+ take_snapshot(" alloc");
return p;
}
@@ -1278,7 +1278,7 @@
VG_(cli_free)( p );
// Do a snapshot!
- take_snapshot();
+ take_snapshot("dealloc");
}
static __inline__
@@ -1450,7 +1450,7 @@
if (is_first_SB) {
// Do an initial sample for t = 0
- take_snapshot();
+ take_snapshot("startup");
is_first_SB = False;
}
Modified: branches/MASSIF2/massif/tests/culling1.stderr.exp
===================================================================
--- branches/MASSIF2/massif/tests/culling1.stderr.exp 2007-09-21 02:08:49 UTC (rev 6883)
+++ branches/MASSIF2/massif/tests/culling1.stderr.exp 2007-09-21 04:19:04 UTC (rev 6884)
@@ -5,106 +5,106 @@
Massif: 4: __builtin_new
Massif: 5: __builtin_vec_new
Massif: 6: malloc
-Massif: took snapshot 0 (t = 0 B)
-Massif: took snapshot 1 (t = 10 B)
-Massif: took snapshot 2 (t = 20 B)
-Massif: took snapshot 3 (t = 30 B)
-Massif: took snapshot 4 (t = 40 B)
-Massif: took snapshot 5 (t = 50 B)
-Massif: took snapshot 6 (t = 60 B)
-Massif: took snapshot 7 (t = 70 B)
-Massif: took snapshot 8 (t = 80 B)
-Massif: took snapshot 9 (t = 90 B) (detailed)
-Massif: took snapshot 10 (t = 100 B)
-Massif: took snapshot 11 (t = 110 B)
-Massif: took snapshot 12 (t = 120 B)
-Massif: took snapshot 13 (t = 130 B)
-Massif: took snapshot 14 (t = 140 B)
-Massif: took snapshot 15 (t = 150 B)
-Massif: took snapshot 16 (t = 160 B)
-Massif: took snapshot 17 (t = 170 B)
-Massif: took snapshot 18 (t = 180 B)
-Massif: took snapshot 19 (t = 190 B) (detailed)
-Massif: took snapshot 20 (t = 200 B)
-Massif: took snapshot 21 (t = 210 B)
-Massif: took snapshot 22 (t = 220 B)
-Massif: took snapshot 23 (t = 230 B)
-Massif: took snapshot 24 (t = 240 B)
-Massif: took snapshot 25 (t = 250 B)
-Massif: took snapshot 26 (t = 260 B)
-Massif: took snapshot 27 (t = 270 B)
-Massif: took snapshot 28 (t = 280 B)
-Massif: took snapshot 29 (t = 290 B) (detailed)
-Massif: took snapshot 30 (t = 300 B)
-Massif: took snapshot 31 (t = 310 B)
-Massif: took snapshot 32 (t = 320 B)
-Massif: took snapshot 33 (t = 330 B)
-Massif: took snapshot 34 (t = 340 B)
-Massif: took snapshot 35 (t = 350 B)
-Massif: took snapshot 36 (t = 360 B)
-Massif: took snapshot 37 (t = 370 B)
-Massif: took snapshot 38 (t = 380 B)
-Massif: took snapshot 39 (t = 390 B) (detailed)
-Massif: took snapshot 40 (t = 400 B)
-Massif: took snapshot 41 (t = 410 B)
-Massif: took snapshot 42 (t = 420 B)
-Massif: took snapshot 43 (t = 430 B)
-Massif: took snapshot 44 (t = 440 B)
-Massif: took snapshot 45 (t = 450 B)
-Massif: took snapshot 46 (t = 460 B)
-Massif: took snapshot 47 (t = 470 B)
-Massif: took snapshot 48 (t = 480 B)
-Massif: took snapshot 49 (t = 490 B) (detailed)
-Massif: took snapshot 50 (t = 500 B)
-Massif: took snapshot 51 (t = 510 B)
-Massif: took snapshot 52 (t = 520 B)
-Massif: took snapshot 53 (t = 530 B)
-Massif: took snapshot 54 (t = 540 B)
-Massif: took snapshot 55 (t = 550 B)
-Massif: took snapshot 56 (t = 560 B)
-Massif: took snapshot 57 (t = 570 B)
-Massif: took snapshot 58 (t = 580 B)
-Massif: took snapshot 59 (t = 590 B) (detailed)
-Massif: took snapshot 60 (t = 600 B)
-Massif: took snapshot 61 (t = 610 B)
-Massif: took snapshot 62 (t = 620 B)
-Massif: took snapshot 63 (t = 630 B)
-Massif: took snapshot 64 (t = 640 B)
-Massif: took snapshot 65 (t = 650 B)
-Massif: took snapshot 66 (t = 660 B)
-Massif: took snapshot 67 (t = 670 B)
-Massif: took snapshot 68 (t = 680 B)
-Massif: took snapshot 69 (t = 690 B) (detailed)
-Massif: took snapshot 70 (t = 700 B)
-Massif: took snapshot 71 (t = 710 B)
-Massif: took snapshot 72 (t = 720 B)
-Massif: took snapshot 73 (t = 730 B)
-Massif: took snapshot 74 (t = 740 B)
-Massif: took snapshot 75 (t = 750 B)
-Massif: took snapshot 76 (t = 760 B)
-Massif: took snapshot 77 (t = 770 B)
-Massif: took snapshot 78 (t = 780 B)
-Massif: took snapshot 79 (t = 790 B) (detailed)
-Massif: took snapshot 80 (t = 800 B)
-Massif: took snapshot 81 (t = 810 B)
-Massif: took snapshot 82 (t = 820 B)
-Massif: took snapshot 83 (t = 830 B)
-Massif: took snapshot 84 (t = 840 B)
-Massif: took snapshot 85 (t = 850 B)
-Massif: took snapshot 86 (t = 860 B)
-Massif: took snapshot 87 (t = 870 B)
-Massif: took snapshot 88 (t = 880 B)
-Massif: took snapshot 89 (t = 890 B) (detailed)
-Massif: took snapshot 90 (t = 900 B)
-Massif: took snapshot 91 (t = 910 B)
-Massif: took snapshot 92 (t = 920 B)
-Massif: took snapshot 93 (t = 930 B)
-Massif: took snapshot 94 (t = 940 B)
-Massif: took snapshot 95 (t = 950 B)
-Massif: took snapshot 96 (t = 960 B)
-Massif: took snapshot 97 (t = 970 B)
-Massif: took snapshot 98 (t = 980 B)
-Massif: took snapshot 99 (t = 990 B) (detailed)
+Massif: startup snapshot 0 (t = 0 B)
+Massif: alloc snapshot 1 (t = 10 B)
+Massif: alloc snapshot 2 (t = 20 B)
+Massif: alloc snapshot 3 (t = 30 B)
+Massif: alloc snapshot 4 (t = 40 B)
+Massif: alloc snapshot 5 (t = 50 B)
+Massif: alloc snapshot 6 (t = 60 B)
+Massif: alloc snapshot 7 (t = 70 B)
+Massif: alloc snapshot 8 (t = 80 B)
+Massif: alloc snapshot 9 (t = 90 B) (detailed)
+Massif: alloc snapshot 10 (t = 100 B)
+Massif: alloc snapshot 11 (t = 110 B)
+Massif: alloc snapshot 12 (t = 120 B)
+Massif: alloc snapshot 13 (t = 130 B)
+Massif: alloc snapshot 14 (t = 140 B)
+Massif: alloc snapshot 15 (t = 150 B)
+Massif: alloc snapshot 16 (t = 160 B)
+Massif: alloc snapshot 17 (t = 170 B)
+Massif: alloc snapshot 18 (t = 180 B)
+Massif: alloc snapshot 19 (t = 190 B) (detailed)
+Massif: alloc snapshot 20 (t = 200 B)
+Massif: alloc snapshot 21 (t = 210 B)
+Massif: alloc snapshot 22 (t = 220 B)
+Massif: alloc snapshot 23 (t = 230 B)
+Massif: alloc snapshot 24 (t = 240 B)
+Massif: alloc snapshot 25 (t = 250 B)
+Massif: alloc snapshot 26 (t = 260 B)
+Massif: alloc snapshot 27 (t = 270 B)
+Massif: alloc snapshot 28 (t = 280 B)
+Massif: alloc snapshot 29 (t = 290 B) (detailed)
+Massif: alloc snapshot 30 (t = 300 B)
+Massif: alloc snapshot 31 (t = 310 B)
+Massif: alloc snapshot 32 (t = 320 B)
+Massif: alloc snapshot 33 (t = 330 B)
+Massif: alloc snapshot 34 (t = 340 B)
+Massif: alloc snapshot 35 (t = 350 B)
+Massif: alloc snapshot 36 (t = 360 B)
+Massif: alloc snapshot 37 (t = 370 B)
+Massif: alloc snapshot 38 (t = 380 B)
+Massif: alloc snapshot 39 (t = 390 B) (detailed)
+Massif: alloc snapshot 40 (t = 400 B)
+Massif: alloc snapshot 41 (t = 410 B)
+Massif: alloc snapshot 42 (t = 420 B)
+Massif: alloc snapshot 43 (t = 430 B)
+Massif: alloc snapshot 44 (t = 440 B)
+Massif: alloc snapshot 45 (t = 450 B)
+Massif: alloc snapshot 46 (t = 460 B)
+Massif: alloc snapshot 47 (t = 470 B)
+Massif: alloc snapshot 48 (t = 480 B)
+Massif: alloc snapshot 49 (t = 490 B) (detailed)
+Massif: alloc snapshot 50 (t = 500 B)
+Massif: alloc snapshot 51 (t = 510 B)
+Massif: alloc snapshot 52 (t = 520 B)
+Massif: alloc snapshot 53 (t = 530 B)
+Massif: alloc snapshot 54 (t = 540 B)
+Massif: alloc snapshot 55 (t = 550 B)
+Massif: alloc snapshot 56 (t = 560 B)
+Massif: alloc snapshot 57 (t = 570 B)
+Massif: alloc snapshot 58 (t = 580 B)
+Massif: alloc snapshot 59 (t = 590 B) (detailed)
+Massif: alloc snapshot 60 (t = 600 B)
+Massif: alloc snapshot 61 (t = 610 B)
+Massif: alloc snapshot 62 (t = 620 B)
+Massif: alloc snapshot 63 (t = 630 B)
+Massif: alloc snapshot 64 (t = 640 B)
+Massif: alloc snapshot 65 (t = 650 B)
+Massif: alloc snapshot 66 (t = 660 B)
+Massif: alloc snapshot 67 (t = 670 B)
+Massif: alloc snapshot 68 (t = 680 B)
+Massif: alloc snapshot 69 (t = 690 B) (detailed)
+Massif: alloc snapshot 70 (t = 700 B)
+Massif: alloc snapshot 71 (t = 710 B)
+Massif: alloc snapshot 72 (t = 720 B)
+Massif: alloc snapshot 73 (t = 730 B)
+Massif: alloc snapshot 74 (t = 740 B)
+Massif: alloc snapshot 75 (t = 750 B)
+Massif: alloc snapshot 76 (t = 760 B)
+Massif: alloc snapshot 77 (t = 770 B)
+Massif: alloc snapshot 78 (t = 780 B)
+Massif: alloc snapshot 79 (t = 790 B) (detailed)
+Massif: alloc snapshot 80 (t = 800 B)
+Massif: alloc snapshot 81 (t = 810 B)
+Massif: alloc snapshot 82 (t = 820 B)
+Massif: alloc snapshot 83 (t = 830 B)
+Massif: alloc snapshot 84 (t = 840 B)
+Massif: alloc snapshot 85 (t = 850 B)
+Massif: alloc snapshot 86 (t = 860 B)
+Massif: alloc snapshot 87 (t = 870 B)
+Massif: alloc snapshot 88 (t = 880 B)
+Massif: alloc snapshot 89 (t = 890 B) (detailed)
+Massif: alloc snapshot 90 (t = 900 B)
+Massif: alloc snapshot 91 (t = 910 B)
+Massif: alloc snapshot 92 (t = 920 B)
+Massif: alloc snapshot 93 (t = 930 B)
+Massif: alloc snapshot 94 (t = 940 B)
+Massif: alloc snapshot 95 (t = 950 B)
+Massif: alloc snapshot 96 (t = 960 B)
+Massif: alloc snapshot 97 (t = 970 B)
+Massif: alloc snapshot 98 (t = 980 B)
+Massif: alloc snapshot 99 (t = 990 B) (detailed)
Massif: Culling...
Massif: cull 0 (t-span = 20) snapshot 1 (t = 10 B)
Massif: cull 1 (t-span = 20) snapshot 3 (t = 30 B)
@@ -157,107 +157,107 @@
Massif: cull 48 (t-span = 20) snapshot 97 (t = 970 B)
Massif: cull 49 (t-span = 30) snapshot 98 (t = 980 B)
Massif: Finished culling ( 50 of 100 deleted)
-Massif: new snapshot 0 (t = 0 B)
-Massif: new snapshot 1 (t = 20 B)
-Massif: new snapshot 2 (t = 40 B)
-Massif: new snapshot 3 (t = 60 B)
-Massif: new snapshot 4 (t = 80 B)
-Massif: new snapshot 5 (t = 100 B)
-Massif: new snapshot 6 (t = 120 B)
-Massif: new snapshot 7 (t = 140 B)
-Massif: new snapshot 8 (t = 160 B)
-Massif: new snapshot 9 (t = 180 B)
-Massif: new snapshot 10 (t = 200 B)
-Massif: new snapshot 11 (t = 220 B)
-Massif: new snapshot 12 (t = 240 B)
-Massif: new snapshot 13 (t = 260 B)
-Massif: new snapshot 14 (t = 280 B)
-Massif: new snapshot 15 (t = 300 B)
-Massif: new snapshot 16 (t = 320 B)
-Massif: new snapshot 17 (t = 340 B)
-Massif: new snapshot 18 (t = 360 B)
-Massif: new snapshot 19 (t = 380 B)
-Massif: new snapshot 20 (t = 400 B)
-Massif: new snapshot 21 (t = 420 B)
-Massif: new snapshot 22 (t = 440 B)
-Massif: new snapshot 23 (t = 460 B)
-Massif: new snapshot 24 (t = 480 B)
-Massif: new snapshot 25 (t = 500 B)
-Massif: new snapshot 26 (t = 520 B)
-Massif: new snapshot 27 (t = 540 B)
-Massif: new snapshot 28 (t = 560 B)
-Massif: new snapshot 29 (t = 580 B)
-Massif: new snapshot 30 (t = 600 B)
-Massif: new snapshot 31 (t = 620 B)
-Massif: new snapshot 32 (t = 640 B)
-Massif: new snapshot 33 (t = 660 B)
-Massif: new snapshot 34 (t = 680 B)
-Massif: new snapshot 35 (t = 700 B)
-Massif: new snapshot 36 (t = 720 B)
-Massif: new snapshot 37 (t = 740 B)
-Massif: new snapshot 38 (t = 760 B)
-Massif: new snapshot 39 (t = 780 B)
-Massif: new snapshot 40 (t = 800 B)
-Massif: new snapshot 41 (t = 820 B)
-Massif: new snapshot 42 (t = 840 B)
-Massif: new snapshot 43 (t = 860 B)
-Massif: new snapshot 44 (t = 880 B)
-Massif: new snapshot 45 (t = 900 B)
-Massif: new snapshot 46 (t = 920 B)
-Massif: new snapshot 47 (t = 940 B)
-Massif: new snapshot 48 (t = 960 B)
-Massif: new snapshot 49 (t = 990 B) (detailed)
+Massif: post-cull snapshot 0 (t = 0 B)
+Massif: post-cull snapshot 1 (t = 20 B)
+Massif: post-cull snapshot 2 (t = 40 B)
+Massif: post-cull snapshot 3 (t = 60 B)
+Massif: post-cull snapshot 4 (t = 80 B)
+Massif: post-cull snapshot 5 (t = 100 B)
+Massif: post-cull snapshot 6 (t = 120 B)
+Massif: post-cull snapshot 7 (t = 140 B)
+Massif: post-cull snapshot 8 (t = 160 B)
+Massif: post-cull snapshot 9 (t = 180 B)
+Massif: post-cull snapshot 10 (t = 200 B)
+Massif: post-cull snapshot 11 (t = 220 B)
+Massif: post-cull snapshot 12 (t = 240 B)
+Massif: post-cull snapshot 13 (t = 260 B)
+Massif: post-cull snapshot 14 (t = 280 B)
+Massif: post-cull snapshot 15 (t = 300 B)
+Massif: post-cull snapshot 16 (t = 320 B)
+Massif: post-cull snapshot 17 (t = 340 B)
+Massif: post-cull snapshot 18 (t = 360 B)
+Massif: post-cull snapshot 19 (t = 380 B)
+Massif: post-cull snapshot 20 (t = 400 B)
+Massif: post-cull snapshot 21 (t = 420 B)
+Massif: post-cull snapshot 22 (t = 440 B)
+Massif: post-cull snapshot 23 (t = 460 B)
+Massif: post-cull snapshot 24 (t = 480 B)
+Massif: post-cull snapshot 25 (t = 500 B)
+Massif: post-cull snapshot 26 (t = 520 B)
+Massif: post-cull snapshot 27 (t = 540 B)
+Massif: post-cull snapshot 28 (t = 560 B)
+Massif: post-cull snapshot 29 (t = 580 B)
+Massif: post-cull snapshot 30 (t = 600 B)
+Massif: post-cull snapshot 31 (t = 620 B)
+Massif: post-cull snapshot 32 (t = 640 B)
+Massif: post-cull snapshot 33 (t = 660 B)
+Massif: post-cull snapshot 34 (t = 680 B)
+Massif: post-cull snapshot 35 (t = 700 B)
+Massif: post-cull snapshot 36 (t = 720 B)
+Massif: post-cull snapshot 37 (t = 740 B)
+Massif: post-cull snapshot 38 (t = 760 B)
+Massif: post-cull snapshot 39 (t = 780 B)
+Massif: post-cull snapshot 40 (t = 800 B)
+Massif: post-cull snapshot 41 (t = 820 B)
+Massif: post-cull snapshot 42 (t = 840 B)
+Massif: post-cull snapshot 43 (t = 860 B)
+Massif: post-cull snapshot 44 (t = 880 B)
+Massif: post-cull snapshot 45 (t = 900 B)
+Massif: post-cull snapshot 46 (t = 920 B)
+Massif: post-cull snapshot 47 (t = 940 B)
+Massif: post-cull snapshot 48 (t = 960 B)
+Massif: post-cull snapshot 49 (t = 990 B) (detailed)
Massif: New time interval = 20 (between snapshots 0 and 1)
-Massif: took snapshot 50 (t = 1010 B)
-Massif: took snapshot 51 (t = 1030 B)
-Massif: took snapshot 52 (t = 1050 B)
-Massif: took snapshot 53 (t = 1070 B)
-Massif: took snapshot 54 (t = 1090 B)
-Massif: took snapshot 55 (t = 1110 B)
-Massif: took snapshot 56 (t = 1130 B)
-Massif: took snapshot 57 (t = 1150 B)
-Massif: took snapshot 58 (t = 1170 B)
-Massif: took snapshot 59 (t = 1190 B) (detailed)
-Massif: took snapshot 60 (t = 1210 B)
-Massif: took snapshot 61 (t = 1230 B)
-Massif: took snapshot 62 (t = 1250 B)
-Massif: took snapshot 63 (t = 1270 B)
-Massif: took snapshot 64 (t = 1290 B)
-Massif: took snapshot 65 (t = 1310 B)
-Massif: took snapshot 66 (t = 1330 B)
-Massif: took snapshot 67 (t = 1350 B)
-Massif: took snapshot 68 (t = 1370 B)
-Massif: took snapshot 69 (t = 1390 B) (detailed)
-Massif: took snapshot 70 (t = 1410 B)
-Massif: took snapshot 71 (t = 1430 B)
-Massif: took snapshot 72 (t = 1450 B)
-Massif: took snapshot 73 (t = 1470 B)
-Massif: took snapshot 74 (t = 1490 B)
-Massif: took snapshot 75 (t = 1510 B)
-Massif: took snapshot 76 (t = 1530 B)
-Massif: took snapshot 77 (t = 1550 B)
-Massif: took snapshot 78 (t = 1570 B)
-Massif: took snapshot 79 (t = 1590 B) (detailed)
-Massif: took snapshot 80 (t = 1610 B)
-Massif: took snapshot 81 (t = 1630 B)
-Massif: took snapshot 82 (t = 1650 B)
-Massif: took snapshot 83 (t = 1670 B)
-Massif: took snapshot 84 (t = 1690 B)
-Massif: took snapshot 85 (t = 1710 B)
-Massif: took snapshot 86 (t = 1730 B)
-Massif: took snapshot 87 (t = 1750 B)
-Massif: took snapshot 88 (t = 1770 B)
-Massif: took snapshot 89 (t = 1790 B) (detailed)
-Massif: took snapshot 90 (t = 1810 B)
-Massif: took snapshot 91 (t = 1830 B)
-Massif: took snapshot 92 (t = 1850 B)
-Massif: took snapshot 93 (t = 1870 B)
-Massif: took snapshot 94 (t = 1890 B)
-Massif: took snapshot 95 (t = 1910 B)
-Massif: took snapshot 96 (t = 1930 B)
-Massif: took snapshot 97 (t = 1950 B)
-Massif: took snapshot 98 (t = 1970 B)
-Massif: took snapshot 99 (t = 1990 B) (detailed)
+Massif: alloc snapshot 50 (t = 1010 B)
+Massif: alloc snapshot 51 (t = 1030 B)
+Massif: alloc snapshot 52 (t = 1050 B)
+Massif: alloc snapshot 53 (t = 1070 B)
+Massif: alloc snapshot 54 (t = 1090 B)
+Massif: alloc snapshot 55 (t = 1110 B)
+Massif: alloc snapshot 56 (t = 1130 B)
+Massif: alloc snapshot 57 (t = 1150 B)
+Massif: alloc snapshot 58 (t = 1170 B)
+Massif: alloc snapshot 59 (t = 1190 B) (detailed)
+Massif: alloc snapshot 60 (t = 1210 B)
+Massif: alloc snapshot 61 (t = 1230 B)
+Massif: alloc snapshot 62 (t = 1250 B)
+Massif: alloc snapshot 63 (t = 1270 B)
+Massif: alloc snapshot 64 (t = 1290 B)
+Massif: alloc snapshot 65 (t = 1310 B)
+Massif: alloc snapshot 66 (t = 1330 B)
+Massif: alloc snapshot 67 (t = 1350 B)
+Massif: alloc snapshot 68 (t = 1370 B)
+Massif: alloc snapshot 69 (t = 1390 B) (detailed)
+Massif: alloc snapshot 70 (t = 1410 B)
+Massif: alloc snapshot 71 (t = 1430 B)
+Massif: alloc snapshot 72 (t = 1450 B)
+Massif: alloc snapshot 73 (t = 1470 B)
+Massif: alloc snapshot 74 (t = 1490 B)
+Massif: alloc snapshot 75 (t = 1510 B)
+Massif: alloc snapshot 76 (t = 1530 B)
+Massif: alloc snapshot 77 (t = 1550 B)
+Massif: alloc snapshot 78 (t = 1570 B)
+Massif: alloc snapshot 79 (t = 1590 B) (detailed)
+Massif: alloc snapshot 80 (t = 1610 B)
+Massif: alloc snapshot 81 (t = 1630 B)
+Massif: alloc snapshot 82 (t = 1650 B)
+Massif: alloc snapshot 83 (t = 1670 B)
+Massif: alloc snapshot 84 (t = 1690 B)
+Massif: alloc snapshot 85 (t = 1710 B)
+Massif: alloc snapshot 86 (t = 1730 B)
+Massif: alloc snapshot 87 (t = 1750 B)
+Massif: alloc snapshot 88 (t = 1770 B)
+Massif: alloc snapshot 89 (t = 1790 B) (detailed)
+Massif: alloc snapshot 90 (t = 1810 B)
+Massif: alloc snapshot 91 (t = 1830 B)
+Massif: alloc snapshot 92 (t = 1850 B)
+Massif: alloc snapshot 93 (t = 1870 B)
+Massif: alloc snapshot 94 (t = 1890 B)
+Massif: alloc snapshot 95 (t = 1910 B)
+Massif: alloc snapshot 96 (t = 1930 B)
+Massif: alloc snapshot 97 (t = 1950 B)
+Massif: alloc snapshot 98 (t = 1970 B)
+Massif: alloc snapshot 99 (t = 1990 B) (detailed)
Massif: Culling...
Massif: cull 0 (t-span = 40) snapshot 1 (t = 20 B)
Massif: cull 1 (t-span = 40) snapshot 3 (t = 60 B)
@@ -310,56 +310,56 @@
Massif: cull 48 (t-span = 40) snapshot 98 (t = 1970 B)
Massif: cull 49 (t-span = 70) snapshot 48 (t = 960 B)
Massif: Finished culling ( 50 of 100 deleted)
-Massif: new snapshot 0 (t = 0 B)
-Massif: new snapshot 1 (t = 40 B)
-Massif: new snapshot 2 (t = 80 B)
-Massif: new snapshot 3 (t = 120 B)
-Massif: new snapshot 4 (t = 160 B)
-Massif: new snapshot 5 (t = 200 B)
-Massif: new snapshot 6 (t = 240 B)
-Massif: new snapshot 7 (t = 280 B)
-Massif: new snapshot 8 (t = 320 B)
-Massif: new snapshot 9 (t = 360 B)
-Massif: new snapshot 10 (t = 400 B)
-Massif: new snapshot 11 (t = 440 B)
-Massif: new snapshot 12 (t = 480 B)
-Massif: new snapshot 13 (t = 520 B)
-Massif: new snapshot 14 (t = 560 B)
-Massif: new snapshot 15 (t = 600 B)
-Massif: new snapshot 16 (t = 640 B)
-Massif: new snapshot 17 (t = 680 B)
-Massif: new snapshot 18 (t = 720 B)
-Massif: new snapshot 19 (t = 760 B)
-Massif: new snapshot 20 (t = 800 B)
-Massif: new snapshot 21 (t = 840 B)
-Massif: new snapshot 22 (t = 880 B)
-Massif: new snapshot 23 (t = 920 B)
-Massif: new snapshot 24 (t = 990 B) (detailed)
-Massif: new snapshot 25 (t = 1030 B)
-Massif: new snapshot 26 (t = 1070 B)
-Massif: new snapshot 27 (t = 1110 B)
-Massif: new snapshot 28 (t = 1150 B)
-Massif: new snapshot 29 (t = 1190 B) (detailed)
-Massif: new snapshot 30 (t = 1230 B)
-Massif: new snapshot 31 (t = 1270 B)
-Massif: new snapshot 32 (t = 1310 B)
-Massif: new snapshot 33 (t = 1350 B)
-Massif: new snapshot 34 (t = 1390 B) (detailed)
-Massif: new snapshot 35 (t = 1430 B)
-Massif: new snapshot 36 (t = 1470 B)
-Massif: new snapshot 37 (t = 1510 B)
-Massif: new snapshot 38 (t = 1550 B)
-Massif: new snapshot 39 (t = 1590 B) (detailed)
-Massif: new snapshot 40 (t = 1630 B)
-Massif: new snapshot 41 (t = 1670 B)
-Massif: new snapshot 42 (t = 1710 B)
-Massif: new snapshot 43 (t = 1750 B)
-Massif: new snapshot 44 (t = 1790 B) (detailed)
-Massif: new snapshot 45 (t = 1830 B)
-Massif: new snapshot 46 (t = 1870 B)
-Massif: new snapshot 47 (t = 1910 B)
-Massif: new snapshot 48 (t = 1950 B)
-Massif: new snapshot 49 (t = 1990 B) (detailed)
+Massif: post-cull snapshot 0 (t = 0 B)
+Massif: post-cull snapshot 1 (t = 40 B)
+Massif: post-cull snapshot 2 (t = 80 B)
+Massif: post-cull snapshot 3 (t = 120 B)
+Massif: post-cull snapshot 4 (t = 160 B)
+Massif: post-cull snapshot 5 (t = 200 B)
+Massif: post-cull snapshot 6 (t = 240 B)
+Massif: post-cull snapshot 7 (t = 280 B)
+Massif: post-cull snapshot 8 (t = 320 B)
+Massif: post-cull snapshot 9 (t = 360 B)
+Massif: post-cull snapshot 10 (t = 400 B)
+Massif: post-cull snapshot 11 (t = 440 B)
+Massif: post-cull snapshot 12 (t = 480 B)
+Massif: post-cull snapshot 13 (t = 520 B)
+Massif: post-cull snapshot 14 (t = 560 B)
+Massif: post-cull snapshot 15 (t = 600 B)
+Massif: post-cull snapshot 16 (t = 640 B)
+Massif: post-cull snapshot 17 (t = 680 B)
+Massif: post-cull snapshot 18 (t = 720 B)
+Massif: post-cull snapshot 19 (t = 760 B)
+Massif: post-cull snapshot 20 (t = 800 B)
+Massif: post-cull snapshot 21 (t = 840 B)
+Massif: post-cull snapshot 22 (t = 880 B)
+Massif: post-cull snapshot 23 (t = 920 B)
+Massif: post-cull snapshot 24 (t = 990 B) (detailed)
+Massif: post-cull snapshot 25 (t = 1030 B)
+Massif: post-cull snapshot 26 (t = 1070 B)
+Massif: post-cull snapshot 27 (t = 1110 B)
+Massif: post-cull snapshot 28 (t = 1150 B)
+Massif: post-cull snapshot 29 (t = 1190 B) (detailed)
+Massif: post-cull snapshot 30 (t = 1230 B)
+Massif: post-cull snapshot 31 (t = 1270 B)
+Massif: post-cull snapshot 32 (t = 1310 B)
+Massif: post-cull snapshot 33 (t = 1350 B)
+Massif: post-cull snapshot 34 (t = 1390 B) (detailed)
+Massif: post-cull snapshot 35 (t = 1430 B)
+Massif: post-cull snapshot 36 (t = 1470 B)
+Massif: post-cull snapshot 37 (t = 1510 B)
+Massif: post-cull snapshot 38 (t = 1550 B)
+Massif: post-cull snapshot 39 (t = 1590 B) (detailed)
+Massif: post-cull snapshot 40 (t = 1630 B)
+Massif: post-cull snapshot 41 (t = 1670 B)
+Massif: post-cull snapshot 42 (t = 1710 B)
+Massif: post-cull snapshot 43 (t = 1750 B)
+Massif: post-cull snapshot 44 (t = 1790 B) (detailed)
+Massif: post-cull snapshot 45 (t = 1830 B)
+Massif: post-cull snapshot 46 (t = 1870 B)
+Massif: post-cull snapshot 47 (t = 1910 B)
+Massif: post-cull snapshot 48 (t = 1950 B)
+Massif: post-cull snapshot 49 (t = 1990 B) (detailed)
Massif: New time interval = 40 (between snapshots 0 and 1)
Massif: allocs: 200
Massif: zeroallocs: 0 (0%)
Modified: branches/MASSIF2/massif/tests/culling2.stderr.exp
===================================================================
--- branches/MASSIF2/massif/tests/culling2.stderr.exp 2007-09-21 02:08:49 UTC (rev 6883)
+++ branches/MASSIF2/massif/tests/culling2.stderr.exp 2007-09-21 04:19:04 UTC (rev 6884)
@@ -5,106 +5,106 @@
Massif: 4: __builtin_new
Massif: 5: __builtin_vec_new
Massif: 6: malloc
-Massif: took snapshot 0 (t = 0 B)
-Massif: took snapshot 1 (t = 0 B)
-Massif: took snapshot 2 (t = 1 B)
-Massif: took snapshot 3 (t = 3 B)
-Massif: took snapshot 4 (t = 6 B)
-Massif: took snapshot 5 (t = 10 B)
-Massif: took snapshot 6 (t = 15 B)
-Massif: took snapshot 7 (t = 21 B)
-Massif: took snapshot 8 (t = 28 B)
-Massif: took snapshot 9 (t = 36 B) (detailed)
-Massif: took snapshot 10 (t = 45 B)
-Massif: took snapshot 11 (t = 55 B)
-Massif: took snapshot 12 (t = 66 B)
-Massif: took snapshot 13 (t = 78 B)
-Massif: took snapshot 14 (t = 91 B)
-Massif: took snapshot 15 (t = 105 B)
-Massif: took snapshot 16 (t = 120 B)
-Massif: took snapshot 17 (t = 136 B)
-Massif: took snapshot 18 (t = 153 B)
-Massif: took snapshot 19 (t = 171 B) (detailed)
-Massif: took snapshot 20 (t = 190 B)
-Massif: took snapshot 21 (t = 210 B)
-Massif: took snapshot 22 (t = 231 B)
-Massif: took snapshot 23 (t = 253 B)
-Massif: took snapshot 24 (t = 276 B)
-Massif: took snapshot 25 (t = 300 B)
-Massif: took snapshot 26 (t = 325 B)
-Massif: took snapshot 27 (t = 351 B)
-Massif: took snapshot 28 (t = 378 B)
-Massif: took snapshot 29 (t = 406 B) (detailed)
-Massif: took snapshot 30 (t = 435 B)
-Massif: took snapshot 31 (t = 465 B)
-Massif: took snapshot 32 (t = 496 B)
-Massif: took snapshot 33 (t = 528 B)
-Massif: took snapshot 34 (t = 561 B)
-Massif: took snapshot 35 (t = 595 B)
-Massif: took snapshot 36 (t = 630 B)
-Massif: took snapshot 37 (t = 666 B)
-Massif: took snapshot 38 (t = 703 B)
-Massif: took snapshot 39 (t = 741 B) (detailed)
-Massif: took snapshot 40 (t = 780 B)
-Massif: took snapshot 41 (t = 820 B)
-Massif: took snapshot 42 (t = 861 B)
-Massif: took snapshot 43 (t = 903 B)
-Massif: took snapshot 44 (t = 946 B)
-Massif: took snapshot 45 (t = 990 B)
-Massif: took snapshot 46 (t = 1035 B)
-Massif: took snapshot 47 (t = 1081 B)
-Massif: took snapshot 48 (t = 1128 B)
-Massif: took snapshot 49 (t = 1176 B) (detailed)
-Massif: took snapshot 50 (t = 1225 B)
-Massif: took snapshot 51 (t = 1275 B)
-Massif: took snapshot 52 (t = 1326 B)
-Massif: took snapshot 53 (t = 1378 B)
-Massif: took snapshot 54 (t = 1431 B)
-Massif: took snapshot 55 (t = 1485 B)
-Massif: took snapshot 56 (t = 1540 B)
-Massif: took snapshot 57 (t = 1596 B)
-Massif: took snapshot 58 (t = 1653 B)
-Massif: took snapshot 59 (t = 1711 B) (detailed)
-Massif: took snapshot 60 (t = 1770 B)
-Massif: took snapshot 61 (t = 1830 B)
-Massif: took snapshot 62 (t = 1891 B)
-Massif: took snapshot 63 (t = 1953 B)
-Massif: took snapshot 64 (t = 2016 B)
-Massif: took snapshot 65 (t = 2080 B)
-Massif: took snapshot 66 (t = 2145 B)
-Massif: took snapshot 67 (t = 2211 B)
-Massif: took snapshot 68 (t = 2278 B)
-Massif: took snapshot 69 (t = 2346 B) (detailed)
-Massif: took snapshot 70 (t = 2415 B)
-Massif: took snapshot 71 (t = 2485 B)
-Massif: took snapshot 72 (t = 2556 B)
-Massif: took snapshot 73 (t = 2628 B)
-Massif: took snapshot 74 (t = 2701 B)
-Massif: took snapshot 75 (t = 2775 B)
-Massif: took snapshot 76 (t = 2850 B)
-Massif: took snapshot 77 (t = 2926 B)
-Massif: took snapshot 78 (t = 3003 B)
-Massif: took snapshot 79 (t = 3081 B) (detailed)
-Massif: took snapshot 80 (t = 3160 B)
-Massif: took snapshot 81 (t = 3240 B)
-Massif: took snapshot 82 (t = 3321 B)
-Massif: took snapshot 83 (t = 3403 B)
-Massif: took snapshot 84 (t = 3486 B)
-Massif: took snapshot 85 (t = 3570 B)
-Massif: took snapshot 86 (t = 3655 B)
-Massif: took snapshot 87 (t = 3741 B)
-Massif: took snapshot 88 (t = 3828 B)
-Massif: took snapshot 89 (t = 3916 B) (detailed)
-Massif: took snapshot 90 (t = 4005 B)
-Massif: took snapshot 91 (t = 4095 B)
-Massif: took snapshot 92 (t = 4186 B)
-Massif: took snapshot 93 (t = 4278 B)
-Massif: took snapshot 94 (t = 4371 B)
-Massif: took snapshot 95 (t = 4465 B)
-Massif: took snapshot 96 (t = 4560 B)
-Massif: took snapshot 97 (t = 4656 B)
-Massif: took snapshot 98 (t = 4753 B)
-Massif: took snapshot 99 (t = 4851 B) (detailed)
+Massif: startup snapshot 0 (t = 0 B)
+Massif: alloc snapshot 1 (t = 0 B)
+Massif: alloc snapshot 2 (t = 1 B)
+Massif: alloc snapshot 3 (t = 3 B)
+Massif: alloc snapshot 4 (t = 6 B)
+Massif: alloc snapshot 5 (t = 10 B)
+Massif: alloc snapshot 6 (t = 15 B)
+Massif: alloc snapshot 7 (t = 21 B)
+Massif: alloc snapshot 8 (t = 28 B)
+Massif: alloc snapshot 9 (t = 36 B) (detailed)
+Massif: alloc snapshot 10 (t = 45 B)
+Massif: alloc snapshot 11 (t = 55 B)
+Massif: alloc snapshot 12 (t = 66 B)
+Massif: alloc snapshot 13 (t = 78 B)
+Massif: alloc snapshot 14 (t = 91 B)
+Massif: alloc snapshot 15 (t = 105 B)
+Massif: alloc snapshot 16 (t = 120 B)
+Massif: alloc snapshot 17 (t = 136 B)
+Massif: alloc snapshot 18 (t = 153 B)
+Massif: alloc snapshot 19 (t = 171 B) (detailed)
+Massif: alloc snapshot 20 (t = 190 B)
+Massif: alloc snapshot 21 (t = 210 B)
+Massif: alloc snapshot 22 (t = 231 B)
+Massif: alloc snapshot 23 (t = 253 B)
+Massif: alloc snapshot 24 (t = 276 B)
+Massif: alloc snapshot 25 (t = 300 B)
+Massif: alloc snapshot 26 (t = 325 B)
+Massif: alloc snapshot 27 (t = 351 B)
+Massif: alloc snapshot 28 (t = 378 B)
+Massif: alloc snapshot 29 (t = 406 B) (detailed)
+Massif: alloc snapshot 30 (t = 435 B)
+Massif: alloc snapshot 31 (t = 465 B)
+Massif: alloc snapshot 32 (t = 496 B)
+Massif: alloc snapshot 33 (t = 528 B)
+Massif: alloc snapshot 34 (t = 561 B)
+Massif: alloc snapshot 35 (t = 595 B)
+Massif: alloc snapshot 36 (t = 630 B)
+Massif: alloc snapshot 37 (t = 666 B)
+Massif: alloc snapshot 38 (t = 703 B)
+Massif: alloc snapshot 39 (t = 741 B) (detailed)
+Massif: alloc snapshot 40 (t = 780 B)
+Massif: alloc snapshot 41 (t = 820 B)
+Massif: alloc snapshot 42 (t = 861 B)
+Massif: alloc snapshot 43 (t = 903 B)
+Massif: alloc snapshot 44 (t = 946 B)
+Massif: alloc snapshot 45 (t = 990 B)
+Massif: alloc snapshot 46 (t = 1035 B)
+Massif: alloc snapshot 47 (t = 1081 B)
+Massif: alloc snapshot 48 (t = 1128 B)
+Massif: alloc snapshot 49 (t = 1176 B) (detailed)
+Massif: alloc snapshot 50 (t = 1225 B)
+Massif: alloc snapshot 51 (t = 1275 B)
+Massif: alloc snapshot 52 (t = 1326 B)
+Massif: alloc snapshot 53 (t = 1378 B)
+Massif: alloc snapshot 54 (t = 1431 B)
+Massif: alloc snapshot 55 (t = 1485 B)
+Massif: alloc snapshot 56 (t = 1540 B)
+Massif: alloc snapshot 57 (t = 1596 B)
+Massif: alloc snapshot 58 (t = 1653 B)
+Massif: alloc snapshot 59 (t = 1711 B) (detailed)
+Massif: alloc snapshot 60 (t = 1770 B)
+Massif: alloc snapshot 61 (t = 1830 B)
+Massif: alloc snapshot 62 (t = 1891 B)
+Massif: alloc snapshot 63 (t = 1953 B)
+Massif: alloc snapshot 64 (t = 2016 B)
+Massif: alloc snapshot 65 (t = 2080 B)
+Massif: alloc snapshot 66 (t = 2145 B)
+Massif: alloc snapshot 67 (t = 2211 B)
+Massif: alloc snapshot 68 (t = 2278 B)
+Massif: alloc snapshot 69 (t = 2346 B) (detailed)
+Massif: alloc snapshot 70 (t = 2415 B)
+Massif: alloc snapshot 71 (t = 2485 B)
+Massif: alloc snapshot 72 (t = 2556 B)
+Massif: alloc snapshot 73 (t = 2628 B)
+Massif: alloc snapshot 74 (t = 2701 B)
+Massif: alloc snapshot 75 (t = 2775 B)
+Massif: alloc snapshot 76 (t = 2850 B)
+Massif: alloc snapshot 77 (t = 2926 B)
+Massif: alloc snapshot 78 (t = 3003 B)
+Massif: alloc snapshot 79 (t = 3081 B) (detailed)
+Massif: alloc snapshot 80 (t = 3160 B)
+Massif: alloc snapshot 81 (t = 3240 B)
+Massif: alloc snapshot 82 (t = 3321 B)
+Massif: alloc snapshot 83 (t = 3403 B)
+Massif: alloc snapshot 84 (t = 3486 B)
+Massif: alloc snapshot 85 (t = 3570 B)
+Massif: alloc snapshot 86 (t = 3655 B)
+Massif: alloc snapshot 87 (t = 3741 B)
+Massif: alloc snapshot 88 (t = 3828 B)
+Massif: alloc snapshot 89 (t = 3916 B) (detailed)
+Massif: alloc snapshot 90 (t = 4005 B)
+Massif: alloc snapshot 91 (t = 4095 B)
+Massif: alloc snapshot 92 (t = 4186 B)
+Massif: alloc snapshot 93 (t = 4278 B)
+Massif: alloc snapshot 94 (t = 4371 B)
+Massif: alloc snapshot 95 (t = 4465 B)
+Massif: alloc snapshot 96 (t = 4560 B)
+Massif: alloc snapshot 97 (t = 4656 B)
+Massif: alloc snapshot 98 (t = 4753 B)
+Massif: alloc snapshot 99 (t = 4851 B) (detailed)
Massif: Culling...
Massif: cull 0 (t-span = 1) snapshot 1 (t = 0 B)
Massif: cull 1 (t-span = 3) snapshot 2 (t = 1 B)
@@ -157,107 +157,107 @@
Massif: cull 48 (t-span = 145) snapshot 73 (t = 2628 B)
Massif: cull 49 (t-span = 149) snapshot 75 (t = 2775 B)
Massif: Finished culling ( 50 of 100 deleted)
-Massif: new snapshot 0 (t = 0 B)
-Massif: new snapshot 1 (t = 120 B)
-Massif: new snapshot 2 (t = 190 B)
-Massif: new snapshot 3 (t = 276 B)
-Massif: new snapshot 4 (t = 378 B)
-Massif: new snapshot 5 (t = 496 B)
-Massif: new snapshot 6 (t = 630 B)
-Massif: new snapshot 7 (t = 703 B)
-Massif: new snapshot 8 (t = 780 B)
-Massif: new snapshot 9 (t = 861 B)
-Massif: new snapshot 10 (t = 946 B)
-Massif: new snapshot 11 (t = 1035 B)
-Massif: new snapshot 12 (t = 1128 B)
-Massif: new snapshot 13 (t = 1225 B)
-Massif: new snapshot 14 (t = 1326 B)
-Massif: new snapshot 15 (t = 1431 B)
-Massif: new snapshot 16 (t = 1540 B)
-Massif: new snapshot 17 (t = 1653 B)
-Massif: new snapshot 18 (t = 1770 B)
-Massif: new snapshot 19 (t = 1891 B)
-Massif: new snapshot 20 (t = 2016 B)
-Massif: new snapshot 21 (t = 2145 B)
-Massif: new snapshot 22 (t = 2278 B)
-Massif: new snapshot 23 (t = 2415 B)
-Massif: new snapshot 24 (t = 2556 B)
-Massif: new snapshot 25 (t = 2701 B)
-Massif: new snapshot 26 (t = 2850 B)
-Massif: new snapshot 27 (t = 2926 B)
-Massif: new snapshot 28 (t = 3003 B)
-Massif: new snapshot 29 (t = 3081 B) (detailed)
-Massif: new snapshot 30 (t = 3160 B)
-Massif: new snapshot 31 (t = 3240 B)
-Massif: new snapshot 32 (t = 3321 B)
-Massif: new snapshot 33 (t = 3403 B)
-Massif: new snapshot 34 (t = 3486 B)
-Massif: new snapshot 35 (t = 3570 B)
-Massif: new snapshot 36 (t = 3655 B)
-Massif: new snapshot 37 (t = 3741 B)
-Massif: new snapshot 38 (t = 3828 B)
-Massif: new snapshot 39 (t = 3916 B) (detailed)
-Massif: new snapshot 40 (t = 4005 B)
-Massif: new snapshot 41 (t = 4095 B)
-Massif: new snapshot 42 (t = 4186 B)
-Massif: new snapshot 43 (t = 4278 B)
-Massif: new snapshot 44 (t = 4371 B)
-Massif: new snapshot 45 (t = 4465 B)
-Massif: new snapshot 46 (t = 4560 B)
-Massif: new snapshot 47 (t = 4656 B)
-Massif: new snapshot 48 (t = 4753 B)
-Massif: new snapshot 49 (t = 4851 B) (detailed)
+Massif: post-cull snapshot 0 (t = 0 B)
+Massif: post-cull snapshot 1 (t = 120 B)
+Massif: post-cull snapshot 2 (t = 190 B)
+Massif: post-cull snapshot 3 (t = 276 B)
+Massif: post-cull snapshot 4 (t = 378 B)
+Massif: post-cull snapshot 5 (t = 496 B)
+Massif: post-cull snapshot 6 (t = 630 B)
+Massif: post-cull snapshot 7 (t = 703 B)
+Massif: post-cull snapshot 8 (t = 780 B)
+Massif: post-cull snapshot 9 (t = 861 B)
+Massif: post-cull snapshot 10 (t = 946 B)
+Massif: post-cull snapshot 11 (t = 1035 B)
+Massif: post-cull snapshot 12 (t = 1128 B)
+Massif: post-cull snapshot 13 (t = 1225 B)
+Massif: post-cull snapshot 14 (t = 1326 B)
+Massif: post-cull snapshot 15 (t = 1431 B)
+Massif: post-cull snapshot 16 (t = 1540 B)
+Massif: post-cull snapshot 17 (t = 1653 B)
+Massif: post-cull snapshot 18 (t = 1770 B)
+Massif: post-cull snapshot 19 (t = 1891 B)
+Massif: post-cull snapshot 20 (t = 2016 B)
+Massif: post-cull snapshot 21 (t = 2145 B)
+Massif: post-cull snapshot 22 (t = 2278 B)
+Massif: post-cull snapshot 23 (t = 2415 B)
+Massif: post-cull snapshot 24 (t = 2556 B)
+Massif: post-cull snapshot 25 (t = 2701 B)
+Massif: post-cull snapshot 26 (t = 2850 B)
+Massif: post-cull snapshot 27 (t = 2926 B)
+Massif: post-cull snapshot 28 (t = 3003 B)
+Massif: post-cull snapshot 29 (t = 3081 B) (detailed)
+Massif: post-cull snapshot 30 (t = 3160 B)
+Massif: post-cull snapshot 31 (t = 3240 B)
+Massif: post-cull snapshot 32 (t = 3321 B)
+Massif: post-cull snapshot 33 (t = 3403 B)
+Massif: post-cull snapshot 34 (t = 3486 B)
+Massif: post-cull snapshot 35 (t = 3570 B)
+Massif: post-cull snapshot 36 (t = 3655 B)
+Massif: post-cull snapshot 37 (t = 3741 B)
+Massif: post-cull snapshot 38 (t = 3828 B)
+Massif: post-cull snapshot 39 (t = 3916 B) (detailed)
+Massif: post-cull snapshot 40 (t = 4005 B)
+Massif: post-cull snapshot 41 (t = 4095 B)
+Massif: post-cull snapshot 42 (t = 4186 B)
+Massif: post-cull snapshot 43 (t = 4278 B)
+Massif: post-cull snapshot 44 (t = 4371 B)
+Massif: post-cull snapshot 45 (t = 4465 B)
+Massif: post-cull snapshot 46 (t = 4560 B)
+Massif: post-cull snapshot 47 (t = 4656 B)
+Massif: post-cull snapshot 48 (t = 4753 B)
+Massif: post-cull snapshot 49 (t = 4851 B) (detailed)
Massif: New time interval = 70 (between snapshots 1 and 2)
-Massif: took snapshot 50 (t = 4950 B)
-Massif: took snapshot 51 (t = 5050 B)
-Massif: took snapshot 52 (t = 5151 B)
-Massif: took snapshot 53 (t = 5253 B)
-Massif: took snapshot 54 (t = 5356 B)
-Massif: took snapshot 55 (t = 5460 B)
-Massif: took snapshot 56 (t = 5565 B)
-Massif: took snapshot 57 (t = 5671 B)
-Massif: took snapshot 58 (t = 5778 B)
-Massif: took snapshot 59 (t = 5886 B) (detailed)
-Massif: took snapshot 60 (t = 5995 B)
-Massif: took snapshot 61 (t = 6105 B)
-Massif: took snapshot 62 (t = 6216 B)
-Massif: took snapshot 63 (t = 6328 B)
-Massif: took snapshot 64 (t = 6441 B)
-Massif: took snapshot 65 (t = 6555 B)
-Massif: took snapshot 66 (t = 6670 B)
-Massif: took snapshot 67 (t = 6786 B)
-Massif: took snapshot 68 (t = 6903 B)
-Massif: took snapshot 69 (t = 7021 B) (detailed)
-Massif: took snapshot 70 (t = 7140 B)
-Massif: took snapshot 71 (t = 7260 B)
-Massif: took snapshot 72 (t = 7381 B)
-Massif: took snapshot 73 (t = 7503 B)
-Massif: took snapshot 74 (t = 7626 B)
-Massif: took snapshot 75 (t = 7750 B)
-Massif: took snapshot 76 (t = 7875 B)
-Massif: took snapshot 77 (t = 8001 B)
-Massif: took snapshot 78 (t = 8128 B)
-Massif: took snapshot 79 (t = 8256 B) (detailed)
-Massif: took snapshot 80 (t = 8385 B)
-Massif: took snapshot 81 (t = 8515 B)
-Massif: took snapshot 82 (t = 8646 B)
-Massif: took snapshot 83 (t = 8778 B)
-Massif: took snapshot 84 (t = 8911 B)
-Massif: took snapshot 85 (t = 9045 B)
-Massif: took snapshot 86 (t = 9180 B)
-Massif: took snapshot 87 (t = 9316 B)
-Massif: took snapshot 88 (t = 9453 B)
-Massif: took snapshot 89 (t = 9591 B) (detailed)
-Massif: took snapshot 90 (t = 9730 B)
-Massif: took snapshot 91 (t = 9870 B)
-Massif: took snapshot 92 (t = 10011 B)
-Massif: took snapshot 93 (t = 10153 B)
-Massif: took snapshot 94 (t = 10296 B)
-Massif: took snapshot 95 (t = 10440 B)
-Massif: took snapshot 96 (t = 10585 B)
-Massif: took snapshot 97 (t = 10731 B)
-Massif: took snapshot 98 (t = 10878 B)
-Massif: took snapshot 99 (t = 11026 B) (detailed)
+Massif: alloc snapshot 50 (t = 4950 B)
+Massif: alloc snapshot 51 (t = 5050 B)
+Massif: alloc snapshot 52 (t = 5151 B)
+Massif: alloc snapshot 53 (t = 5253 B)
+Massif: alloc snapshot 54 (t = 5356 B)
+Massif: alloc snapshot 55 (t = 5460 B)
+Massif: alloc snapshot 56 (t = 5565 B)
+Massif: alloc snapshot 57 (t = 5671 B)
+Massif: alloc snapshot 58 (t = 5778 B)
+Massif: alloc snapshot 59 (t = 5886 B) (detailed)
+Massif: alloc snapshot 60 (t = 5995 B)
+Massif: alloc snapshot 61 (t = 6105 B)
+Massif: alloc snapshot 62 (t = 6216 B)
+Massif: alloc snapshot 63 (t = 6328 B)
+Massif: alloc snapshot 64 (t = 6441 B)
+Massif: alloc snapshot 65 (t = 6555 B)
+Massif: alloc snapshot 66 (t = 6670 B)
+Massif: alloc snapshot 67 (t = 6786 B)
+Massif: alloc snapshot 68 (t = 6903 B)
+Massif: alloc snapshot 69 (t = 7021 B) (detailed)
+Massif: alloc snapshot 70 (t = 7140 B)
+Massif: alloc snapshot 71 (t = 7260 B)
+Massif: alloc snapshot 72 (t = 7381 B)
+Massif: alloc snapshot 73 (t = 7503 B)
+Massif: alloc snapshot 74 (t = 7626 B)
+Massif: alloc snapshot 75 (t = 7750 B)
+Massif: alloc snapshot 76 (t = 7875 B)
+Massif: alloc snapshot 77 (t = 8001 B)
+Massif: alloc snapshot 78 (t = 8128 B)
+Massif: alloc snapshot 79 (t = 8256 B) (detailed)
+Massif: alloc snapshot 80 (t = 8385 B)
+Massif: alloc snapshot 81 (t = 8515 B)
+Massif: alloc snapshot 82 (t = 8646 B)
+Massif: alloc snapshot 83 (t = 8778 B)
+Massif: alloc snapshot 84 (t = 8911 B)
+Massif: alloc snapshot 85 (t = 9045 B)
+Massif: alloc snapshot 86 (t = 9180 B)
+Massif: alloc snapshot 87 (t = 9316 B)
+Massif: alloc snapshot 88 (t = 9453 B)
+Massif: alloc snapshot 89 (t = 9591 B) (detailed)
+Massif: alloc snapshot 90 (t = 9730 B)
+Massif: alloc snapshot 91 (t = 9870 B)
+Massif: alloc snapshot 92 (t = 10011 B)
+Massif: alloc snapshot 93 (t = 10153 B)
+Massif: alloc snapshot 94 (t = 10296 B)
+Massif: alloc snapshot 95 (t = 10440 B)
+Massif: alloc snapshot 96 (t = 10585 B)
+Massif: alloc snapshot 97 (t = 10731 B)
+Massif: alloc snapshot 98 (t = 10878 B)
+Massif: alloc snapshot 99 (t = 11026 B) (detailed)
Massif: Culling...
Massif: cull 0 (t-span = 150) snapshot 7 (t = 703 B)
Massif: cull 1 (t-span = 153) snapshot 27 (t = 2926 B)
@@ -310,107 +310,107 @@
Massif: cull 48 (t-span = 293) snapshot 97 (t = 10731 B)
Massif: cull 49 (t-span = 294) snapshot 25 (t = 2701 B)
Massif: Finished culling ( 50 of 100 deleted)
-Massif: new snapshot 0 (t = 0 B)
-Massif: new snapshot 1 (t = 276 B)
-Massif: new snapshot 2 (t = 496 B)
-Massif: new snapshot 3 (t = 780 B)
-Massif: new snapshot 4 (t = 946 B)
-Massif: new snapshot 5 (t = 1128 B)
-Massif: new snapshot 6 (t = 1326 B)
-Massif: new snapshot 7 (t = 1540 B)
-Massif: new snapshot 8 (t = 1770 B)
-Massif: new snapshot 9 (t = 2016 B)
-Massif: new snapshot 10 (t = 2278 B)
-Massif: new snapshot 11 (t = 2556 B)
-Massif: new snapshot 12 (t = 2850 B)
-Massif: new snapshot 13 (t = 3003 B)
-Massif: new snapshot 14 (t = 3160 B)
-Massif: new snapshot 15 (t = 3321 B)
-Massif: new snapshot 16 (t = 3486 B)
-Massif: new snapshot 17 (t = 3655 B)
-Massif: new snapshot 18 (t = 3828 B)
-Massif: new snapshot 19 (t = 4005 B)
-Massif: new snapshot 20 (t = 4186 B)
-Massif: new snapshot 21 (t = 4371 B)
-Massif: new snapshot 22 (t = 4560 B)
-Massif: new snapshot 23 (t = 4753 B)
-Massif: new snapshot 24 (t = 4950 B)
-Massif: new snapshot 25 (t = 5151 B)
-Massif: new snapshot 26 (t = 5356 B)
-Massif: new snapshot 27 (t = 5565 B)
-Massif: new snapshot 28 (t = 5778 B)
-Massif: new snapshot 29 (t = 5995 B)
-Massif: new snapshot 30 (t = 6216 B)
-Massif: new snapshot 31 (t = 6441 B)
-Massif: new snapshot 32 (t = 6670 B)
-Massif: new snapshot 33 (t = 6903 B)
-Massif: new snapshot 34 (t = 7140 B)
-Massif: new snapshot 35 (t = 7381 B)
-Massif: new snapshot 36 (t = 7626 B)
-Massif: new snapshot 37 (t = 7875 B)
-Massif: new snapshot 38 (t = 8128 B)
-Massif: new snapshot 39 (t = 8385 B)
-Massif: new snapshot 40 (t = 8646 B)
-Massif: new snapshot 41 (t = 8911 B)
-Massif: new snapshot 42 (t = 9180 B)
-Massif: new snapshot 43 (t = 9453 B)
-Massif: new snapshot 44 (t = 9730 B)
-Massif: new snapshot 45 (t = 10011 B)
-Massif: new snapshot 46 (t = 10296 B)
-Massif: new snapshot 47 (t = 10585 B)
-Massif: new snapshot 48 (t = 10878 B)
-Massif: new snapshot 49 (t = 11026 B) (detailed)
+Massif: post-cull snapshot 0 (t = 0 B)
+Massif: post-cull snapshot 1 (t = 276 B)
+Massif: post-cull snapshot 2 (t = 496 B)
+Massif: post-cull snapshot 3 (t = 780 B)
+Massif: post-cull snapshot 4 (t = 946 B)
+Massif: post-cull snapshot 5 (t = 1128 B)
+Massif: post-cull snapshot 6 (t = 1326 B)
+Massif: post-cull snapshot 7 (t = 1540 B)
+Massif: post-cull snapshot 8 (t = 1770 B)
+Massif: post-cull snapshot 9 (t = 2016 B)
+Massif: post-cull snapshot 10 (t = 2278 B)
+Massif: post-cull snapshot 11 (t = 2556 B)
+Massif: post-cull snapshot 12 (t = 2850 B)
+Massif: post-cull snapshot 13 (t = 3003 B)
+Massif: post-cull snapshot 14 (t = 3160 B)
+Massif: post-cull snapshot 15 (t = 3321 B)
+Massif: post-cull snapshot 16 (t = 3486 B)
+Massif: post-cull snapshot 17 (t = 3655 B)
+Massif: post-cull snapshot 18 (t = 3828 B)
+Massif: post-cull snapshot 19 (t = 4005 B)
+Massif: post-cull snapshot 20 (t = 4186 B)
+Massif: post-cull snapshot 21 (t = 4371 B)
+Massif: post-cull snapshot 22 (t = 4560 B)
+Massif: post-cull snapshot 23 (t = 4753 B)
+Massif: post-cull snapshot 24 (t = 4950 B)
+Massif: post-cull snapshot 25 (t = 5151 B)
+Massif: post-cull snapshot 26 (t = 5356 B)
+Massif: post-cull snapshot 27 (t = 5565 B)
+Massif: post-cull snapshot 28 (t = 5778 B)
+Massif: post-cull snapshot 29 (t = 5995 B)
+Massif: post-cull snapshot 30 (t = 6216 B)
+Massif: post-cull snapshot 31 (t = 6441 B)
+Massif: post-cull snapshot 32 (t = 6670 B)
+Massif: post-cull snapshot 33 (t = 6903 B)
+Massif: post-cull snapshot 34 (t = 7140 B)
+Massif: post-cull snapshot 35 (t = 7381 B)
+Massif: post-cull snapshot 36 (t = 7626 B)
+Massif: post-cull snapshot 37 (t = 7875 B)
+Massif: post-cull snapshot 38 (t = 8128 B)
+Massif: post-cull snapshot 39 (t = 8385 B)
+Massif: post-cull snapshot 40 (t = 8646 B)
+Massif: post-cull snapshot 41 (t = 8911 B)
+Massif: post-cull snapshot 42 (t = 9180 B)
+Massif: post-cull snapshot 43 (t = 9453 B)
+Massif: post-cull snapshot 44 (t = 9730 B)
+Massif: post-cull snapshot 45 (t = 10011 B)
+Massif: post-cull snapshot 46 (t = 10296 B)
+Massif: post-cull snapshot 47 (t = 10585 B)
+Massif: post-cull snapshot 48 (t = 10878 B)
+Massif: post-cull snapshot 49 (t = 11026 B) (detailed)
Massif: New time interval = 148 (between snapshots 48 and 49)
-Massif: took snapshot 50 (t = 11175 B)
-Massif: took snapshot 51 (t = 11325 B)
-Massif: took snapshot 52 (t = 11476 B)
-Massif: took snapshot 53 (t = 11628 B)
-Massif: took snapshot 54 (t = 11781 B)
-Massif: took snapshot 55 (t = 11935 B)
-Massif: took snapshot 56 (t = 12090 B)
-Massif: took snapshot 57 (t = 12246 B)
-Massif: took snapshot 58 (t = 12403 B)
-Massif: took snapshot 59 (t = 12561 B) (detailed)
-Massif: took snapshot 60 (t = 12720 B)
-Massif: took snapshot 61 (t = 12880 B)
-Massif: took snapshot 62 (t = 13041 B)
-Massif: took snapshot 63 (t = 13203 B)
-Massif: took snapshot 64 (t = 13366 B)
-Massif: took snapshot 65 (t = 13530 B)
-Massif: took snapshot 66 (t = 13695 B)
-Massif: took snapshot 67 (t = 13861 B)
-Massif: took snapshot 68 (t = 14028 B)
-Massif: took snapshot 69 (t = 14196 B) (detailed)
-Massif: took snapshot 70 (t = 14365 B)
-Massif: took snapshot 71 (t = 14535 B)
-Massif: took snapshot 72 (t = 14706 B)
-Massif: took snapshot 73 (t = 14878 B)
-Massif: took snapshot 74 (t = 15051 B)
-Massif: took snapshot 75 (t = 15225 B)
-Massif: took snapshot 76 (t = 15400 B)
-Massif: took snapshot 77 (t = 15576 B)
-Massif: took snapshot 78 (t = 15753 B)
-Massif: took snapshot 79 (t = 15931 B) (detailed)
-Massif: took snapshot 80 (t = 16110 B)
-Massif: took snapshot 81 (t = 16290 B)
-Massif: took snapshot 82 (t = 16471 B)
-Massif: took snapshot 83 (t = 16653 B)
-Massif: took snapshot 84 (t = 16836 B)
-Massif: took snapshot 85 (t = 17020 B)
-Massif: took snapshot 86 (t = 17205 B)
-Massif: took snapshot 87 (t = 17391 B)
-Massif: took snapshot 88 (t = 17578 B)
-Massif: took snapshot 89 (t = 17766 B) (detailed)
-Massif: took snapshot 90 (t = 17955 B)
-Massif: took snapshot 91 (t = 18145 B)
-Massif: took snapshot 92 (t = 18336 B)
-Massif: took snapshot 93 (t = 18528 B)
-Massif: took snapshot 94 (t = 18721 B)
-Massif: took snapshot 95 (t = 18915 B)
-Massif: took snapshot 96 (t = 19110 B)
-Massif: took snapshot 97 (t = 19306 B)
-Massif: took snapshot 98 (t = 19503 B)
-Massif: took snapshot 99 (t = 19701 B) (detailed)
+Massif: alloc snapshot 50 (t = 11175 B)
+Massif: alloc snapshot 51 (t = 11325 B)
+Massif: alloc snapshot 52 (t = 11476 B)
+Massif: alloc snapshot 53 (t = 11628 B)
+Massif: alloc snapshot 54 (t = 11781 B)
+Massif: alloc snapshot 55 (t = 11935 B)
+Massif: alloc snapshot 56 (t = 12090 B)
+Massif: alloc snapshot 57 (t = 12246 B)
+Massif: alloc snapshot 58 (t = 12403 B)
+Massif: alloc snapshot 59 (t = 12561 B) (detailed)
+Massif: alloc snapshot 60 (t = 12720 B)
+Massif: alloc snapshot 61 (t = 12880 B)
+Massif: alloc snapshot 62 (t = 13041 B)
+Massif: alloc snapshot 63 (t = 13203 B)
+Massif: alloc snapshot 64 (t = 13366 B)
+Massif: alloc snapshot 65 (t = 13530 B)
+Massif: alloc snapshot 66 (t = 13695 B)
+Massif: alloc snapshot 67 (t = 13861 B)
+Massif: alloc snapshot 68 (t = 14028 B)
+Massif: alloc snapshot 69 (t = 14196 B) (detailed)
+Massif: alloc snapshot 70 (t = 14365 B)
+Massif: alloc snapshot 71 (t = 14535 B)
+Massif: alloc snapshot 72 (t = 14706 B)
+Massif: alloc snapshot 73 (t = 14878 B)
+Massif: alloc snapshot 74 (t = 15051 B)
+Massif: alloc snapshot 75 (t = 15225 B)
+Massif: alloc snapshot 76 (t = 15400 B)
+Massif: alloc snapshot 77 (t = 15576 B)
+Massif: alloc snapshot 78 (t = 15753 B)
+Massif: alloc snapshot 79 (t = 15931 B) (detailed)
+Massif: alloc snapshot 80 (t = 16110 B)
+Massif: alloc snapshot 81 (t = 16290 B)
+Massif: alloc snapshot 82 (t = 16471 B)
+Massif: alloc snapshot 83 (t = 16653 B)
+Massif: alloc snapshot 84 (t = 16836 B)
+Massif: alloc snapshot 85 (t = 17020 B)
+Massif: alloc snapshot 86 (t = 17205 B)
+Massif: alloc snapshot 87 (t = 17391 B)
+Massif: alloc snapshot 88 (t = 17578 B)
+Massif: alloc snapshot 89 (t = 17766 B) (detailed)
+Massif: alloc snapshot 90 (t = 17955 B)
+Massif: alloc snapshot 91 (t = 18145 B)
+Massif: alloc snapshot 92 (t = 18336 B)
+Massif: alloc snapshot 93 (t = 18528 B)
+Massif: alloc snapshot 94 (t = 18721 B)
+Massif: alloc snapshot 95 (t = 18915 B)
+Massif: alloc snapshot 96 (t = 19110 B)
+Massif: alloc snapshot 97 (t = 19306 B)
+Massif: alloc snapshot 98 (t = 19503 B)
+Massif: alloc snapshot 99 (t = 19701 B) (detailed)
Massif: Culling...
Massif: cull 0 (t-span = 297) snapshot 49 (t = 11026 B) (detailed)
Massif: cull 1 (t-span = 301) snapshot 51 (t = 11325 B)
@@ -463,56 +463,56 @@
Massif: cull 48 (t-span = 591) snapshot 98 (t = 19503 B)
Massif: cull 49 (t-span = 598) snapshot 50 (t = 11175 B)
Massif: Finished culling ( 50 of 100 deleted)
-Massif: new snapshot 0 (t = 0 B)
-Massif: new snapshot 1 (t = 496 B)
-Massif: new snapshot 2 (t = 780 B)
-Massif: new snapshot 3 (t = 1128 B)
-Massif: new snapshot 4 (t = 1540 B)
-Massif: new snapshot 5 (t = 2016 B)
-Massif: new snapshot 6 (t = 2556 B)
-Massif: new snapshot 7 (t = 2850 B)
-Massif: new snapshot 8 (t = 3160 B)
-Massif: new snapshot 9 (t = 3486 B)
-Massif: new snapshot 10 (t = 3828 B)
-Massif: new snapshot 11 (t = 4186 B)
-Massif: new snapshot 12 (t = 4560 B)
-Massif: new snapshot 13 (t = 4950 B)
-Massif: new snapshot 14 (t = 5356 B)
-Massif: new snapshot 15 (t = 5778 B)
-Massif: new snapshot 16 (t = 6216 B)
-Massif: new snapshot 17 (t = 6670 B)
-Massif: new snapshot 18 (t = 7140 B)
-Massif: new snapshot 19 (t = 7626 B)
-Massif: new snapshot 20 (t = 8128 B)
-Massif: new snapshot 21 (t = 8646 B)
-Massif: new snapshot 22 (t = 9180 B)
-Massif: new snapshot 23 (t = 9730 B)
-Massif: new snapshot 24 (t = 10296 B)
-Massif: new snapshot 25 (t = 10878 B)
-Massif: new snapshot 26 (t = 11476 B)
-Massif: new snapshot 27 (t = 11781 B)
-Massif: new snapshot 28 (t = 12090 B)
-Massif: new snapshot 29 (t = 12403 B)
-Massif: new snapshot 30 (t = 12720 B)
-Massif: new snapshot 31 (t = 13041 B)
-Massif: new snapshot 32 (t = 13366 B)
-Massif: new snapshot 33 (t = 13695 B)
-Massif: new snapshot 34 (t = 14028 B)
-Massif: new snapshot 35 (t = 14365 B)
-Massif: new snapshot 36 (t = 14706 B)
-Massif: new snapshot 37 (t = 15051 B)
-Massif: new snapshot 38 (t = 15400 B)
-Massif: new snapshot 39 (t = 15753 B)
-Massif: new snapshot 40 (t = 16110 B)
-Massif: new snapshot 41 (t = 16471 B)
-Massif: new snapshot 42 (t = 16836 B)
-Massif: new snapshot 43 (t = 17205 B)
-Massif: new snapshot 44 (t = 17578 B)
-Massif: new snapshot 45 (t = 17955 B)
-Massif: new snapshot 46 (t = 18336 B)
-Massif: new snapshot 47 (t = 18721 B)
-Massif: new snapshot 48 (t = 19110 B)
-Massif: new snapshot 49 (t = 19701 B) (detailed)
+Massif: post-cull snapshot 0 (t = 0 B)
+Massif: post-cull snapshot 1 (t = 496 B)
+Massif: post-cull snapshot 2 (t = 780 B)
+Massif: post-cull snapshot 3 (t = 1128 B)
+Massif: post-cull snapshot 4 (t = 1540 B)
+Massif: post-cull snapshot 5 (t = 2016 B)
+Massif: post-cull snapshot 6 (t = 2556 B)
+Massif: post-cull snapshot 7 (t = 2850 B)
+Massif: post-cull snapshot 8 (t = 3160 B)
+Massif: post-cull snapshot 9 (t = 3486 B)
+Massif: post-cull snapshot 10 (t = 3828 B)
+Massif: post-cull snapshot 11 (t = 4186 B)
+Massif: post-cull snapshot 12 (t = 4560 B)
+Massif: post-cull snapshot 13 (t = 4950 B)
+Massif: post-cull snapshot 14 (t = 5356 B)
+Massif: post-cull snapshot 15 (t = 5778 B)
+Massif: post-cull snapshot 16 (t = 6216 B)
+Massif: post-cull snapshot 17 (t = 6670 B)
+Massif: post-cull snapshot 18 (t = 7140 B)
+Massif: post-cull snapshot 19 (t = 7626 B)
+Massif: post-cull snapshot 20 (t = 8128 B)
+Massif: post-cull snapshot 21 (t = 8646 B)
+Massif: post-cull snapshot 22 (t = 9180 B)
+Massif: post-cull snapshot 23 (t = 9730 B)
+Massif: post-cull snapshot 24 (t = 10296 B)
+Massif: post-cull snapshot 25 (t = 10878 B)
+Massif: post-cull snapshot 26 (t = 11476 B)
+Massif: post-cull snapshot 27 (t = 11781 B)
+Massif: post-cull snapshot 28 (t = 12090 B)
+Massif: post-cull snapshot 29 (t = 12403 B)
+Massif: post-cull snapshot 30 (t = 12720 B)
+Massif: post-cull snapshot 31 (t = 13041 B)
+Massif: post-cull snapshot 32 (t = 13366 B)
+Massif: post-cull snapshot 33 (t = 13695 B)
+Massif: post-cull snapshot 34 (t = 14028 B)
+Massif: post-cull snapshot 35 (t = 14365 B)
+Massif: post-cull snapshot 36 (t = 14706 B)
+Massif: post-cull snapshot 37 (t = 15051 B)
+Massif: post-cull snapshot 38 (t = 15400 B)
+Massif: post-cull snapshot 39 (t = 15753 B)
+Massif: post-cull snapshot 40 (t = 16110 B)
+Massif: post-cull snapshot 41 (t = 16471 B)
+Massif: post-cull snapshot 42 (t = 16836 B)
+Massif: post-cull snapshot 43 (t = 17205 B)
+Massif: post-cull snapshot 44 (t = 17578 B)
+Massif: post-cull snapshot 45 (t = 17955 B)
+Massif: post-cull snapshot 46 (t = 18336 B)
+Massif: post-cull snapshot 47 (t = 18721 B)
+Massif: post-cull snapshot 48 (t = 19110 B)
+Massif: post-cull snapshot 49 (t = 19701 B) (detailed)
Massif: New time interval = 284 (between snapshots 1 and 2)
Massif: allocs: 200
Massif: zeroallocs: 1 (0%)
|
|
From: Tom H. <th...@cy...> - 2007-09-21 03:18:27
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2007-09-21 03:15:01 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 256 tests, 27 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/addressable (stderr) memcheck/tests/badjump (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-pool-0 (stderr) memcheck/tests/leak-pool-1 (stderr) memcheck/tests/leak-pool-2 (stderr) memcheck/tests/leak-pool-3 (stderr) memcheck/tests/leak-pool-4 (stderr) memcheck/tests/leak-pool-5 (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/long_namespace_xml (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/partial_load_dflt (stderr) memcheck/tests/partial_load_ok (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/xor-undef-x86 (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2007-09-21 03:11:22
|
Nightly build on dellow ( x86_64, Fedora 7 ) started at 2007-09-21 03:10:04 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 293 tests, 4 stderr failures, 4 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/pth_cvsimple (stdout) none/tests/pth_detached (stdout) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 293 tests, 4 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Fri Sep 21 03:17:02 2007 --- new.short Fri Sep 21 03:23:39 2007 *************** *** 8,10 **** ! == 293 tests, 4 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) --- 8,10 ---- ! == 293 tests, 4 stderr failures, 4 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) *************** *** 15,16 **** --- 15,18 ---- none/tests/mremap2 (stdout) + none/tests/pth_cvsimple (stdout) + none/tests/pth_detached (stdout) |
|
From: Tom H. <th...@cy...> - 2007-09-21 02:58:43
|
Nightly build on lloyd ( x86_64, Fedora Core 3 ) started at 2007-09-21 03:05:08 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 293 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2007-09-21 02:52:23
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2007-09-21 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-09-21 02:08:51
|
Author: njn
Date: 2007-09-21 03:08:49 +0100 (Fri, 21 Sep 2007)
New Revision: 6883
Log:
Introduce a 'Time' type.
Modified:
branches/MASSIF2/massif/ms_main.c
Modified: branches/MASSIF2/massif/ms_main.c
===================================================================
--- branches/MASSIF2/massif/ms_main.c 2007-09-21 01:11:33 UTC (rev 6882)
+++ branches/MASSIF2/massif/ms_main.c 2007-09-21 02:08:49 UTC (rev 6883)
@@ -843,12 +843,14 @@
#define MAX_N_SNAPSHOTS 100 // Keep it even, for simplicity
#define DETAILED_SNAPSHOT_FREQ 10 // Every Nth snapshot will be detailed
+// Time is measured either in ms or bytes, depending on the --time-unit
+// option. It's a Long because it can exceed 32-bits reasonably easily, and
+// because we need to allow -1 as a possible value.
+typedef Long Time;
+
typedef
struct {
- // Time is measured either in ms or bytes, depending on the
- // --time-unit option. It's a Long because it can get very big with
- // --time-unit=ms.
- Long time; // Long: must allow -1.
+ Time time;
SizeT total_szB; // Size of all allocations at that snapshot time.
SizeT heap_admin_szB;
SizeT heap_szB;
@@ -951,7 +953,7 @@
{
Int i, jp, j, jn, min_timespan_i;
Int n_deleted = 0;
- Long min_timespan;
+ Time min_timespan;
n_cullings++;
@@ -983,7 +985,7 @@
min_timespan = snapshots[jn].time - snapshots[jp].time;
min_j = j;
while (jn < MAX_N_SNAPSHOTS) {
- Int timespan = snapshots[jn].time - snapshots[jp].time;
+ Time timespan = snapshots[jn].time - snapshots[jp].time;
tl_assert(timespan >= 0);
if (timespan < min_timespan) {
min_timespan = timespan;
@@ -1031,7 +1033,7 @@
min_timespan = snapshots[1].time - snapshots[0].time;
min_timespan_i = 1;
for (i = 2; i < next_snapshot_i; i++) {
- Long timespan = snapshots[i].time - snapshots[i-1].time;
+ Time timespan = snapshots[i].time - snapshots[i-1].time;
tl_assert(timespan >= 0);
if (timespan < min_timespan) {
min_timespan = timespan;
@@ -1061,13 +1063,13 @@
// if we try to take a snapshot and less than this much time has passed,
// we don't take it. Initialised to zero so that we begin by taking
// snapshots as quickly as possible.
- static Long min_time_interval = 0;
- static Long time_of_prev_snapshot = 0;
+ static Time min_time_interval = 0;
+ static Time time_of_prev_snapshot = 0;
// Zero allows startup snapshot.
- static Long earliest_possible_time_of_next_snapshot = 0;
+ static Time earliest_possible_time_of_next_snapshot = 0;
static Int n_snapshots_since_last_detailed = 0;
- Long time, time_since_prev;
+ Time time, time_since_prev;
Snapshot* snapshot;
Int this_snapshot_i = next_snapshot_i;
@@ -1083,7 +1085,7 @@
// first two snapshots. But at least users won't have to wonder why
// the first snapshot isn't at t=0.
static Bool is_first_snapshot = True;
- static Long start_time_ms;
+ static Time start_time_ms;
if (is_first_snapshot) {
start_time_ms = VG_(read_millisecond_timer)();
time = 0;
|
|
From: <sv...@va...> - 2007-09-21 01:11:31
|
Author: njn
Date: 2007-09-21 02:11:33 +0100 (Fri, 21 Sep 2007)
New Revision: 6882
Log:
Normalise timer at the start, so the first snapshot is always at time=0
(when the time-unit is milliseconds).
Modified:
branches/MASSIF2/massif/ms_main.c
Modified: branches/MASSIF2/massif/ms_main.c
===================================================================
--- branches/MASSIF2/massif/ms_main.c 2007-09-21 00:26:56 UTC (rev 6881)
+++ branches/MASSIF2/massif/ms_main.c 2007-09-21 01:11:33 UTC (rev 6882)
@@ -133,9 +133,8 @@
//
// Other:
// - am I recording asked-for sizes or actual rounded-up sizes?
-// - there's a gap between the ms timer initialisation during Valgrind
-// start-up and our first use of it. Could normalise versus our first
-// use...
+// [asked-for. Should probably be actual. But that might be
+// confusing...]
// - could conceivably remove XPts that have their szB reduced to zero.
// - allow the output file name to be changed
//
@@ -1073,9 +1072,30 @@
Int this_snapshot_i = next_snapshot_i;
// Get current time, in whatever time unit we're using.
- if (clo_time_unit == TimeMS) time = VG_(read_millisecond_timer)();
- else if (clo_time_unit == TimeB) time = total_allocs_deallocs_szB;
- else tl_assert2(0, "bad --time-unit value");
+ if (clo_time_unit == TimeMS) {
+ // Some stuff happens between the millisecond timer being initialised
+ // to zero and us taking our first snapshot. We determine that time
+ // gap so we can subtract it from all subsequent times so that our
+ // first snapshot is considered to be at t = 0ms. Unfortunately, a
+ // bunch of symbols get read after the first snapshot is taken but
+ // before the second one (which is triggered by the first allocation),
+ // so when the time-unit is 'ms' we always have a big gap between the
+ // first two snapshots. But at least users won't have to wonder why
+ // the first snapshot isn't at t=0.
+ static Bool is_first_snapshot = True;
+ static Long start_time_ms;
+ if (is_first_snapshot) {
+ start_time_ms = VG_(read_millisecond_timer)();
+ time = 0;
+ is_first_snapshot = False;
+ } else {
+ time = VG_(read_millisecond_timer)() - start_time_ms;
+ }
+ } else if (clo_time_unit == TimeB) {
+ time = total_allocs_deallocs_szB;
+ } else {
+ tl_assert2(0, "bad --time-unit value");
+ }
// Only do a snapshot if it's time.
time_since_prev = time - time_of_prev_snapshot;
|
|
From: <sv...@va...> - 2007-09-21 00:26:56
|
Author: njn
Date: 2007-09-21 01:26:56 +0100 (Fri, 21 Sep 2007)
New Revision: 6881
Log:
- Improve the sampling approach: after culling, our minimum time interval
now becomes the minimum timespan in the remaining snapshots. That ensures
even sampling frequency, and avoids the previous possibility of sampling
more frequently in the 2nd half of the snapshots.
- Don't take a snapshot at the end, it's not necessary.
- Add two tests for the -v culling output.
- Rename some counters.
- Add some notes.
Added:
branches/MASSIF2/massif/tests/culling1.c
branches/MASSIF2/massif/tests/culling1.stderr.exp
branches/MASSIF2/massif/tests/culling1.vgtest
branches/MASSIF2/massif/tests/culling2.c
branches/MASSIF2/massif/tests/culling2.stderr.exp
branches/MASSIF2/massif/tests/culling2.vgtest
branches/MASSIF2/massif/tests/filter_verbose
Modified:
branches/MASSIF2/massif/ms_main.c
branches/MASSIF2/massif/tests/Makefile.am
Modified: branches/MASSIF2/massif/ms_main.c
===================================================================
--- branches/MASSIF2/massif/ms_main.c 2007-09-20 22:42:04 UTC (rev 6880)
+++ branches/MASSIF2/massif/ms_main.c 2007-09-21 00:26:56 UTC (rev 6881)
@@ -31,6 +31,10 @@
// XXX:
//---------------------------------------------------------------------------
// Todo:
+// - do a test where the time exceeds 32-bits
+// - do a test with no allocations -- bar should be zero sized in graph?
+// - do tests with complicated stack traces -- big ones, ones that require
+// XCon_redo, etc.
// - test what happens when alloc-fns cover an entire trace
// - write a good basic test that shows how the tool works, suitable for
// documentation
@@ -306,19 +310,19 @@
// - 15,000 XPts 800,000 XPts
// - 1,800 top-XPts
-static UInt n_xpts = 0;
-static UInt n_dupd_xpts = 0;
-static UInt n_dupd_xpts_freed = 0;
-static UInt n_allocs = 0;
-static UInt n_zero_allocs = 0;
-static UInt n_frees = 0;
-static UInt n_children_reallocs = 0;
+static UInt n_xpts = 0;
+static UInt n_dupd_xpts = 0;
+static UInt n_dupd_xpts_freed = 0;
+static UInt n_allocs = 0;
+static UInt n_zero_allocs = 0;
+static UInt n_frees = 0;
+static UInt n_xpt_expansions = 0;
-static UInt n_getXCon_redo = 0;
+static UInt n_getXCon_redo = 0;
-static UInt n_cullings = 0;
-static UInt n_real_snapshots = 0;
-static UInt n_fake_snapshots = 0;
+static UInt n_cullings = 0;
+static UInt n_real_snapshots = 0;
+static UInt n_skipped_snapshots = 0;
//------------------------------------------------------------//
@@ -546,7 +550,7 @@
parent->children = VG_(realloc)( parent->children,
parent->max_children * sizeof(XPt*) );
}
- n_children_reallocs++;
+ n_xpt_expansions++;
}
// Insert new child XPt in parent's children list.
@@ -941,11 +945,14 @@
// smallest snapshots in one hit, because when a snapshot is removed, its
// neighbours immediately cover greater timespans. So it's O(N^2), but N is
// small, and it's not done very often.
-static void cull_snapshots(void)
+//
+// Once we're done, we return the new smallest interval between snapshots.
+// That becomes our minimum time interval.
+static UInt cull_snapshots(void)
{
- Int i, jp, j, jn;
- Int n_deleted = 0;
- Long min_timespan = 0x7fffffff;
+ Int i, jp, j, jn, min_timespan_i;
+ Int n_deleted = 0;
+ Long min_timespan;
n_cullings++;
@@ -955,8 +962,9 @@
j < MAX_N_SNAPSHOTS && !is_snapshot_in_use(&snapshots[j]); \
j++) { }
- if (VG_(clo_verbosity) > 1)
+ if (VG_(clo_verbosity) > 1) {
VERB("Culling...");
+ }
// First we remove enough snapshots by clearing them in-place. Once
// that's done, we can slide the remaining ones down.
@@ -1015,14 +1023,34 @@
// Check snapshots array looks ok after changes.
sanity_check_snapshots_array();
+ // Find the minimum timespan remaining; that will be our new minimum
+ // time interval. Note that above we were finding timespans by measuring
+ // two intervals around a snapshot that was under consideration for
+ // deletion. Here we only measure single intervals because all the
+ // deletions have occurred.
+ tl_assert(next_snapshot_i > 1);
+ min_timespan = snapshots[1].time - snapshots[0].time;
+ min_timespan_i = 1;
+ for (i = 2; i < next_snapshot_i; i++) {
+ Long timespan = snapshots[i].time - snapshots[i-1].time;
+ tl_assert(timespan >= 0);
+ if (timespan < min_timespan) {
+ min_timespan = timespan;
+ min_timespan_i = i;
+ }
+ }
+
// Print remaining snapshots, if necessary.
if (VG_(clo_verbosity) > 1) {
VERB("Finished culling (%3d of %3d deleted)", n_deleted, MAX_N_SNAPSHOTS);
for (i = 0; i < next_snapshot_i; i++) {
VERB_snapshot(" new", i);
}
- VERB("New time interval = %ld", min_timespan);
+ VERB("New time interval = %lld (between snapshots %d and %d)",
+ min_timespan, min_timespan_i-1, min_timespan_i);
}
+
+ return min_timespan;
}
// Take a snapshot. Note that with bigger depths, snapshots can be slow,
@@ -1030,12 +1058,17 @@
// [XXX: is that still true?]
static void take_snapshot(void)
{
- static UInt time_interval = 5;
- static UInt time_of_prev_snapshot = 0;
- static UInt time_of_next_snapshot = 0; // zero allows startup snapshot
+ // 'min_time_interval' is the minimum time interval between snapshots;
+ // if we try to take a snapshot and less than this much time has passed,
+ // we don't take it. Initialised to zero so that we begin by taking
+ // snapshots as quickly as possible.
+ static Long min_time_interval = 0;
+ static Long time_of_prev_snapshot = 0;
+ // Zero allows startup snapshot.
+ static Long earliest_possible_time_of_next_snapshot = 0;
static Int n_snapshots_since_last_detailed = 0;
- Int time, time_since_prev;
+ Long time, time_since_prev;
Snapshot* snapshot;
Int this_snapshot_i = next_snapshot_i;
@@ -1046,8 +1079,8 @@
// Only do a snapshot if it's time.
time_since_prev = time - time_of_prev_snapshot;
- if (time < time_of_next_snapshot) {
- n_fake_snapshots++;
+ if (time < earliest_possible_time_of_next_snapshot) {
+ n_skipped_snapshots++;
return;
}
@@ -1105,20 +1138,14 @@
VERB_snapshot("took", this_snapshot_i);
}
- // Cull the entries, if our snapshot table is full
+ // Cull the entries, if our snapshot table is full.
if (MAX_N_SNAPSHOTS == next_snapshot_i) {
- cull_snapshots();
- time_interval *= 2;
+ min_time_interval = cull_snapshots();
}
- // Take time for the next snapshot from now, rather than when this
- // snapshot should have happened. Because the time_interval is the
- // minimum time between snapshots -- if there's a big gap due to a kernel
- // operation or something, there's no point doing catch-up snapshots
- // every allocation for a while -- that would just give N snapshots at
- // almost the same time.
+ // Work out the earliest time when the next snapshot can happen.
time_of_prev_snapshot = time;
- time_of_next_snapshot = time + time_interval;
+ earliest_possible_time_of_next_snapshot = time + min_time_interval;
}
@@ -1609,31 +1636,28 @@
static void ms_fini(Int exit_status)
{
- // Do a final (empty) sample to show program's end
- take_snapshot();
-
// Output.
write_detailed_snapshots();
// Stats
if (VG_(clo_verbosity) > 1) {
tl_assert(n_xpts > 0); // always have alloc_xpt
- VERB("allocs: %u", n_allocs);
- VERB("zeroallocs: %u (%d%%)",
+ VERB("allocs: %u", n_allocs);
+ VERB("zeroallocs: %u (%d%%)",
n_zero_allocs,
( n_allocs ? n_zero_allocs * 100 / n_allocs : 0 ));
- VERB("frees: %u", n_frees);
- VERB("XPts: %u", n_xpts);
- VERB("top-XPts: %u (%d%%)",
+ VERB("frees: %u", n_frees);
+ VERB("XPts: %u", n_xpts);
+ VERB("top-XPts: %u (%d%%)",
alloc_xpt->n_children,
( n_xpts ? alloc_xpt->n_children * 100 / n_xpts : 0));
- VERB("dup'd XPts: %u", n_dupd_xpts);
- VERB("dup'd/freed XPts:%u", n_dupd_xpts_freed);
- VERB("c-reallocs: %u", n_children_reallocs);
- VERB("fake snapshots: %u", n_fake_snapshots);
- VERB("real snapshots: %u", n_real_snapshots);
- VERB("cullings: %u", n_cullings);
- VERB("XCon_redos: %u", n_getXCon_redo);
+ VERB("dup'd XPts: %u", n_dupd_xpts);
+ VERB("dup'd/freed XPts: %u", n_dupd_xpts_freed);
+ VERB("XPt-expansions: %u", n_xpt_expansions);
+ VERB("skipped snapshots: %u", n_skipped_snapshots);
+ VERB("real snapshots: %u", n_real_snapshots);
+ VERB("cullings: %u", n_cullings);
+ VERB("XCon_redos: %u", n_getXCon_redo);
}
}
Modified: branches/MASSIF2/massif/tests/Makefile.am
===================================================================
--- branches/MASSIF2/massif/tests/Makefile.am 2007-09-20 22:42:04 UTC (rev 6880)
+++ branches/MASSIF2/massif/tests/Makefile.am 2007-09-21 00:26:56 UTC (rev 6881)
@@ -2,13 +2,15 @@
# For AM_FLAG_M3264_PRI
include $(top_srcdir)/Makefile.flags.am
-noinst_SCRIPTS = filter_stderr
+noinst_SCRIPTS = filter_stderr filter_verbose
EXTRA_DIST = $(noinst_SCRIPTS) \
alloc-fns-A.post.exp alloc-fns-A.stderr.exp alloc-fns-A.vgtest \
alloc-fns-B.post.exp alloc-fns-B.stderr.exp alloc-fns-B.vgtest \
basic.post.exp basic.stderr.exp basic.vgtest \
basic_malloc.stderr.exp basic_malloc.vgtest \
+ culling1.stderr.exp culling1.vgtest \
+ culling2.stderr.exp culling2.vgtest \
thresholds_0_0.post.exp thresholds_0_0.stderr.exp thresholds_0_0.vgtest \
thresholds_0_10.post.exp thresholds_0_10.stderr.exp thresholds_0_10.vgtest \
thresholds_10_0.post.exp thresholds_10_0.stderr.exp thresholds_10_0.vgtest \
@@ -23,5 +25,6 @@
alloc-fns \
basic \
basic_malloc \
+ culling1 culling2
thresholds
Added: branches/MASSIF2/massif/tests/culling1.c
===================================================================
--- branches/MASSIF2/massif/tests/culling1.c (rev 0)
+++ branches/MASSIF2/massif/tests/culling1.c 2007-09-21 00:26:56 UTC (rev 6881)
@@ -0,0 +1,10 @@
+#include <stdlib.h>
+
+int main(void)
+{
+ int i;
+ for (i = 0; i < 200; i++) {
+ malloc(10);
+ }
+ return 0;
+}
Added: branches/MASSIF2/massif/tests/culling1.stderr.exp
===================================================================
--- branches/MASSIF2/massif/tests/culling1.stderr.exp (rev 0)
+++ branches/MASSIF2/massif/tests/culling1.stderr.exp 2007-09-21 00:26:56 UTC (rev 6881)
@@ -0,0 +1,375 @@
+Massif: alloc-fns:
+Massif: 1: calloc
+Massif: 2: realloc
+Massif: 3: memalign
+Massif: 4: __builtin_new
+Massif: 5: __builtin_vec_new
+Massif: 6: malloc
+Massif: took snapshot 0 (t = 0 B)
+Massif: took snapshot 1 (t = 10 B)
+Massif: took snapshot 2 (t = 20 B)
+Massif: took snapshot 3 (t = 30 B)
+Massif: took snapshot 4 (t = 40 B)
+Massif: took snapshot 5 (t = 50 B)
+Massif: took snapshot 6 (t = 60 B)
+Massif: took snapshot 7 (t = 70 B)
+Massif: took snapshot 8 (t = 80 B)
+Massif: took snapshot 9 (t = 90 B) (detailed)
+Massif: took snapshot 10 (t = 100 B)
+Massif: took snapshot 11 (t = 110 B)
+Massif: took snapshot 12 (t = 120 B)
+Massif: took snapshot 13 (t = 130 B)
+Massif: took snapshot 14 (t = 140 B)
+Massif: took snapshot 15 (t = 150 B)
+Massif: took snapshot 16 (t = 160 B)
+Massif: took snapshot 17 (t = 170 B)
+Massif: took snapshot 18 (t = 180 B)
+Massif: took snapshot 19 (t = 190 B) (detailed)
+Massif: took snapshot 20 (t = 200 B)
+Massif: took snapshot 21 (t = 210 B)
+Massif: took snapshot 22 (t = 220 B)
+Massif: took snapshot 23 (t = 230 B)
+Massif: took snapshot 24 (t = 240 B)
+Massif: took snapshot 25 (t = 250 B)
+Massif: took snapshot 26 (t = 260 B)
+Massif: took snapshot 27 (t = 270 B)
+Massif: took snapshot 28 (t = 280 B)
+Massif: took snapshot 29 (t = 290 B) (detailed)
+Massif: took snapshot 30 (t = 300 B)
+Massif: took snapshot 31 (t = 310 B)
+Massif: took snapshot 32 (t = 320 B)
+Massif: took snapshot 33 (t = 330 B)
+Massif: took snapshot 34 (t = 340 B)
+Massif: took snapshot 35 (t = 350 B)
+Massif: took snapshot 36 (t = 360 B)
+Massif: took snapshot 37 (t = 370 B)
+Massif: took snapshot 38 (t = 380 B)
+Massif: took snapshot 39 (t = 390 B) (detailed)
+Massif: took snapshot 40 (t = 400 B)
+Massif: took snapshot 41 (t = 410 B)
+Massif: took snapshot 42 (t = 420 B)
+Massif: took snapshot 43 (t = 430 B)
+Massif: took snapshot 44 (t = 440 B)
+Massif: took snapshot 45 (t = 450 B)
+Massif: took snapshot 46 (t = 460 B)
+Massif: took snapshot 47 (t = 470 B)
+Massif: took snapshot 48 (t = 480 B)
+Massif: took snapshot 49 (t = 490 B) (detailed)
+Massif: took snapshot 50 (t = 500 B)
+Massif: took snapshot 51 (t = 510 B)
+Massif: took snapshot 52 (t = 520 B)
+Massif: took snapshot 53 (t = 530 B)
+Massif: took snapshot 54 (t = 540 B)
+Massif: took snapshot 55 (t = 550 B)
+Massif: took snapshot 56 (t = 560 B)
+Massif: took snapshot 57 (t = 570 B)
+Massif: took snapshot 58 (t = 580 B)
+Massif: took snapshot 59 (t = 590 B) (detailed)
+Massif: took snapshot 60 (t = 600 B)
+Massif: took snapshot 61 (t = 610 B)
+Massif: took snapshot 62 (t = 620 B)
+Massif: took snapshot 63 (t = 630 B)
+Massif: took snapshot 64 (t = 640 B)
+Massif: took snapshot 65 (t = 650 B)
+Massif: took snapshot 66 (t = 660 B)
+Massif: took snapshot 67 (t = 670 B)
+Massif: took snapshot 68 (t = 680 B)
+Massif: took snapshot 69 (t = 690 B) (detailed)
+Massif: took snapshot 70 (t = 700 B)
+Massif: took snapshot 71 (t = 710 B)
+Massif: took snapshot 72 (t = 720 B)
+Massif: took snapshot 73 (t = 730 B)
+Massif: took snapshot 74 (t = 740 B)
+Massif: took snapshot 75 (t = 750 B)
+Massif: took snapshot 76 (t = 760 B)
+Massif: took snapshot 77 (t = 770 B)
+Massif: took snapshot 78 (t = 780 B)
+Massif: took snapshot 79 (t = 790 B) (detailed)
+Massif: took snapshot 80 (t = 800 B)
+Massif: took snapshot 81 (t = 810 B)
+Massif: took snapshot 82 (t = 820 B)
+Massif: took snapshot 83 (t = 830 B)
+Massif: took snapshot 84 (t = 840 B)
+Massif: took snapshot 85 (t = 850 B)
+Massif: took snapshot 86 (t = 860 B)
+Massif: took snapshot 87 (t = 870 B)
+Massif: took snapshot 88 (t = 880 B)
+Massif: took snapshot 89 (t = 890 B) (detailed)
+Massif: took snapshot 90 (t = 900 B)
+Massif: took snapshot 91 (t = 910 B)
+Massif: took snapshot 92 (t = 920 B)
+Massif: took snapshot 93 (t = 930 B)
+Massif: took snapshot 94 (t = 940 B)
+Massif: took snapshot 95 (t = 950 B)
+Massif: took snapshot 96 (t = 960 B)
+Massif: took snapshot 97 (t = 970 B)
+Massif: took snapshot 98 (t = 980 B)
+Massif: took snapshot 99 (t = 990 B) (detailed)
+Massif: Culling...
+Massif: cull 0 (t-span = 20) snapshot 1 (t = 10 B)
+Massif: cull 1 (t-span = 20) snapshot 3 (t = 30 B)
+Massif: cull 2 (t-span = 20) snapshot 5 (t = 50 B)
+Massif: cull 3 (t-span = 20) snapshot 7 (t = 70 B)
+Massif: cull 4 (t-span = 20) snapshot 9 (t = 90 B) (detailed)
+Massif: cull 5 (t-span = 20) snapshot 11 (t = 110 B)
+Massif: cull 6 (t-span = 20) snapshot 13 (t = 130 B)
+Massif: cull 7 (t-span = 20) snapshot 15 (t = 150 B)
+Massif: cull 8 (t-span = 20) snapshot 17 (t = 170 B)
+Massif: cull 9 (t-span = 20) snapshot 19 (t = 190 B) (detailed)
+Massif: cull 10 (t-span = 20) snapshot 21 (t = 210 B)
+Massif: cull 11 (t-span = 20) snapshot 23 (t = 230 B)
+Massif: cull 12 (t-span = 20) snapshot 25 (t = 250 B)
+Massif: cull 13 (t-span = 20) snapshot 27 (t = 270 B)
+Massif: cull 14 (t-span = 20) snapshot 29 (t = 290 B) (detailed)
+Massif: cull 15 (t-span = 20) snapshot 31 (t = 310 B)
+Massif: cull 16 (t-span = 20) snapshot 33 (t = 330 B)
+Massif: cull 17 (t-span = 20) snapshot 35 (t = 350 B)
+Massif: cull 18 (t-span = 20) snapshot 37 (t = 370 B)
+Massif: cull 19 (t-span = 20) snapshot 39 (t = 390 B) (detailed)
+Massif: cull 20 (t-span = 20) snapshot 41 (t = 410 B)
+Massif: cull 21 (t-span = 20) snapshot 43 (t = 430 B)
+Massif: cull 22 (t-span = 20) snapshot 45 (t = 450 B)
+Massif: cull 23 (t-span = 20) snapshot 47 (t = 470 B)
+Massif: cull 24 (t-span = 20) snapshot 49 (t = 490 B) (detailed)
+Massif: cull 25 (t-span = 20) snapshot 51 (t = 510 B)
+Massif: cull 26 (t-span = 20) snapshot 53 (t = 530 B)
+Massif: cull 27 (t-span = 20) snapshot 55 (t = 550 B)
+Massif: cull 28 (t-span = 20) snapshot 57 (t = 570 B)
+Massif: cull 29 (t-span = 20) snapshot 59 (t = 590 B) (detailed)
+Massif: cull 30 (t-span = 20) snapshot 61 (t = 610 B)
+Massif: cull 31 (t-span = 20) snapshot 63 (t = 630 B)
+Massif: cull 32 (t-span = 20) snapshot 65 (t = 650 B)
+Massif: cull 33 (t-span = 20) snapshot 67 (t = 670 B)
+Massif: cull 34 (t-span = 20) snapshot 69 (t = 690 B) (detailed)
+Massif: cull 35 (t-span = 20) snapshot 71 (t = 710 B)
+Massif: cull 36 (t-span = 20) snapshot 73 (t = 730 B)
+Massif: cull 37 (t-span = 20) snapshot 75 (t = 750 B)
+Massif: cull 38 (t-span = 20) snapshot 77 (t = 770 B)
+Massif: cull 39 (t-span = 20) snapshot 79 (t = 790 B) (detailed)
+Massif: cull 40 (t-span = 20) snapshot 81 (t = 810 B)
+Massif: cull 41 (t-span = 20) snapshot 83 (t = 830 B)
+Massif: cull 42 (t-span = 20) snapshot 85 (t = 850 B)
+Massif: cull 43 (t-span = 20) snapshot 87 (t = 870 B)
+Massif: cull 44 (t-span = 20) snapshot 89 (t = 890 B) (detailed)
+Massif: cull 45 (t-span = 20) snapshot 91 (t = 910 B)
+Massif: cull 46 (t-span = 20) snapshot 93 (t = 930 B)
+Massif: cull 47 (t-span = 20) snapshot 95 (t = 950 B)
+Massif: cull 48 (t-span = 20) snapshot 97 (t = 970 B)
+Massif: cull 49 (t-span = 30) snapshot 98 (t = 980 B)
+Massif: Finished culling ( 50 of 100 deleted)
+Massif: new snapshot 0 (t = 0 B)
+Massif: new snapshot 1 (t = 20 B)
+Massif: new snapshot 2 (t = 40 B)
+Massif: new snapshot 3 (t = 60 B)
+Massif: new snapshot 4 (t = 80 B)
+Massif: new snapshot 5 (t = 100 B)
+Massif: new snapshot 6 (t = 120 B)
+Massif: new snapshot 7 (t = 140 B)
+Massif: new snapshot 8 (t = 160 B)
+Massif: new snapshot 9 (t = 180 B)
+Massif: new snapshot 10 (t = 200 B)
+Massif: new snapshot 11 (t = 220 B)
+Massif: new snapshot 12 (t = 240 B)
+Massif: new snapshot 13 (t = 260 B)
+Massif: new snapshot 14 (t = 280 B)
+Massif: new snapshot 15 (t = 300 B)
+Massif: new snapshot 16 (t = 320 B)
+Massif: new snapshot 17 (t = 340 B)
+Massif: new snapshot 18 (t = 360 B)
+Massif: new snapshot 19 (t = 380 B)
+Massif: new snapshot 20 (t = 400 B)
+Massif: new snapshot 21 (t = 420 B)
+Massif: new snapshot 22 (t = 440 B)
+Massif: new snapshot 23 (t = 460 B)
+Massif: new snapshot 24 (t = 480 B)
+Massif: new snapshot 25 (t = 500 B)
+Massif: new snapshot 26 (t = 520 B)
+Massif: new snapshot 27 (t = 540 B)
+Massif: new snapshot 28 (t = 560 B)
+Massif: new snapshot 29 (t = 580 B)
+Massif: new snapshot 30 (t = 600 B)
+Massif: new snapshot 31 (t = 620 B)
+Massif: new snapshot 32 (t = 640 B)
+Massif: new snapshot 33 (t = 660 B)
+Massif: new snapshot 34 (t = 680 B)
+Massif: new snapshot 35 (t = 700 B)
+Massif: new snapshot 36 (t = 720 B)
+Massif: new snapshot 37 (t = 740 B)
+Massif: new snapshot 38 (t = 760 B)
+Massif: new snapshot 39 (t = 780 B)
+Massif: new snapshot 40 (t = 800 B)
+Massif: new snapshot 41 (t = 820 B)
+Massif: new snapshot 42 (t = 840 B)
+Massif: new snapshot 43 (t = 860 B)
+Massif: new snapshot 44 (t = 880 B)
+Massif: new snapshot 45 (t = 900 B)
+Massif: new snapshot 46 (t = 920 B)
+Massif: new snapshot 47 (t = 940 B)
+Massif: new snapshot 48 (t = 960 B)
+Massif: new snapshot 49 (t = 990 B) (detailed)
+Massif: New time interval = 20 (between snapshots 0 and 1)
+Massif: took snapshot 50 (t = 1010 B)
+Massif: took snapshot 51 (t = 1030 B)
+Massif: took snapshot 52 (t = 1050 B)
+Massif: took snapshot 53 (t = 1070 B)
+Massif: took snapshot 54 (t = 1090 B)
+Massif: took snapshot 55 (t = 1110 B)
+Massif: took snapshot 56 (t = 1130 B)
+Massif: took snapshot 57 (t = 1150 B)
+Massif: took snapshot 58 (t = 1170 B)
+Massif: took snapshot 59 (t = 1190 B) (detailed)
+Massif: took snapshot 60 (t = 1210 B)
+Massif: took snapshot 61 (t = 1230 B)
+Massif: took snapshot 62 (t = 1250 B)
+Massif: took snapshot 63 (t = 1270 B)
+Massif: took snapshot 64 (t = 1290 B)
+Massif: took snapshot 65 (t = 1310 B)
+Massif: took snapshot 66 (t = 1330 B)
+Massif: took snapshot 67 (t = 1350 B)
+Massif: took snapshot 68 (t = 1370 B)
+Massif: took snapshot 69 (t = 1390 B) (detailed)
+Massif: took snapshot 70 (t = 1410 B)
+Massif: took snapshot 71 (t = 1430 B)
+Massif: took snapshot 72 (t = 1450 B)
+Massif: took snapshot 73 (t = 1470 B)
+Massif: took snapshot 74 (t = 1490 B)
+Massif: took snapshot 75 (t = 1510 B)
+Massif: took snapshot 76 (t = 1530 B)
+Massif: took snapshot 77 (t = 1550 B)
+Massif: took snapshot 78 (t = 1570 B)
+Massif: took snapshot 79 (t = 1590 B) (detailed)
+Massif: took snapshot 80 (t = 1610 B)
+Massif: took snapshot 81 (t = 1630 B)
+Massif: took snapshot 82 (t = 1650 B)
+Massif: took snapshot 83 (t = 1670 B)
+Massif: took snapshot 84 (t = 1690 B)
+Massif: took snapshot 85 (t = 1710 B)
+Massif: took snapshot 86 (t = 1730 B)
+Massif: took snapshot 87 (t = 1750 B)
+Massif: took snapshot 88 (t = 1770 B)
+Massif: took snapshot 89 (t = 1790 B) (detailed)
+Massif: took snapshot 90 (t = 1810 B)
+Massif: took snapshot 91 (t = 1830 B)
+Massif: took snapshot 92 (t = 1850 B)
+Massif: took snapshot 93 (t = 1870 B)
+Massif: took snapshot 94 (t = 1890 B)
+Massif: took snapshot 95 (t = 1910 B)
+Massif: took snapshot 96 (t = 1930 B)
+Massif: took snapshot 97 (t = 1950 B)
+Massif: took snapshot 98 (t = 1970 B)
+Massif: took snapshot 99 (t = 1990 B) (detailed)
+Massif: Culling...
+Massif: cull 0 (t-span = 40) snapshot 1 (t = 20 B)
+Massif: cull 1 (t-span = 40) snapshot 3 (t = 60 B)
+Massif: cull 2 (t-span = 40) snapshot 5 (t = 100 B)
+Massif: cull 3 (t-span = 40) snapshot 7 (t = 140 B)
+Massif: cull 4 (t-span = 40) snapshot 9 (t = 180 B)
+Massif: cull 5 (t-span = 40) snapshot 11 (t = 220 B)
+Massif: cull 6 (t-span = 40) snapshot 13 (t = 260 B)
+Massif: cull 7 (t-span = 40) snapshot 15 (t = 300 B)
+Massif: cull 8 (t-span = 40) snapshot 17 (t = 340 B)
+Massif: cull 9 (t-span = 40) snapshot 19 (t = 380 B)
+Massif: cull 10 (t-span = 40) snapshot 21 (t = 420 B)
+Massif: cull 11 (t-span = 40) snapshot 23 (t = 460 B)
+Massif: cull 12 (t-span = 40) snapshot 25 (t = 500 B)
+Massif: cull 13 (t-span = 40) snapshot 27 (t = 540 B)
+Massif: cull 14 (t-span = 40) snapshot 29 (t = 580 B)
+Massif: cull 15 (t-span = 40) snapshot 31 (t = 620 B)
+Massif: cull 16 (t-span = 40) snapshot 33 (t = 660 B)
+Massif: cull 17 (t-span = 40) snapshot 35 (t = 700 B)
+Massif: cull 18 (t-span = 40) snapshot 37 (t = 740 B)
+Massif: cull 19 (t-span = 40) snapshot 39 (t = 780 B)
+Massif: cull 20 (t-span = 40) snapshot 41 (t = 820 B)
+Massif: cull 21 (t-span = 40) snapshot 43 (t = 860 B)
+Massif: cull 22 (t-span = 40) snapshot 45 (t = 900 B)
+Massif: cull 23 (t-span = 40) snapshot 47 (t = 940 B)
+Massif: cull 24 (t-span = 40) snapshot 50 (t = 1010 B)
+Massif: cull 25 (t-span = 40) snapshot 52 (t = 1050 B)
+Massif: cull 26 (t-span = 40) snapshot 54 (t = 1090 B)
+Massif: cull 27 (t-span = 40) snapshot 56 (t = 1130 B)
+Massif: cull 28 (t-span = 40) snapshot 58 (t = 1170 B)
+Massif: cull 29 (t-span = 40) snapshot 60 (t = 1210 B)
+Massif: cull 30 (t-span = 40) snapshot 62 (t = 1250 B)
+Massif: cull 31 (t-span = 40) snapshot 64 (t = 1290 B)
+Massif: cull 32 (t-span = 40) snapshot 66 (t = 1330 B)
+Massif: cull 33 (t-span = 40) snapshot 68 (t = 1370 B)
+Massif: cull 34 (t-span = 40) snapshot 70 (t = 1410 B)
+Massif: cull 35 (t-span = 40) snapshot 72 (t = 1450 B)
+Massif: cull 36 (t-span = 40) snapshot 74 (t = 1490 B)
+Massif: cull 37 (t-span = 40) snapshot 76 (t = 1530 B)
+Massif: cull 38 (t-span = 40) snapshot 78 (t = 1570 B)
+Massif: cull 39 (t-span = 40) snapshot 80 (t = 1610 B)
+Massif: cull 40 (t-span = 40) snapshot 82 (t = 1650 B)
+Massif: cull 41 (t-span = 40) snapshot 84 (t = 1690 B)
+Massif: cull 42 (t-span = 40) snapshot 86 (t = 1730 B)
+Massif: cull 43 (t-span = 40) snapshot 88 (t = 1770 B)
+Massif: cull 44 (t-span = 40) snapshot 90 (t = 1810 B)
+Massif: cull 45 (t-span = 40) snapshot 92 (t = 1850 B)
+Massif: cull 46 (t-span = 40) snapshot 94 (t = 1890 B)
+Massif: cull 47 (t-span = 40) snapshot 96 (t = 1930 B)
+Massif: cull 48 (t-span = 40) snapshot 98 (t = 1970 B)
+Massif: cull 49 (t-span = 70) snapshot 48 (t = 960 B)
+Massif: Finished culling ( 50 of 100 deleted)
+Massif: new snapshot 0 (t = 0 B)
+Massif: new snapshot 1 (t = 40 B)
+Massif: new snapshot 2 (t = 80 B)
+Massif: new snapshot 3 (t = 120 B)
+Massif: new snapshot 4 (t = 160 B)
+Massif: new snapshot 5 (t = 200 B)
+Massif: new snapshot 6 (t = 240 B)
+Massif: new snapshot 7 (t = 280 B)
+Massif: new snapshot 8 (t = 320 B)
+Massif: new snapshot 9 (t = 360 B)
+Massif: new snapshot 10 (t = 400 B)
+Massif: new snapshot 11 (t = 440 B)
+Massif: new snapshot 12 (t = 480 B)
+Massif: new snapshot 13 (t = 520 B)
+Massif: new snapshot 14 (t = 560 B)
+Massif: new snapshot 15 (t = 600 B)
+Massif: new snapshot 16 (t = 640 B)
+Massif: new snapshot 17 (t = 680 B)
+Massif: new snapshot 18 (t = 720 B)
+Massif: new snapshot 19 (t = 760 B)
+Massif: new snapshot 20 (t = 800 B)
+Massif: new snapshot 21 (t = 840 B)
+Massif: new snapshot 22 (t = 880 B)
+Massif: new snapshot 23 (t = 920 B)
+Massif: new snapshot 24 (t = 990 B) (detailed)
+Massif: new snapshot 25 (t = 1030 B)
+Massif: new snapshot 26 (t = 1070 B)
+Massif: new snapshot 27 (t = 1110 B)
+Massif: new snapshot 28 (t = 1150 B)
+Massif: new snapshot 29 (t = 1190 B) (detailed)
+Massif: new snapshot 30 (t = 1230 B)
+Massif: new snapshot 31 (t = 1270 B)
+Massif: new snapshot 32 (t = 1310 B)
+Massif: new snapshot 33 (t = 1350 B)
+Massif: new snapshot 34 (t = 1390 B) (detailed)
+Massif: new snapshot 35 (t = 1430 B)
+Massif: new snapshot 36 (t = 1470 B)
+Massif: new snapshot 37 (t = 1510 B)
+Massif: new snapshot 38 (t = 1550 B)
+Massif: new snapshot 39 (t = 1590 B) (detailed)
+Massif: new snapshot 40 (t = 1630 B)
+Massif: new snapshot 41 (t = 1670 B)
+Massif: new snapshot 42 (t = 1710 B)
+Massif: new snapshot 43 (t = 1750 B)
+Massif: new snapshot 44 (t = 1790 B) (detailed)
+Massif: new snapshot 45 (t = 1830 B)
+Massif: new snapshot 46 (t = 1870 B)
+Massif: new snapshot 47 (t = 1910 B)
+Massif: new snapshot 48 (t = 1950 B)
+Massif: new snapshot 49 (t = 1990 B) (detailed)
+Massif: New time interval = 40 (between snapshots 0 and 1)
+Massif: allocs: 200
+Massif: zeroallocs: 0 (0%)
+Massif: frees: 0
+Massif: XPts: 2
+Massif: top-XPts: 1 (50%)
+Massif: dup'd XPts: 30
+Massif: dup'd/freed XPts: 18
+Massif: XPt-expansions: 1
+Massif: skipped snapshots: 51
+Massif: real snapshots: 150
+Massif: cullings: 2
+Massif: XCon_redos: 0
Added: branches/MASSIF2/massif/tests/culling1.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/culling1.vgtest (rev 0)
+++ branches/MASSIF2/massif/tests/culling1.vgtest 2007-09-21 00:26:56 UTC (rev 6881)
@@ -0,0 +1,4 @@
+prog: culling1
+vgopts: -v --stacks=no --time-unit=B
+stderr_filter: filter_verbose
+cleanup: rm massif.out
Added: branches/MASSIF2/massif/tests/culling2.c
===================================================================
--- branches/MASSIF2/massif/tests/culling2.c (rev 0)
+++ branches/MASSIF2/massif/tests/culling2.c 2007-09-21 00:26:56 UTC (rev 6881)
@@ -0,0 +1,10 @@
+#include <stdlib.h>
+
+int main(void)
+{
+ int i;
+ for (i = 0; i < 200; i++) {
+ malloc(i);
+ }
+ return 0;
+}
Added: branches/MASSIF2/massif/tests/culling2.stderr.exp
===================================================================
--- branches/MASSIF2/massif/tests/culling2.stderr.exp (rev 0)
+++ branches/MASSIF2/massif/tests/culling2.stderr.exp 2007-09-21 00:26:56 UTC (rev 6881)
@@ -0,0 +1,528 @@
+Massif: alloc-fns:
+Massif: 1: calloc
+Massif: 2: realloc
+Massif: 3: memalign
+Massif: 4: __builtin_new
+Massif: 5: __builtin_vec_new
+Massif: 6: malloc
+Massif: took snapshot 0 (t = 0 B)
+Massif: took snapshot 1 (t = 0 B)
+Massif: took snapshot 2 (t = 1 B)
+Massif: took snapshot 3 (t = 3 B)
+Massif: took snapshot 4 (t = 6 B)
+Massif: took snapshot 5 (t = 10 B)
+Massif: took snapshot 6 (t = 15 B)
+Massif: took snapshot 7 (t = 21 B)
+Massif: took snapshot 8 (t = 28 B)
+Massif: took snapshot 9 (t = 36 B) (detailed)
+Massif: took snapshot 10 (t = 45 B)
+Massif: took snapshot 11 (t = 55 B)
+Massif: took snapshot 12 (t = 66 B)
+Massif: took snapshot 13 (t = 78 B)
+Massif: took snapshot 14 (t = 91 B)
+Massif: took snapshot 15 (t = 105 B)
+Massif: took snapshot 16 (t = 120 B)
+Massif: took snapshot 17 (t = 136 B)
+Massif: took snapshot 18 (t = 153 B)
+Massif: took snapshot 19 (t = 171 B) (detailed)
+Massif: took snapshot 20 (t = 190 B)
+Massif: took snapshot 21 (t = 210 B)
+Massif: took snapshot 22 (t = 231 B)
+Massif: took snapshot 23 (t = 253 B)
+Massif: took snapshot 24 (t = 276 B)
+Massif: took snapshot 25 (t = 300 B)
+Massif: took snapshot 26 (t = 325 B)
+Massif: took snapshot 27 (t = 351 B)
+Massif: took snapshot 28 (t = 378 B)
+Massif: took snapshot 29 (t = 406 B) (detailed)
+Massif: took snapshot 30 (t = 435 B)
+Massif: took snapshot 31 (t = 465 B)
+Massif: took snapshot 32 (t = 496 B)
+Massif: took snapshot 33 (t = 528 B)
+Massif: took snapshot 34 (t = 561 B)
+Massif: took snapshot 35 (t = 595 B)
+Massif: took snapshot 36 (t = 630 B)
+Massif: took snapshot 37 (t = 666 B)
+Massif: took snapshot 38 (t = 703 B)
+Massif: took snapshot 39 (t = 741 B) (detailed)
+Massif: took snapshot 40 (t = 780 B)
+Massif: took snapshot 41 (t = 820 B)
+Massif: took snapshot 42 (t = 861 B)
+Massif: took snapshot 43 (t = 903 B)
+Massif: took snapshot 44 (t = 946 B)
+Massif: took snapshot 45 (t = 990 B)
+Massif: took snapshot 46 (t = 1035 B)
+Massif: took snapshot 47 (t = 1081 B)
+Massif: took snapshot 48 (t = 1128 B)
+Massif: took snapshot 49 (t = 1176 B) (detailed)
+Massif: took snapshot 50 (t = 1225 B)
+Massif: took snapshot 51 (t = 1275 B)
+Massif: took snapshot 52 (t = 1326 B)
+Massif: took snapshot 53 (t = 1378 B)
+Massif: took snapshot 54 (t = 1431 B)
+Massif: took snapshot 55 (t = 1485 B)
+Massif: took snapshot 56 (t = 1540 B)
+Massif: took snapshot 57 (t = 1596 B)
+Massif: took snapshot 58 (t = 1653 B)
+Massif: took snapshot 59 (t = 1711 B) (detailed)
+Massif: took snapshot 60 (t = 1770 B)
+Massif: took snapshot 61 (t = 1830 B)
+Massif: took snapshot 62 (t = 1891 B)
+Massif: took snapshot 63 (t = 1953 B)
+Massif: took snapshot 64 (t = 2016 B)
+Massif: took snapshot 65 (t = 2080 B)
+Massif: took snapshot 66 (t = 2145 B)
+Massif: took snapshot 67 (t = 2211 B)
+Massif: took snapshot 68 (t = 2278 B)
+Massif: took snapshot 69 (t = 2346 B) (detailed)
+Massif: took snapshot 70 (t = 2415 B)
+Massif: took snapshot 71 (t = 2485 B)
+Massif: took snapshot 72 (t = 2556 B)
+Massif: took snapshot 73 (t = 2628 B)
+Massif: took snapshot 74 (t = 2701 B)
+Massif: took snapshot 75 (t = 2775 B)
+Massif: took snapshot 76 (t = 2850 B)
+Massif: took snapshot 77 (t = 2926 B)
+Massif: took snapshot 78 (t = 3003 B)
+Massif: took snapshot 79 (t = 3081 B) (detailed)
+Massif: took snapshot 80 (t = 3160 B)
+Massif: took snapshot 81 (t = 3240 B)
+Massif: took snapshot 82 (t = 3321 B)
+Massif: took snapshot 83 (t = 3403 B)
+Massif: took snapshot 84 (t = 3486 B)
+Massif: took snapshot 85 (t = 3570 B)
+Massif: took snapshot 86 (t = 3655 B)
+Massif: took snapshot 87 (t = 3741 B)
+Massif: took snapshot 88 (t = 3828 B)
+Massif: took snapshot 89 (t = 3916 B) (detailed)
+Massif: took snapshot 90 (t = 4005 B)
+Massif: took snapshot 91 (t = 4095 B)
+Massif: took snapshot 92 (t = 4186 B)
+Massif: took snapshot 93 (t = 4278 B)
+Massif: took snapshot 94 (t = 4371 B)
+Massif: took snapshot 95 (t = 4465 B)
+Massif: took snapshot 96 (t = 4560 B)
+Massif: took snapshot 97 (t = 4656 B)
+Massif: took snapshot 98 (t = 4753 B)
+Massif: took snapshot 99 (t = 4851 B) (detailed)
+Massif: Culling...
+Massif: cull 0 (t-span = 1) snapshot 1 (t = 0 B)
+Massif: cull 1 (t-span = 3) snapshot 2 (t = 1 B)
+Massif: cull 2 (t-span = 6) snapshot 3 (t = 3 B)
+Massif: cull 3 (t-span = 9) snapshot 5 (t = 10 B)
+Massif: cull 4 (t-span = 13) snapshot 7 (t = 21 B)
+Massif: cull 5 (t-span = 15) snapshot 4 (t = 6 B)
+Massif: cull 6 (t-span = 17) snapshot 9 (t = 36 B) (detailed)
+Massif: cull 7 (t-span = 21) snapshot 11 (t = 55 B)
+Massif: cull 8 (t-span = 25) snapshot 13 (t = 78 B)
+Massif: cull 9 (t-span = 28) snapshot 6 (t = 15 B)
+Massif: cull 10 (t-span = 29) snapshot 15 (t = 105 B)
+Massif: cull 11 (t-span = 33) snapshot 17 (t = 136 B)
+Massif: cull 12 (t-span = 37) snapshot 19 (t = 171 B) (detailed)
+Massif: cull 13 (t-span = 38) snapshot 10 (t = 45 B)
+Massif: cull 14 (t-span = 41) snapshot 21 (t = 210 B)
+Massif: cull 15 (t-span = 45) snapshot 23 (t = 253 B)
+Massif: cull 16 (t-span = 49) snapshot 25 (t = 300 B)
+Massif: cull 17 (t-span = 53) snapshot 27 (t = 351 B)
+Massif: cull 18 (t-span = 54) snapshot 14 (t = 91 B)
+Massif: cull 19 (t-span = 57) snapshot 29 (t = 406 B) (detailed)
+Massif: cull 20 (t-span = 61) snapshot 31 (t = 465 B)
+Massif: cull 21 (t-span = 65) snapshot 33 (t = 528 B)
+Massif: cull 22 (t-span = 66) snapshot 8 (t = 28 B)
+Massif: cull 23 (t-span = 69) snapshot 35 (t = 595 B)
+Massif: cull 24 (t-span = 70) snapshot 18 (t = 153 B)
+Massif: cull 25 (t-span = 73) snapshot 37 (t = 666 B)
+Massif: cull 26 (t-span = 77) snapshot 39 (t = 741 B) (detailed)
+Massif: cull 27 (t-span = 81) snapshot 41 (t = 820 B)
+Massif: cull 28 (t-span = 85) snapshot 43 (t = 903 B)
+Massif: cull 29 (t-span = 86) snapshot 22 (t = 231 B)
+Massif: cull 30 (t-span = 89) snapshot 45 (t = 990 B)
+Massif: cull 31 (t-span = 93) snapshot 47 (t = 1081 B)
+Massif: cull 32 (t-span = 97) snapshot 49 (t = 1176 B) (detailed)
+Massif: cull 33 (t-span = 101) snapshot 51 (t = 1275 B)
+Massif: cull 34 (t-span = 102) snapshot 26 (t = 325 B)
+Massif: cull 35 (t-span = 105) snapshot 53 (t = 1378 B)
+Massif: cull 36 (t-span = 109) snapshot 55 (t = 1485 B)
+Massif: cull 37 (t-span = 113) snapshot 57 (t = 1596 B)
+Massif: cull 38 (t-span = 117) snapshot 59 (t = 1711 B) (detailed)
+Massif: cull 39 (t-span = 118) snapshot 30 (t = 435 B)
+Massif: cull 40 (t-span = 120) snapshot 12 (t = 66 B)
+Massif: cull 41 (t-span = 121) snapshot 61 (t = 1830 B)
+Massif: cull 42 (t-span = 125) snapshot 63 (t = 1953 B)
+Massif: cull 43 (t-span = 129) snapshot 65 (t = 2080 B)
+Massif: cull 44 (t-span = 133) snapshot 67 (t = 2211 B)
+Massif: cull 45 (t-span = 134) snapshot 34 (t = 561 B)
+Massif: cull 46 (t-span = 137) snapshot 69 (t = 2346 B) (detailed)
+Massif: cull 47 (t-span = 141) snapshot 71 (t = 2485 B)
+Massif: cull 48 (t-span = 145) snapshot 73 (t = 2628 B)
+Massif: cull 49 (t-span = 149) snapshot 75 (t = 2775 B)
+Massif: Finished culling ( 50 of 100 deleted)
+Massif: new snapshot 0 (t = 0 B)
+Massif: new snapshot 1 (t = 120 B)
+Massif: new snapshot 2 (t = 190 B)
+Massif: new snapshot 3 (t = 276 B)
+Massif: new snapshot 4 (t = 378 B)
+Massif: new snapshot 5 (t = 496 B)
+Massif: new snapshot 6 (t = 630 B)
+Massif: new snapshot 7 (t = 703 B)
+Massif: new snapshot 8 (t = 780 B)
+Massif: new snapshot 9 (t = 861 B)
+Massif: new snapshot 10 (t = 946 B)
+Massif: new snapshot 11 (t = 1035 B)
+Massif: new snapshot 12 (t = 1128 B)
+Massif: new snapshot 13 (t = 1225 B)
+Massif: new snapshot 14 (t = 1326 B)
+Massif: new snapshot 15 (t = 1431 B)
+Massif: new snapshot 16 (t = 1540 B)
+Massif: new snapshot 17 (t = 1653 B)
+Massif: new snapshot 18 (t = 1770 B)
+Massif: new snapshot 19 (t = 1891 B)
+Massif: new snapshot 20 (t = 2016 B)
+Massif: new snapshot 21 (t = 2145 B)
+Massif: new snapshot 22 (t = 2278 B)
+Massif: new snapshot 23 (t = 2415 B)
+Massif: new snapshot 24 (t = 2556 B)
+Massif: new snapshot 25 (t = 2701 B)
+Massif: new snapshot 26 (t = 2850 B)
+Massif: new snapshot 27 (t = 2926 B)
+Massif: new snapshot 28 (t = 3003 B)
+Massif: new snapshot 29 (t = 3081 B) (detailed)
+Massif: new snapshot 30 (t = 3160 B)
+Massif: new snapshot 31 (t = 3240 B)
+Massif: new snapshot 32 (t = 3321 B)
+Massif: new snapshot 33 (t = 3403 B)
+Massif: new snapshot 34 (t = 3486 B)
+Massif: new snapshot 35 (t = 3570 B)
+Massif: new snapshot 36 (t = 3655 B)
+Massif: new snapshot 37 (t = 3741 B)
+Massif: new snapshot 38 (t = 3828 B)
+Massif: new snapshot 39 (t = 3916 B) (detailed)
+Massif: new snapshot 40 (t = 4005 B)
+Massif: new snapshot 41 (t = 4095 B)
+Massif: new snapshot 42 (t = 4186 B)
+Massif: new snapshot 43 (t = 4278 B)
+Massif: new snapshot 44 (t = 4371 B)
+Massif: new snapshot 45 (t = 4465 B)
+Massif: new snapshot 46 (t = 4560 B)
+Massif: new snapshot 47 (t = 4656 B)
+Massif: new snapshot 48 (t = 4753 B)
+Massif: new snapshot 49 (t = 4851 B) (detailed)
+Massif: New time interval = 70 (between snapshots 1 and 2)
+Massif: took snapshot 50 (t = 4950 B)
+Massif: took snapshot 51 (t = 5050 B)
+Massif: took snapshot 52 (t = 5151 B)
+Massif: took snapshot 53 (t = 5253 B)
+Massif: took snapshot 54 (t = 5356 B)
+Massif: took snapshot 55 (t = 5460 B)
+Massif: took snapshot 56 (t = 5565 B)
+Massif: took snapshot 57 (t = 5671 B)
+Massif: took snapshot 58 (t = 5778 B)
+Massif: took snapshot 59 (t = 5886 B) (detailed)
+Massif: took snapshot 60 (t = 5995 B)
+Massif: took snapshot 61 (t = 6105 B)
+Massif: took snapshot 62 (t = 6216 B)
+Massif: took snapshot 63 (t = 6328 B)
+Massif: took snapshot 64 (t = 6441 B)
+Massif: took snapshot 65 (t = 6555 B)
+Massif: took snapshot 66 (t = 6670 B)
+Massif: took snapshot 67 (t = 6786 B)
+Massif: took snapshot 68 (t = 6903 B)
+Massif: took snapshot 69 (t = 7021 B) (detailed)
+Massif: took snapshot 70 (t = 7140 B)
+Massif: took snapshot 71 (t = 7260 B)
+Massif: took snapshot 72 (t = 7381 B)
+Massif: took snapshot 73 (t = 7503 B)
+Massif: took snapshot 74 (t = 7626 B)
+Massif: took snapshot 75 (t = 7750 B)
+Massif: took snapshot 76 (t = 7875 B)
+Massif: took snapshot 77 (t = 8001 B)
+Massif: took snapshot 78 (t = 8128 B)
+Massif: took snapshot 79 (t = 8256 B) (detailed)
+Massif: took snapshot 80 (t = 8385 B)
+Massif: took snapshot 81 (t = 8515 B)
+Massif: took snapshot 82 (t = 8646 B)
+Massif: took snapshot 83 (t = 8778 B)
+Massif: took snapshot 84 (t = 8911 B)
+Massif: took snapshot 85 (t = 9045 B)
+Massif: took snapshot 86 (t = 9180 B)
+Massif: took snapshot 87 (t = 9316 B)
+Massif: took snapshot 88 (t = 9453 B)
+Massif: took snapshot 89 (t = 9591 B) (detailed)
+Massif: took snapshot 90 (t = 9730 B)
+Massif: took snapshot 91 (t = 9870 B)
+Massif: took snapshot 92 (t = 10011 B)
+Massif: took snapshot 93 (t = 10153 B)
+Massif: took snapshot 94 (t = 10296 B)
+Massif: took snapshot 95 (t = 10440 B)
+Massif: took snapshot 96 (t = 10585 B)
+Massif: took snapshot 97 (t = 10731 B)
+Massif: took snapshot 98 (t = 10878 B)
+Massif: took snapshot 99 (t = 11026 B) (detailed)
+Massif: Culling...
+Massif: cull 0 (t-span = 150) snapshot 7 (t = 703 B)
+Massif: cull 1 (t-span = 153) snapshot 27 (t = 2926 B)
+Massif: cull 2 (t-span = 156) snapshot 2 (t = 190 B)
+Massif: cull 3 (t-span = 157) snapshot 29 (t = 3081 B) (detailed)
+Massif: cull 4 (t-span = 161) snapshot 31 (t = 3240 B)
+Massif: cull 5 (t-span = 165) snapshot 33 (t = 3403 B)
+Massif: cull 6 (t-span = 166) snapshot 9 (t = 861 B)
+Massif: cull 7 (t-span = 169) snapshot 35 (t = 3570 B)
+Massif: cull 8 (t-span = 173) snapshot 37 (t = 3741 B)
+Massif: cull 9 (t-span = 177) snapshot 39 (t = 3916 B) (detailed)
+Massif: cull 10 (t-span = 181) snapshot 41 (t = 4095 B)
+Massif: cull 11 (t-span = 182) snapshot 11 (t = 1035 B)
+Massif: cull 12 (t-span = 185) snapshot 43 (t = 4278 B)
+Massif: cull 13 (t-span = 189) snapshot 45 (t = 4465 B)
+Massif: cull 14 (t-span = 193) snapshot 47 (t = 4656 B)
+Massif: cull 15 (t-span = 197) snapshot 49 (t = 4851 B) (detailed)
+Massif: cull 16 (t-span = 198) snapshot 13 (t = 1225 B)
+Massif: cull 17 (t-span = 201) snapshot 51 (t = 5050 B)
+Massif: cull 18 (t-span = 205) snapshot 53 (t = 5253 B)
+Massif: cull 19 (t-span = 209) snapshot 55 (t = 5460 B)
+Massif: cull 20 (t-span = 213) snapshot 57 (t = 5671 B)
+Massif: cull 21 (t-span = 214) snapshot 15 (t = 1431 B)
+Massif: cull 22 (t-span = 217) snapshot 59 (t = 5886 B) (detailed)
+Massif: cull 23 (t-span = 220) snapshot 4 (t = 378 B)
+Massif: cull 24 (t-span = 221) snapshot 61 (t = 6105 B)
+Massif: cull 25 (t-span = 225) snapshot 63 (t = 6328 B)
+Massif: cull 26 (t-span = 229) snapshot 65 (t = 6555 B)
+Massif: cull 27 (t-span = 230) snapshot 17 (t = 1653 B)
+Massif: cull 28 (t-span = 233) snapshot 67 (t = 6786 B)
+Massif: cull 29 (t-span = 237) snapshot 69 (t = 7021 B) (detailed)
+Massif: cull 30 (t-span = 241) snapshot 71 (t = 7260 B)
+Massif: cull 31 (t-span = 245) snapshot 73 (t = 7503 B)
+Massif: cull 32 (t-span = 246) snapshot 19 (t = 1891 B)
+Massif: cull 33 (t-span = 249) snapshot 75 (t = 7750 B)
+Massif: cull 34 (t-span = 253) snapshot 77 (t = 8001 B)
+Massif: cull 35 (t-span = 257) snapshot 79 (t = 8256 B) (detailed)
+Massif: cull 36 (t-span = 261) snapshot 81 (t = 8515 B)
+Massif: cull 37 (t-span = 262) snapshot 21 (t = 2145 B)
+Massif: cull 38 (t-span = 265) snapshot 83 (t = 8778 B)
+Massif: cull 39 (t-span = 269) snapshot 85 (t = 9045 B)
+Massif: cull 40 (t-span = 273) snapshot 87 (t = 9316 B)
+Massif: cull 41 (t-span = 276) snapshot 1 (t = 120 B)
+Massif: cull 42 (t-span = 277) snapshot 89 (t = 9591 B) (detailed)
+Massif: cull 43 (t-span = 278) snapshot 23 (t = 2415 B)
+Massif: cull 44 (t-span = 281) snapshot 91 (t = 9870 B)
+Massif: cull 45 (t-span = 284) snapshot 6 (t = 630 B)
+Massif: cull 46 (t-span = 285) snapshot 93 (t = 10153 B)
+Massif: cull 47 (t-span = 289) snapshot 95 (t = 10440 B)
+Massif: cull 48 (t-span = 293) snapshot 97 (t = 10731 B)
+Massif: cull 49 (t-span = 294) snapshot 25 (t = 2701 B)
+Massif: Finished culling ( 50 of 100 deleted)
+Massif: new snapshot 0 (t = 0 B)
+Massif: new snapshot 1 (t = 276 B)
+Massif: new snapshot 2 (t = 496 B)
+Massif: new snapshot 3 (t = 780 B)
+Massif: new snapshot 4 (t = 946 B)
+Massif: new snapshot 5 (t = 1128 B)
+Massif: new snapshot 6 (t = 1326 B)
+Massif: new snapshot 7 (t = 1540 B)
+Massif: new snapshot 8 (t = 1770 B)
+Massif: new snapshot 9 (t = 2016 B)
+Massif: new snapshot 10 (t = 2278 B)
+Massif: new snapshot 11 (t = 2556 B)
+Massif: new snapshot 12 (t = 2850 B)
+Massif: new snapshot 13 (t = 3003 B)
+Massif: new snapshot 14 (t = 3160 B)
+Massif: new snapshot 15 (t = 3321 B)
+Massif: new snapshot 16 (t = 3486 B)
+Massif: new snapshot 17 (t = 3655 B)
+Massif: new snapshot 18 (t = 3828 B)
+Massif: new snapshot 19 (t = 4005 B)
+Massif: new snapshot 20 (t = 4186 B)
+Massif: new snapshot 21 (t = 4371 B)
+Massif: new snapshot 22 (t = 4560 B)
+Massif: new snapshot 23 (t = 4753 B)
+Massif: new snapshot 24 (t = 4950 B)
+Massif: new snapshot 25 (t = 5151 B)
+Massif: new snapshot 26 (t = 5356 B)
+Massif: new snapshot 27 (t = 5565 B)
+Massif: new snapshot 28 (t = 5778 B)
+Massif: new snapshot 29 (t = 5995 B)
+Massif: new snapshot 30 (t = 6216 B)
+Massif: new snapshot 31 (t = 6441 B)
+Massif: new snapshot 32 (t = 6670 B)
+Massif: new snapshot 33 (t = 6903 B)
+Massif: new snapshot 34 (t = 7140 B)
+Massif: new snapshot 35 (t = 7381 B)
+Massif: new snapshot 36 (t = 7626 B)
+Massif: new snapshot 37 (t = 7875 B)
+Massif: new snapshot 38 (t = 8128 B)
+Massif: new snapshot 39 (t = 8385 B)
+Massif: new snapshot 40 (t = 8646 B)
+Massif: new snapshot 41 (t = 8911 B)
+Massif: new snapshot 42 (t = 9180 B)
+Massif: new snapshot 43 (t = 9453 B)
+Massif: new snapshot 44 (t = 9730 B)
+Massif: new snapshot 45 (t = 10011 B)
+Massif: new snapshot 46 (t = 10296 B)
+Massif: new snapshot 47 (t = 10585 B)
+Massif: new snapshot 48 (t = 10878 B)
+Massif: new snapshot 49 (t = 11026 B) (detailed)
+Massif: New time interval = 148 (between snapshots 48 and 49)
+Massif: took snapshot 50 (t = 11175 B)
+Massif: took snapshot 51 (t = 11325 B)
+Massif: took snapshot 52 (t = 11476 B)
+Massif: took snapshot 53 (t = 11628 B)
+Massif: took snapshot 54 (t = 11781 B)
+Massif: took snapshot 55 (t = 11935 B)
+Massif: took snapshot 56 (t = 12090 B)
+Massif: took snapshot 57 (t = 12246 B)
+Massif: took snapshot 58 (t = 12403 B)
+Massif: took snapshot 59 (t = 12561 B) (detailed)
+Massif: took snapshot 60 (t = 12720 B)
+Massif: took snapshot 61 (t = 12880 B)
+Massif: took snapshot 62 (t = 13041 B)
+Massif: took snapshot 63 (t = 13203 B)
+Massif: took snapshot 64 (t = 13366 B)
+Massif: took snapshot 65 (t = 13530 B)
+Massif: took snapshot 66 (t = 13695 B)
+Massif: took snapshot 67 (t = 13861 B)
+Massif: took snapshot 68 (t = 14028 B)
+Massif: took snapshot 69 (t = 14196 B) (detailed)
+Massif: took snapshot 70 (t = 14365 B)
+Massif: took snapshot 71 (t = 14535 B)
+Massif: took snapshot 72 (t = 14706 B)
+Massif: took snapshot 73 (t = 14878 B)
+Massif: took snapshot 74 (t = 15051 B)
+Massif: took snapshot 75 (t = 15225 B)
+Massif: took snapshot 76 (t = 15400 B)
+Massif: took snapshot 77 (t = 15576 B)
+Massif: took snapshot 78 (t = 15753 B)
+Massif: took snapshot 79 (t = 15931 B) (detailed)
+Massif: took snapshot 80 (t = 16110 B)
+Massif: took snapshot 81 (t = 16290 B)
+Massif: took snapshot 82 (t = 16471 B)
+Massif: took snapshot 83 (t = 16653 B)
+Massif: took snapshot 84 (t = 16836 B)
+Massif: took snapshot 85 (t = 17020 B)
+Massif: took snapshot 86 (t = 17205 B)
+Massif: took snapshot 87 (t = 17391 B)
+Massif: took snapshot 88 (t = 17578 B)
+Massif: took snapshot 89 (t = 17766 B) (detailed)
+Massif: took snapshot 90 (t = 17955 B)
+Massif: took snapshot 91 (t = 18145 B)
+Massif: took snapshot 92 (t = 18336 B)
+Massif: took snapshot 93 (t = 18528 B)
+Massif: took snapshot 94 (t = 18721 B)
+Massif: took snapshot 95 (t = 18915 B)
+Massif: took snapshot 96 (t = 19110 B)
+Massif: took snapshot 97 (t = 19306 B)
+Massif: took snapshot 98 (t = 19503 B)
+Massif: took snapshot 99 (t = 19701 B) (detailed)
+Massif: Culling...
+Massif: cull 0 (t-span = 297) snapshot 49 (t = 11026 B) (detailed)
+Massif: cull 1 (t-span = 301) snapshot 51 (t = 11325 B)
+Massif: cull 2 (t-span = 305) snapshot 53 (t = 11628 B)
+Massif: cull 3 (t-span = 309) snapshot 55 (t = 11935 B)
+Massif: cull 4 (t-span = 310) snapshot 13 (t = 3003 B)
+Massif: cull 5 (t-span = 313) snapshot 57 (t = 12246 B)
+Massif: cull 6 (t-span = 317) snapshot 59 (t = 12561 B) (detailed)
+Massif: cull 7 (t-span = 321) snapshot 61 (t = 12880 B)
+Massif: cull 8 (t-span = 325) snapshot 63 (t = 13203 B)
+Massif: cull 9 (t-span = 326) snapshot 15 (t = 3321 B)
+Massif: cull 10 (t-span = 329) snapshot 65 (t = 13530 B)
+Massif: cull 11 (t-span = 333) snapshot 67 (t = 13861 B)
+Massif: cull 12 (t-span = 337) snapshot 69 (t = 14196 B) (detailed)
+Massif: cull 13 (t-span = 341) snapshot 71 (t = 14535 B)
+Massif: cull 14 (t-span = 342) snapshot 17 (t = 3655 B)
+Massif: cull 15 (t-span = 345) snapshot 73 (t = 14878 B)
+Massif: cull 16 (t-span = 348) snapshot 4 (t = 946 B)
+Massif: cull 17 (t-span = 349) snapshot 75 (t = 15225 B)
+Massif: cull 18 (t-span = 353) snapshot 77 (t = 15576 B)
+Massif: cull 19 (t-span = 357) snapshot 79 (t = 15931 B) (detailed)
+Massif: cull 20 (t-span = 358) snapshot 19 (t = 4005 B)
+Massif: cull 21 (t-span = 361) snapshot 81 (t = 16290 B)
+Massif: cull 22 (t-span = 365) snapshot 83 (t = 16653 B)
+Massif: cull 23 (t-span = 369) snapshot 85 (t = 17020 B)
+Massif: cull 24 (t-span = 373) snapshot 87 (t = 17391 B)
+Massif: cull 25 (t-span = 374) snapshot 21 (t = 4371 B)
+Massif: cull 26 (t-span = 377) snapshot 89 (t = 17766 B) (detailed)
+Massif: cull 27 (t-span = 381) snapshot 91 (t = 18145 B)
+Massif: cull 28 (t-span = 385) snapshot 93 (t = 18528 B)
+Massif: cull 29 (t-span = 389) snapshot 95 (t = 18915 B)
+Massif: cull 30 (t-span = 390) snapshot 23 (t = 4753 B)
+Massif: cull 31 (t-span = 393) snapshot 97 (t = 19306 B)
+Massif: cull 32 (t-span = 406) snapshot 25 (t = 5151 B)
+Massif: cull 33 (t-span = 412) snapshot 6 (t = 1326 B)
+Massif: cull 34 (t-span = 422) snapshot 27 (t = 5565 B)
+Massif: cull 35 (t-span = 438) snapshot 29 (t = 5995 B)
+Massif: cull 36 (t-span = 454) snapshot 31 (t = 6441 B)
+Massif: cull 37 (t-span = 470) snapshot 33 (t = 6903 B)
+Massif: cull 38 (t-span = 476) snapshot 8 (t = 1770 B)
+Massif: cull 39 (t-span = 486) snapshot 35 (t = 7381 B)
+Massif: cull 40 (t-span = 496) snapshot 1 (t = 276 B)
+Massif: cull 41 (t-span = 502) snapshot 37 (t = 7875 B)
+Massif: cull 42 (t-span = 518) snapshot 39 (t = 8385 B)
+Massif: cull 43 (t-span = 534) snapshot 41 (t = 8911 B)
+Massif: cull 44 (t-span = 540) snapshot 10 (t = 2278 B)
+Massif: cull 45 (t-span = 550) snapshot 43 (t = 9453 B)
+Massif: cull 46 (t-span = 566) snapshot 45 (t = 10011 B)
+Massif: cull 47 (t-span = 582) snapshot 47 (t = 10585 B)
+Massif: cull 48 (t-span = 591) snapshot 98 (t = 19503 B)
+Massif: cull 49 (t-span = 598) snapshot 50 (t = 11175 B)
+Massif: Finished culling ( 50 of 100 deleted)
+Massif: new snapshot 0 (t = 0 B)
+Massif: new snapshot 1 (t = 496 B)
+Massif: new snapshot 2 (t = 780 B)
+Massif: new snapshot 3 (t = 1128 B)
+Massif: new snapshot 4 (t = 1540 B)
+Massif: new snapshot 5 (t = 2016 B)
+Massif: new snapshot 6 (t = 2556 B)
+Massif: new snapshot 7 (t = 2850 B)
+Massif: new snapshot 8 (t = 3160 B)
+Massif: new snapshot 9 (t = 3486 B)
+Massif: new snapshot 10 (t = 3828 B)
+Massif: new snapshot 11 (t = 4186 B)
+Massif: new snapshot 12 (t = 4560 B)
+Massif: new snapshot 13 (t = 4950 B)
+Massif: new snapshot 14 (t = 5356 B)
+Massif: new snapshot 15 (t = 5778 B)
+Massif: new snapshot 16 (t = 6216 B)
+Massif: new snapshot 17 (t = 6670 B)
+Massif: new snapshot 18 (t = 7140 B)
+Massif: new snapshot 19 (t = 7626 B)
+Massif: new snapshot 20 (t = 8128 B)
+Massif: new snapshot 21 (t = 8646 B)
+Massif: new snapshot 22 (t = 9180 B)
+Massif: new snapshot 23 (t = 9730 B)
+Massif: new snapshot 24 (t = 10296 B)
+Massif: new snapshot 25 (t = 10878 B)
+Massif: new snapshot 26 (t = 11476 B)
+Massif: new snapshot 27 (t = 11781 B)
+Massif: new snapshot 28 (t = 12090 B)
+Massif: new snapshot 29 (t = 12403 B)
+Massif: new snapshot 30 (t = 12720 B)
+Massif: new snapshot 31 (t = 13041 B)
+Massif: new snapshot 32 (t = 13366 B)
+Massif: new snapshot 33 (t = 13695 B)
+Massif: new snapshot 34 (t = 14028 B)
+Massif: new snapshot 35 (t = 14365 B)
+Massif: new snapshot 36 (t = 14706 B)
+Massif: new snapshot 37 (t = 15051 B)
+Massif: new snapshot 38 (t = 15400 B)
+Massif: new snapshot 39 (t = 15753 B)
+Massif: new snapshot 40 (t = 16110 B)
+Massif: new snapshot 41 (t = 16471 B)
+Massif: new snapshot 42 (t = 16836 B)
+Massif: new snapshot 43 (t = 17205 B)
+Massif: new snapshot 44 (t = 17578 B)
+Massif: new snapshot 45 (t = 17955 B)
+Massif: new snapshot 46 (t = 18336 B)
+Massif: new snapshot 47 (t = 18721 B)
+Massif: new snapshot 48 (t = 19110 B)
+Massif: new snapshot 49 (t = 19701 B) (detailed)
+Massif: New time interval = 284 (between snapshots 1 and 2)
+Massif: allocs: 200
+Massif: zeroallocs: 1 (0%)
+Massif: frees: 0
+Massif: XPts: 2
+Massif: top-XPts: 1 (50%)
+Massif: dup'd XPts: 40
+Massif: dup'd/freed XPts: 38
+Massif: XPt-expansions: 1
+Massif: skipped snapshots: 1
+Massif: real snapshots: 200
+Massif: cullings: 3
+Massif: XCon_redos: 0
Added: branches/MASSIF2/massif/tests/culling2.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/culling2.vgtest (rev 0)
+++ branches/MASSIF2/massif/tests/culling2.vgtest 2007-09-21 00:26:56 UTC (rev 6881)
@@ -0,0 +1,4 @@
+prog: culling2
+vgopts: -v --stacks=no --time-unit=B
+stderr_filter: filter_verbose
+cleanup: rm massif.out
Added: branches/MASSIF2/massif/tests/filter_verbose
===================================================================
--- branches/MASSIF2/massif/tests/filter_verbose (rev 0)
+++ branches/MASSIF2/massif/tests/filter_verbose 2007-09-21 00:26:56 UTC (rev 6881)
@@ -0,0 +1,12 @@
+#! /bin/sh
+
+# This filters out all the lines that don't have "Massif:" in them. For
+# testing the -v option.
+
+dir=`dirname $0`
+
+$dir/filter_stderr |
+
+# Only print lines that contain "Massif:". The -n means don't print any
+# lines by default, and the 'p' means do print those that match the pattern.
+sed -n "/Massif:/p"
Property changes on: branches/MASSIF2/massif/tests/filter_verbose
___________________________________________________________________
Name: svn:executable
+ *
|
|
From: <js...@ac...> - 2007-09-21 00:17:21
|
Nightly build on g5 ( SuSE 10.1, ppc970 ) started at 2007-09-21 02:00:01 CEST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 228 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 228 tests, 6 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/res_search (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Fri Sep 21 02:08:53 2007 --- new.short Fri Sep 21 02:17:21 2007 *************** *** 8,10 **** ! == 228 tests, 6 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) --- 8,10 ---- ! == 228 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) *************** *** 17,19 **** none/tests/mremap2 (stdout) - none/tests/res_search (stdout) --- 17,18 ---- |