Messages in this thread | | | From | Namhyung Kim <> | Date | Wed, 8 May 2024 22:08:09 -0700 | Subject | Re: [RFC 0/4] perf sched: Introduce schedstat tool |
| |
Hi Ravi,
On Tue, May 7, 2024 at 11:05 PM Ravi Bangoria <ravi.bangoria@amd.com> wrote: > > MOTIVATION > ---------- > > Existing `perf sched` is quite exhaustive and provides lot of insights > into scheduler behavior but it quickly becomes impractical to use for > long running or scheduler intensive workload. For ex, `perf sched record` > has ~7.77% overhead on hackbench (with 25 groups each running 700K loops > on a 2-socket 128 Cores 256 Threads 3rd Generation EPYC Server), and it > generates huge 56G perf.data for which perf takes ~137 mins to prepare > and write it to disk [1].
Right, this is painful.
> > Unlike `perf sched record`, which hooks onto set of scheduler tracepoints > and generates samples on a tracepoint hit, `perf sched schedstat record` > takes snapshot of the /proc/schedstat file before and after the workload, > i.e. there is zero interference on workload run. Also, it takes very > minimal time to parse /proc/schedstat, convert it into perf samples and > save those samples into perf.data file. Result perf.data file is much > smaller. So, overall `perf sched schedstat record` is much more light- > weight compare to `perf sched record`.
Nice work!
> > We, internally at AMD, have been using this (a variant of this, known as > "sched-scoreboard"[2]) and found it to be very useful to analyse impact > of any scheduler code changes[3][4]. > > Please note that, this is not a replacement of perf sched record/report. > The intended users of the new tool are scheduler developers, not regular > users.
Great, I think it's very useful.
> > USAGE > ----- > > # perf sched schedstat record > # perf sched schedstat report
Hmm. I think we can remove the duplication in 'sched'. :) Given you are thinking of taskstat, how about making it 'cpustat' instead?
Also I think it'd be easier if you also provide 'live' mode so that users can skip record + report steps and run the workload directly like uftrace does. :)
Something like this
# perf sched cpustat myworkload (result here ...)
Thanks, Namhyung
> > Note: Although perf schedstat tool supports workload profiling syntax > (i.e. -- <workload> ), the recorded profile is still systemwide since > the /proc/schedstat is a systemwide file.
| |