Re: [PATCH v8 0/4] perf sched latency: Refine outputs, unit scaling, and histogram support
Aaron Tomlin <[email protected]> Thu, 6 Aug 2026 10:05:05 -0400
| Newsgroups | org.kernel.vger.linux-perf-users,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <tr6xylsuqp5qv4dqnxbdqdanwp3xjpfcmeeqyy7ulcflpg6j2e@fhvu5baonenz> |
On Wed, Aug 05, 2026 at 03:02:06PM -0700, Ian Rogers wrote: > On Wed, Aug 5, 2026 at 2:08 PM Aaron Tomlin <[email protected]> wrote: > > > > Hi Namhyung, Ian, Arnaldo, > > > > This patch series improves 'perf sched latency' by suppressing misleading > > empty table output, extending pipe mode stream processing, introducing > > dynamic unit auto-scaling for latency and runtime statistics, and adding > > latency histogram visualisation alongside time-span filtering. > > > > Patch 1 addresses an issue where 'perf sched latency' fell through and > > returned success (0) when perf_session__has_traces() failed due to missing > > tracepoint events in a perf.data file. This caused empty header tables and > > zeroed summary statistics to be rendered. In addition, > > thread__get_runtime() in map_switch_event() is guarded against potential > > NULL pointer dereferences under memory allocation failures. > > > > Patch 2 extends pipe mode stream support. Because event attributes in pipe > > mode are received dynamically during event processing, session->evlist is > > not populated prior to event processing. > > To handle pipe input correctly: > > - Register the missing .attr, .tracing_data, .build_id, and .feature > > callbacks in cmd_sched() > > > > - Promote the handlers array to file-scope (latency_handlers[]) and > > dynamically assign matching tracepoint handlers (or > > process_sched_ignore) inside perf_sched__process_tracepoint_sample() > > when evsel->handler is NULL; replace process_sched_wakeup_ignore() > > with process_sched_ignore() > > > > - Perform the trace check post-processing when handling pipe data > > > > Patch 3 introduces dynamic auto-scaling for latency and runtime display > > columns (Runtime, Avg delay, Max delay). Previously, all values were > > unconditionally formatted in milliseconds (ms), making microsecond- or > > second-scale latencies difficult to read. Columns are now dynamically > > scaled to the most appropriate unit (ns, us, ms, s), column headers are > > updated, and format specifiers are aligned character-for-character with > > table headers. > > > > Patch 4 adds three new command-line options to 'perf sched latency': > > --histogram (-H): > > Displays an ASCII bar chart of CPU wait latencies between > > snapshots > > --hist-mode: > > Configures the bucketing scheme to either logarithmic (log) or > > 100 us equal-width linear (linear) mode > > --time: > > Filters trace event processing to a specified [start,stop] time > > span > > Thanks for these improvements and the tests for coverage! For the series: > > Reviewed-by: Ian Rogers <[email protected]> > > Thanks, > Ian Thank you Ian! -- Aaron Tomlin