Update massif implementation to xtree

* update massif code so as to replace the massif specific XTree implementation
  by calls to pub_tool_xtree.h
  This improves the massif performance in CPU (a few percents to a factor
   2 gained, depending on the implementation). The memory use is also
   decreased.
  With this patch, massif behaves similarly to the previous implementation.
  The differences are:
     * some massif stats output have changed, as the new implementation
       differs completely from the previous one.
     * when 2 'branches' of the call tree have consumed the same amount
       of  heap, the order in which the branches are output in the massif
       output file can differ between the old and new implementation.
  No other functional difference is expected, waiting for new bugs to
  be discovered.
  
* Also add support for xtree memory profiling and xtmemory gdbsrv monitor
  command in massif :
  * massif will produce xtree memory profiling according to the options
    --xtree-memory.
  * addition of the xtmemory gdbserver monitor command.




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16129
This commit is contained in:
Philippe Waroquiers 2016-11-11 14:44:42 +00:00
parent b10e381272
commit e2edc5eb81
10 changed files with 288 additions and 810 deletions

View File

@ -23,5 +23,7 @@ massif monitor commands:
all_snapshots [<filename>]
saves all snapshot(s) taken so far in <filename>
default <filename> is massif.vgdb.out
xtmemory [<filename>]
dump xtree memory profile in <filename> (default xtmemory.kcg)
monitor command request to kill this process
Remote connection closed

File diff suppressed because it is too large Load Diff

View File

@ -55,6 +55,10 @@ Number of snapshots: 10
| |
| ->11.11% (400B) 0x........: main (alloc-fns.c:27)
|
->11.11% (400B) 0x........: b2 (alloc-fns.c:10)
| ->11.11% (400B) 0x........: b1 (alloc-fns.c:11)
| ->11.11% (400B) 0x........: main (alloc-fns.c:28)
|
->11.11% (400B) 0x........: c1 (alloc-fns.c:16)
| ->11.11% (400B) 0x........: main (alloc-fns.c:29)
|
@ -65,8 +69,4 @@ Number of snapshots: 10
->11.11% (400B) 0x........: main (alloc-fns.c:32)
|
->11.11% (400B) 0x........: main (alloc-fns.c:33)
|
->11.11% (400B) 0x........: b2 (alloc-fns.c:10)
->11.11% (400B) 0x........: b1 (alloc-fns.c:11)
->11.11% (400B) 0x........: main (alloc-fns.c:28)

View File

@ -433,16 +433,8 @@ Massif: ignored heap allocs: ...
Massif: ignored heap frees: ...
Massif: ignored heap reallocs: ...
Massif: stack allocs: 0
Massif: stack frees: 0
Massif: XPts: ...
Massif: top-XPts: ...
Massif: XPt init expansions: ...
Massif: XPt later expansions: ...
Massif: SXPt allocs: ...
Massif: SXPt frees: ...
Massif: skipped snapshots: 51
Massif: real snapshots: 150
Massif: detailed snapshots: 15
Massif: peak snapshots: 0
Massif: cullings: 2
Massif: XCon redos: ...

View File

@ -536,16 +536,8 @@ Massif: ignored heap allocs: ...
Massif: ignored heap frees: ...
Massif: ignored heap reallocs: ...
Massif: stack allocs: 0
Massif: stack frees: 0
Massif: XPts: ...
Massif: top-XPts: ...
Massif: XPt init expansions: ...
Massif: XPt later expansions: ...
Massif: SXPt allocs: ...
Massif: SXPt frees: ...
Massif: skipped snapshots: 1
Massif: real snapshots: 200
Massif: detailed snapshots: 20
Massif: peak snapshots: 0
Massif: cullings: 3
Massif: XCon redos: ...

View File

@ -45,16 +45,8 @@ Massif: ignored heap allocs: ...
Massif: ignored heap frees: ...
Massif: ignored heap reallocs: ...
Massif: stack allocs: 0
Massif: stack frees: 0
Massif: XPts: ...
Massif: top-XPts: ...
Massif: XPt init expansions: ...
Massif: XPt later expansions: ...
Massif: SXPt allocs: ...
Massif: SXPt frees: ...
Massif: skipped snapshots: 0
Massif: real snapshots: 11
Massif: detailed snapshots: 1
Massif: peak snapshots: 0
Massif: cullings: 0
Massif: XCon redos: ...

View File

@ -48,16 +48,8 @@ Massif: ignored heap allocs: ...
Massif: ignored heap frees: ...
Massif: ignored heap reallocs: ...
Massif: stack allocs: 0
Massif: stack frees: 0
Massif: XPts: ...
Massif: top-XPts: ...
Massif: XPt init expansions: ...
Massif: XPt later expansions: ...
Massif: SXPt allocs: ...
Massif: SXPt frees: ...
Massif: skipped snapshots: 0
Massif: real snapshots: 11
Massif: detailed snapshots: 1
Massif: peak snapshots: 0
Massif: cullings: 0
Massif: XCon redos: ...

View File

@ -40,11 +40,11 @@ Number of snapshots: 4
2 4,000 4,000 4,000 0 0
100.00% (4,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
->100.00% (4,000B) 0x........: abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij (long-names.c:61)
->50.00% (2,000B) 0x........: main (long-names.c:68)
|
->50.00% (2,000B) 0x........: abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij (long-names.c:62)
->50.00% (2,000B) 0x........: main (long-names.c:68)
| ->50.00% (2,000B) 0x........: main (long-names.c:68)
|
->50.00% (2,000B) 0x........: main (long-names.c:68)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) extra-heap(B) stacks(B)
--------------------------------------------------------------------------------

View File

@ -103,16 +103,8 @@ Massif: ignored heap allocs: ...
Massif: ignored heap frees: ...
Massif: ignored heap reallocs: ...
Massif: stack allocs: 0
Massif: stack frees: 0
Massif: XPts: ...
Massif: top-XPts: ...
Massif: XPt init expansions: ...
Massif: XPt later expansions: ...
Massif: SXPt allocs: ...
Massif: SXPt frees: ...
Massif: skipped snapshots: 0
Massif: real snapshots: 76
Massif: detailed snapshots: 15
Massif: peak snapshots: 15
Massif: cullings: 0
Massif: XCon redos: ...

View File

@ -35,16 +35,8 @@ Massif: ignored heap allocs: ...
Massif: ignored heap frees: ...
Massif: ignored heap reallocs: ...
Massif: stack allocs: 0
Massif: stack frees: 0
Massif: XPts: ...
Massif: top-XPts: ...
Massif: XPt init expansions: ...
Massif: XPt later expansions: ...
Massif: SXPt allocs: ...
Massif: SXPt frees: ...
Massif: skipped snapshots: 0
Massif: real snapshots: 8
Massif: detailed snapshots: 2
Massif: peak snapshots: 2
Massif: cullings: 0
Massif: XCon redos: ...