[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-bugs-dist
Subject: [valgrind] [Bug 371916] execution tree xtree concept
From: Philippe Waroquiers <bugzilla_noreply () kde ! org>
Date: 2016-11-11 13:18:58
Message-ID: bug-371916-17878-snVCROfhCv () http ! bugs ! kde ! org/
[Download RAW message or body]
https://bugs.kde.org/show_bug.cgi?id=371916
--- Comment #21 from Philippe Waroquiers <philippe.waroquiers@skynet.be> ---
(In reply to Julian Seward from comment #18)
> * I assume there are no regressions with correctness or performance
> with this, yes? Could you do a self-host Memcheck run at some point?
Massif functional behaviour is unchanged (with the exception of some inversion
when 2 stacktraces have allocated the same amount: the old and new
implementation
do not output such 'equal consumers' in the same order.
Massif performance is improved (in CPU and memory).
For other tools (memcheck, helgrind) : if the xtree feature is not used,
the impact is one additional 'if' condition
in the malloc/free interception code.
>
> * The large size of the patch concerns me a bit. I would be happier
> if it could be split into two parts:
>
> (1) that creates m_xtree.c and refactors Massif to use it, but
> does not change the user-visible functionality at all. So
> it is an implementation-only change, and
>
> (2) a patch that builds on (1), that supplies the new functionality.
>
> Is that possible, if it is not a lot of work?
Ok, I will (try to) commit in some (smaller) pieces (which will I hope give
a buildable V at each commit).
>
>
> [1] Small comments:
>
> ----------------
>
> +typedef
> + struct { Addr a; const HChar* sym_name; PtrdiffT offset; }
> + Sym_Name_CacheEnt;
>
> I prefer to have something more descriptive than just "a" for the
> first field.
Renamed to sym_avma, as suggested/
>
> ----------------
>
> +" --xtree-memory=none|allocs|full profile heap memory in an xtree
> [none]\n"
> +" and produces a report at the end of the
> execution\n"
> +" none: no profiling, allocs: current
> allocated\n"
> +" size/blocks, full: profile current and
> cumulative\n"
> +" allocated size/blocks and freed
> size/blocks.\n"
> +" --xtree-memory-file=<file> xtree memory report file
> [xtmemory.kcg.%%p]\n"
>
> This flag only has effect for tools that replace malloc, correct? Is
> it listed in the section "user options for Valgrind tools that replace
> malloc:" ?
Yes, it is listed there in -help output, and documented in the user manual
around malloc/free related arguments.
>
> ----------------
>
> + This file is part of Valgrind, a dynamic binary instrumentation
> + framework.
> +
> + Copyright (C) 2016-2016 Philippe Waroquiers
>
> For m_xtree.c, if there is a lot of code in there which has been moved
> from massif and/or callgrind, and is not much changed, I think it
> would be diplomatic to add a line or two explaining that the original
> authors were Nick and/or Josef. See the top of coregrind/m_wordfm.c for
> an example.
m_xtree.c is a completely new implementation of the Xtree (I have recuperated
a few lines for the production of the massif header).
In any case, I have added a paragraph to mention that the xtree initial idea
was in massif developed by Nick.
>
> ----------------
>
> // growing such a block, but for consistency (it also simplifies things) we
> // ignore such reallocs as well.
> +// XTREE??? why can't we just consider that a realloc of an ignored
> +// alloc is just a new alloc (i.e. do not remove the old sz from the stats).
>
> and again later. The "XTREE???" is confusing -- I don't know what it
> signifies. Can you maybe write instead something like "PW Nov 2016,
> xtree work:"? I do that in comments from time to time.
Updated as suggested.
>
> ----------------
>
> Per previous comments in the bug re CamelCase vs snake_case, I really
> have no problem mixing them. I like to use camelcase, with a capital
> first letter for type names, and snake case when function names get
> long. But no fixed rules.
Yes, there is no fixed rule.
The comment of Ivo was in any case handled, as there was really too much
name variation in the API.
--
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