[PATCHSET 0/9] perf annotate: More memory footprint reduction

Namhyung Kim posted 9 patches 1 year, 10 months ago
tools/perf/ui/browsers/annotate.c |  15 ++-
tools/perf/util/annotate.c        | 174 +++++++++++++++++-------------
tools/perf/util/annotate.h        |  39 +++----
3 files changed, 123 insertions(+), 105 deletions(-)
[PATCHSET 0/9] perf annotate: More memory footprint reduction
Posted by Namhyung Kim 1 year, 10 months ago
Hello,

This work is continuation of the previous work to reduce the memory
usage in symbol and annotation structures.  Basically I moved some
fields in the annotation which consume spaces in the struct symbol
which is allocated regardless if the symbol has a sample or not when
annotation is enabled.

With this change applied, the struct annotation only has two members -
annotated_source and annotated_branch.  The next step would be to
remove the struct annotation and to have a hash table from symbol to
each annotated struct directly.

No function changes intended.

The code is available at perf/annotate-diet-v3 branch in

  git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git

Thanks,
Namhyung


Namhyung Kim (9):
  perf annotate: Fix annotation_calc_lines()
  perf annotate: Staticize some local functions
  perf annotate: Introduce annotated_source__get_line()
  perf annotate: Check annotation lines more efficiently
  perf annotate: Get rid of offsets array
  perf annotate: Move widths struct to annotated_source
  perf annotate: Move max_jump_sources struct to annotated_source
  perf annotate: Move nr_events struct to annotated_source
  perf annotate: Move start field struct to annotated_source

 tools/perf/ui/browsers/annotate.c |  15 ++-
 tools/perf/util/annotate.c        | 174 +++++++++++++++++-------------
 tools/perf/util/annotate.h        |  39 +++----
 3 files changed, 123 insertions(+), 105 deletions(-)


base-commit: b6347cb5e04e9c1d17342ab46e2ace2d448de727
-- 
2.44.0.478.gd926399ef9-goog
Re: [PATCHSET 0/9] perf annotate: More memory footprint reduction
Posted by Arnaldo Carvalho de Melo 1 year, 10 months ago
On Thu, Apr 04, 2024 at 10:57:07AM -0700, Namhyung Kim wrote:
> Hello,
> 
> This work is continuation of the previous work to reduce the memory
> usage in symbol and annotation structures.  Basically I moved some
> fields in the annotation which consume spaces in the struct symbol
> which is allocated regardless if the symbol has a sample or not when
> annotation is enabled.
> 
> With this change applied, the struct annotation only has two members -
> annotated_source and annotated_branch.  The next step would be to
> remove the struct annotation and to have a hash table from symbol to
> each annotated struct directly.
> 
> No function changes intended.
> 
> The code is available at perf/annotate-diet-v3 branch in
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git

Thanks, applied to perf-tools-next,

- Arnaldo
Re: [PATCHSET 0/9] perf annotate: More memory footprint reduction
Posted by Ian Rogers 1 year, 10 months ago
On Thu, Apr 4, 2024 at 10:57 AM Namhyung Kim <namhyung@kernel.org> wrote:
>
> Hello,
>
> This work is continuation of the previous work to reduce the memory
> usage in symbol and annotation structures.  Basically I moved some
> fields in the annotation which consume spaces in the struct symbol
> which is allocated regardless if the symbol has a sample or not when
> annotation is enabled.
>
> With this change applied, the struct annotation only has two members -
> annotated_source and annotated_branch.  The next step would be to
> remove the struct annotation and to have a hash table from symbol to
> each annotated struct directly.
>
> No function changes intended.
>
> The code is available at perf/annotate-diet-v3 branch in
>
>   git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git
>
> Thanks,
> Namhyung
>
>
> Namhyung Kim (9):
>   perf annotate: Fix annotation_calc_lines()
>   perf annotate: Staticize some local functions
>   perf annotate: Introduce annotated_source__get_line()
>   perf annotate: Check annotation lines more efficiently
>   perf annotate: Get rid of offsets array
>   perf annotate: Move widths struct to annotated_source
>   perf annotate: Move max_jump_sources struct to annotated_source
>   perf annotate: Move nr_events struct to annotated_source
>   perf annotate: Move start field struct to annotated_source

Series:

Tested-by: Ian Rogers <irogers@google.com>

using -fsanitize=address. Only nit was noticing 4 bytes of padding.

Thanks,
Ian

>  tools/perf/ui/browsers/annotate.c |  15 ++-
>  tools/perf/util/annotate.c        | 174 +++++++++++++++++-------------
>  tools/perf/util/annotate.h        |  39 +++----
>  3 files changed, 123 insertions(+), 105 deletions(-)
>
>
> base-commit: b6347cb5e04e9c1d17342ab46e2ace2d448de727
> --
> 2.44.0.478.gd926399ef9-goog
>