[PATCHSET 0/6] perf mem: Basic support for data type profiling (v1)

Namhyung Kim posted 6 patches 1 year, 6 months ago
tools/perf/builtin-mem.c     | 100 ++++++++++++++++++++++-------------
tools/perf/builtin-report.c  |   4 +-
tools/perf/util/hist.c       |  14 ++---
tools/perf/util/map_symbol.c |  18 +++++++
tools/perf/util/map_symbol.h |   3 ++
tools/perf/util/mem-info.c   |  13 +++++
tools/perf/util/mem-info.h   |   1 +
tools/perf/util/sort.c       |  12 +++--
tools/perf/util/sort.h       |   2 +-
9 files changed, 116 insertions(+), 51 deletions(-)
[PATCHSET 0/6] perf mem: Basic support for data type profiling (v1)
Posted by Namhyung Kim 1 year, 6 months ago
Hello,

As we added data type profiling, 'perf mem report' should support that
as well.  This patches just added a couple of convenient options.

  $ perf mem report -T -s mem
  # To display the perf.data header info, please use --header/--header-only options.
  #
  #
  # Total Lost Samples: 0
  #
  # Samples: 131  of event 'cpu/mem-loads,ldlat=30/P'
  # Total weight : 18561
  # Sort order   : mem,type
  #
  # Overhead       Samples  Memory access                            Data Type
  # ........  ............  .......................................  .........
  #
      14.84%            22  L1 hit                                   (unknown)
      12.02%             8  RAM hit                                  (unknown)
       7.68%             8  LFB/MAB hit                              (unknown)
       6.29%            12  L1 hit                                   (stack operation)
       3.97%             5  LFB/MAB hit                              struct psi_group_cpu
       3.69%             3  L1 hit                                   struct   
       3.18%             3  LFB/MAB hit                              (stack operation)
       2.89%             5  L3 hit                                   (unknown)
       2.58%             3  L1 hit                                   unsigned int
       2.31%             2  L1 hit                                   struct psi_group_cpu
       2.21%             2  LFB/MAB hit                              struct cfs_rq
       2.19%             2  RAM hit                                  struct sched_entity
       2.16%             1  L1 hit                                   struct task_struct
       1.85%             3  L1 hit                                   struct pcpu_hot
       1.78%             1  RAM hit                                  struct tss_struct
       1.72%             1  LFB/MAB hit                              struct mm_struct
       1.62%             2  L1 hit                                   struct psi_group
       ...


The code is also available at 'perf/mem-type-v1' branch in
git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git

Thanks,
Namhyung


Namhyung Kim (6):
  perf hist: Correct hist_entry->mem_info refcounts
  perf mem: Free the allocated sort string
  perf mem: Rework command option handling
  perf tools: Add mode argument to sort_help()
  perf mem: Add -s/--sort option
  perf mem: Add -T/--data-type option to report subcommand

 tools/perf/builtin-mem.c     | 100 ++++++++++++++++++++++-------------
 tools/perf/builtin-report.c  |   4 +-
 tools/perf/util/hist.c       |  14 ++---
 tools/perf/util/map_symbol.c |  18 +++++++
 tools/perf/util/map_symbol.h |   3 ++
 tools/perf/util/mem-info.c   |  13 +++++
 tools/perf/util/mem-info.h   |   1 +
 tools/perf/util/sort.c       |  12 +++--
 tools/perf/util/sort.h       |   2 +-
 9 files changed, 116 insertions(+), 51 deletions(-)

-- 
2.46.0.rc1.232.g9752f9e123-goog
Re: [PATCHSET 0/6] perf mem: Basic support for data type profiling (v1)
Posted by Ian Rogers 1 year, 6 months ago
On Wed, Jul 31, 2024 at 4:55 PM Namhyung Kim <namhyung@kernel.org> wrote:
>
> Hello,
>
> As we added data type profiling, 'perf mem report' should support that
> as well.  This patches just added a couple of convenient options.
>
>   $ perf mem report -T -s mem
>   # To display the perf.data header info, please use --header/--header-only options.
>   #
>   #
>   # Total Lost Samples: 0
>   #
>   # Samples: 131  of event 'cpu/mem-loads,ldlat=30/P'
>   # Total weight : 18561
>   # Sort order   : mem,type
>   #
>   # Overhead       Samples  Memory access                            Data Type
>   # ........  ............  .......................................  .........
>   #
>       14.84%            22  L1 hit                                   (unknown)
>       12.02%             8  RAM hit                                  (unknown)
>        7.68%             8  LFB/MAB hit                              (unknown)
>        6.29%            12  L1 hit                                   (stack operation)
>        3.97%             5  LFB/MAB hit                              struct psi_group_cpu
>        3.69%             3  L1 hit                                   struct
>        3.18%             3  LFB/MAB hit                              (stack operation)
>        2.89%             5  L3 hit                                   (unknown)
>        2.58%             3  L1 hit                                   unsigned int
>        2.31%             2  L1 hit                                   struct psi_group_cpu
>        2.21%             2  LFB/MAB hit                              struct cfs_rq
>        2.19%             2  RAM hit                                  struct sched_entity
>        2.16%             1  L1 hit                                   struct task_struct
>        1.85%             3  L1 hit                                   struct pcpu_hot
>        1.78%             1  RAM hit                                  struct tss_struct
>        1.72%             1  LFB/MAB hit                              struct mm_struct
>        1.62%             2  L1 hit                                   struct psi_group
>        ...
>
>
> The code is also available at 'perf/mem-type-v1' branch in
> git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git
>
> Thanks,
> Namhyung
>
>
> Namhyung Kim (6):
>   perf hist: Correct hist_entry->mem_info refcounts
>   perf mem: Free the allocated sort string
>   perf mem: Rework command option handling
>   perf tools: Add mode argument to sort_help()
>   perf mem: Add -s/--sort option
>   perf mem: Add -T/--data-type option to report subcommand
>
>  tools/perf/builtin-mem.c     | 100 ++++++++++++++++++++++-------------
>  tools/perf/builtin-report.c  |   4 +-
>  tools/perf/util/hist.c       |  14 ++---
>  tools/perf/util/map_symbol.c |  18 +++++++
>  tools/perf/util/map_symbol.h |   3 ++
>  tools/perf/util/mem-info.c   |  13 +++++
>  tools/perf/util/mem-info.h   |   1 +
>  tools/perf/util/sort.c       |  12 +++--
>  tools/perf/util/sort.h       |   2 +-
>  9 files changed, 116 insertions(+), 51 deletions(-)

Lgtm, man page updates?

Thanks,
Ian
Re: [PATCHSET 0/6] perf mem: Basic support for data type profiling (v1)
Posted by Namhyung Kim 1 year, 6 months ago
On Thu, Aug 1, 2024 at 8:23 AM Ian Rogers <irogers@google.com> wrote:
>
> On Wed, Jul 31, 2024 at 4:55 PM Namhyung Kim <namhyung@kernel.org> wrote:
> >
> > Hello,
> >
> > As we added data type profiling, 'perf mem report' should support that
> > as well.  This patches just added a couple of convenient options.
> >
> >   $ perf mem report -T -s mem
> >   # To display the perf.data header info, please use --header/--header-only options.
> >   #
> >   #
> >   # Total Lost Samples: 0
> >   #
> >   # Samples: 131  of event 'cpu/mem-loads,ldlat=30/P'
> >   # Total weight : 18561
> >   # Sort order   : mem,type
> >   #
> >   # Overhead       Samples  Memory access                            Data Type
> >   # ........  ............  .......................................  .........
> >   #
> >       14.84%            22  L1 hit                                   (unknown)
> >       12.02%             8  RAM hit                                  (unknown)
> >        7.68%             8  LFB/MAB hit                              (unknown)
> >        6.29%            12  L1 hit                                   (stack operation)
> >        3.97%             5  LFB/MAB hit                              struct psi_group_cpu
> >        3.69%             3  L1 hit                                   struct
> >        3.18%             3  LFB/MAB hit                              (stack operation)
> >        2.89%             5  L3 hit                                   (unknown)
> >        2.58%             3  L1 hit                                   unsigned int
> >        2.31%             2  L1 hit                                   struct psi_group_cpu
> >        2.21%             2  LFB/MAB hit                              struct cfs_rq
> >        2.19%             2  RAM hit                                  struct sched_entity
> >        2.16%             1  L1 hit                                   struct task_struct
> >        1.85%             3  L1 hit                                   struct pcpu_hot
> >        1.78%             1  RAM hit                                  struct tss_struct
> >        1.72%             1  LFB/MAB hit                              struct mm_struct
> >        1.62%             2  L1 hit                                   struct psi_group
> >        ...
> >
> >
> > The code is also available at 'perf/mem-type-v1' branch in
> > git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git
> >
> > Thanks,
> > Namhyung
> >
> >
> > Namhyung Kim (6):
> >   perf hist: Correct hist_entry->mem_info refcounts
> >   perf mem: Free the allocated sort string
> >   perf mem: Rework command option handling
> >   perf tools: Add mode argument to sort_help()
> >   perf mem: Add -s/--sort option
> >   perf mem: Add -T/--data-type option to report subcommand
> >
> >  tools/perf/builtin-mem.c     | 100 ++++++++++++++++++++++-------------
> >  tools/perf/builtin-report.c  |   4 +-
> >  tools/perf/util/hist.c       |  14 ++---
> >  tools/perf/util/map_symbol.c |  18 +++++++
> >  tools/perf/util/map_symbol.h |   3 ++
> >  tools/perf/util/mem-info.c   |  13 +++++
> >  tools/perf/util/mem-info.h   |   1 +
> >  tools/perf/util/sort.c       |  12 +++--
> >  tools/perf/util/sort.h       |   2 +-
> >  9 files changed, 116 insertions(+), 51 deletions(-)
>
> Lgtm, man page updates?

Thanks for your review, I'll update the documentation.
Namhyung