Re: [PATCH v4 0/5] tracing/hist: Add percentage histogram suffixes

From: Tom Zanussi
Date: Thu Sep 01 2022 - 17:01:02 EST


On Thu, 2022-09-01 at 08:02 +0900, Masami Hiramatsu wrote:
> On Wed, 31 Aug 2022 16:35:25 -0500
> Tom Zanussi <zanussi@xxxxxxxxxx> wrote:
>
> > Hi Masami,
> >
> > On Sat, 2022-08-27 at 13:03 +0900, Masami Hiramatsu (Google) wrote:
> > > Hi,
> > >
> > > Here is the 4th version of .percent and .graph suffixes for
> > > histogram
> > > trigger to show the value in percentage and in bar-graph
> > > respectively.
> > >
> > > I've rebased on Tom's hitcount patch[1/5] on the series and added
> > > a
> > > patch
> > > for supressing display of hitcount[5/5] in this version.
> >
> > This is a very nice patchset overall - the only question I have
> > concerns patch 5 for suppressing the hitcount.  I actually think
> > the
> > patch is fine and does what it says nicely (and probably should
> > have
> > been done that way to begin with) but it looks like it would cause
> > problems for anyone already doing postprocessing and whose scripts
> > would be expecting the hitcount to be there.  So changing the
> > default
> > behavior would require their scripts to change, and also now that I
> > look at it, the example output in Documentation/ as well.
>
> Good catch! Yeah, this type of change will need to update the docs.
> I missed that.
>
> >
> > How about adding an option like 'nohitcount' and having that patch
> > do
> > what it does but only if that option is set?
>
> Agreed. So something like this?
>
> echo hist:keys=pid:vals=runtime.graph:nohitcount (or NOHC for short)
>
> Maybe we can also add an option under <tracefs/>options/

Yeah, makes sense to me.

Thanks,

Tom

>
> >
> > Anyway, for the other ones, patches 2-4,
> >
> >   Signed-off-by: Tom Zanussi <zanussi@xxxxxxxxxx>
> >   Tested-by: Tom Zanussi <zanussi@xxxxxxxxxx
>
> Thank you!
>
> >
> > Thanks!
> >
> > Tom
> >
> > >
> > > This will help us to check the trend of the histogram instantly
> > > without any post processing tool.
> > >
> > > Here shows an example of the percentage and the bar graph of
> > > the hitcount of the running tasks.
> > >
> > >   # cd /sys/kernel/debug/tracing/
> > >   # echo
> > > hist:keys=pid:vals=hitcount.percent,hitcount.graph:sort=pid
> > > > \
> > >         events/sched/sched_stat_runtime/trigger
> > >   # sleep 10
> > >   # cat events/sched/sched_stat_runtime/hist
> > >  # event histogram
> > >  #
> > >  # trigger info:
> > > hist:keys=pid:vals=hitcount.percent,hitcount.graph:sort=pid:size=
> > > 2048
> > > [active]
> > >  #
> > >
> > >  { pid:         14 } hitcount (%):   4.68  hitcount:
> > > ###                
> > >  { pid:         16 } hitcount (%):  17.18  hitcount:
> > > ###########        
> > >  { pid:         57 } hitcount (%):   7.81  hitcount:
> > > #####              
> > >  { pid:         61 } hitcount (%):  31.25  hitcount:
> > > ####################
> > >  { pid:         70 } hitcount (%):   4.68  hitcount:
> > > ###                
> > >  { pid:         77 } hitcount (%):   1.56  hitcount:
> > > #                  
> > >  { pid:        145 } hitcount (%):  18.75  hitcount:
> > > ############       
> > >  { pid:        151 } hitcount (%):   9.37  hitcount:
> > > ######             
> > >  { pid:        152 } hitcount (%):   4.68  hitcount:
> > > ###                
> > >
> > >  Totals:
> > >      Hits: 64
> > >      Entries: 9
> > >      Dropped: 0
> > >
> > > Of course if you explicitly specify the hitcount, it can show the
> > > hitcount as below;
> > >
> > >   # cd /sys/kernel/debug/tracing/
> > >   # echo hist:keys=pid:vals=hitcount,runtime:sort=pid > \
> > >         events/sched/sched_stat_runtime/trigger
> > >   # sleep 10
> > >   # cat events/sched/sched_stat_runtime/hist
> > >  # event histogram
> > >  #
> > >  # trigger info:
> > > hist:keys=pid:vals=hitcount,runtime:sort=pid:size=2048 [active]
> > >  #
> > >
> > >  { pid:         14 } hitcount:          2  runtime:     304876
> > >  { pid:         16 } hitcount:          8  runtime:     300574
> > >  { pid:         26 } hitcount:          2  runtime:      15578
> > >  { pid:         32 } hitcount:          2  runtime:     219186
> > >  { pid:         57 } hitcount:          3  runtime:     506003
> > >  { pid:         61 } hitcount:         20  runtime:    1681473
> > >  { pid:         69 } hitcount:          3  runtime:     201785
> > >  { pid:         70 } hitcount:          4  runtime:     360608
> > >  { pid:         77 } hitcount:          8  runtime:    4146935
> > >  { pid:        145 } hitcount:         13  runtime:    7537994
> > >  { pid:        155 } hitcount:          4  runtime:    2511937
> > >  { pid:        156 } hitcount:          2  runtime:    1398886
> > >
> > >  Totals:
> > >      Hits: 71
> > >      Entries: 12
> > >      Dropped: 0
> > >
> > >
> > > Thank you,
> > >
> > > ---
> > >
> > > Masami Hiramatsu (Google) (4):
> > >       tracing: Fix to check event_mutex is held while accessing
> > > trigger list
> > >       tracing: Add .percent suffix option to histogram values
> > >       tracing: Add .graph suffix option to histogram value
> > >       tracing: Show hitcount value only when specified
> > >
> > > Tom Zanussi (1):
> > >       tracing: Allow multiple hitcount values in histograms
> > >
> > >
> > >  kernel/trace/trace.c                |    3 -
> > >  kernel/trace/trace_events_hist.c    |  176
> > > ++++++++++++++++++++++++++++++-----
> > >  kernel/trace/trace_events_trigger.c |    3 -
> > >  3 files changed, 156 insertions(+), 26 deletions(-)
> > >
> > > --
> > > Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>
> >
>
>