[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-bugs-dist
Subject: [valgrind] [Bug 371916] New: execution tree xtree concept
From: Philippe Waroquiers <bugzilla_noreply () kde ! org>
Date: 2016-10-31 21:48:38
Message-ID: bug-371916-17878 () http ! bugs ! kde ! org/
[Download RAW message or body]
https://bugs.kde.org/show_bug.cgi?id=371916
Bug ID: 371916
Summary: execution tree xtree concept
Product: valgrind
Version: 3.12 SVN
Platform: Other
OS: Linux
Status: UNCONFIRMED
Severity: wishlist
Priority: NOR
Component: general
Assignee: jseward@acm.org
Reporter: philippe.waroquiers@skynet.be
Target Milestone: ---
Summary:
###########################
This patch implements a new "xtree" module in pub_tool_xtree.h and m_xtree.c.
This module generalises the data structure used by massif to
visualise the heap usage.
An xtree can be used to visualise any kind of resource or event associated
to stack traces.
For example, we could use an xtree to show some counts/events
related to system calls, e.g. the nr of bytes read/written by read/write
syscalls, ...
In the current patch, it is however only used for representing heap usage.
Tools that are replacing malloc/free/... can now very easily also
produce a heap memory representation.
massif internals has been changed to be based on this new xtree module.
memcheck, helgrind and massign are now supporting a new option
--xtree-memory=none|allocs|full
to produce a heap usage report at the end of execution.
These tools also now provides the 'xtmemory [filename]' gdbserver
monitor command to produce an xtree heap usage report on demand.
An xtree can be saved in 2 formats:
* massif format
* callgrind format
Performance:
##############################
Depending on the application, the massif tool is typically a few percents
to 2 times faster than the 3.12 massif (e.g. perf/heap is about twice faster
now).
Massif also typically now uses less memory (e.g. perf/many-xpts uses now
125Mb of arena core memory instead of 205Mb).
Some more detailed changes
##########################
pub_tool_xtree.h, coregrind/m_xtree.h, coregrind/pub_core_xtree.h:
* implementation of the generalised xtree.
(this is the bulk of the change)
docs/xml/manual-core.xml, docs/xml/manual-core-adv.xml:
* document the new options and Execution Tree concept.
coregrind/m_debuginfo/debuginfo.c:
* Addition of a symbol name cache, maintained/cleared similarly to
the current cfsi_m_cache.
coregrind/m_deduppoolalloc.c, pub_tool_deduppoolalloc.h:
* function VG_(allocStrDedupPA) specialised to create a de-duplicating
pool for strings.
coregrind/m_main.c, coregrind/m_options.c,
coregrind/m_replacemalloc/replacemalloc_core.c, coregrind/pub_core_options.h:
* addition of the new options --xtree-memory=none|allocs|full
and --xtree-memory-file=filename
include/pub_tool_xarray.h, coregrind/m_xarray.c:
* new function VG_(xa_str_is_member), to search a string in an
xarray of strings.
massif/ms_main.c:
* change internal implementation so as to use the new xtree module.
helgrind/hg_main.c,
memcheck/mc_include.h, memcheck/mc_main.c, memcheck/mc_malloc_wrappers.c,
massif/ms_main.c:
* support for option --xtree-memory
* support for gdbserver command xtmemory [filename]
Various small changes to massif test .exp files (mostly because the
--stats output has changed, due to the changed implementation).
--
You are receiving this mail because:
You are watching all bug changes.=
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic