Re: [PATCH v7 0/6] perf record: Track sideband events for all CPUs when tracing selected CPUs
From: Ravi Bangoria
Date: Tue Aug 29 2023 - 01:38:46 EST
On 26-Aug-23 8:56 AM, Yang Jihong wrote:
> User space tasks can migrate between CPUs, track sideband events for all
> CPUs.
I've tested this series with simple test program and it mostly works fine.
Tested-by: Ravi Bangoria <ravi.bangoria@xxxxxxx>
Since we are recording sideband data on all cpus, perf will endup recording
lots of unnecessary data, esp. on large systems. E.g. on a 128 cpu system:
Without patch:
$ sudo ./perf record -C 10 -o perf.data.without -- sleep 10
$ du -d1 -ha ./perf.data.without
3.0M ./perf.data.without
$ sudo ./perf report --stats -i perf.data.without
Aggregated stats:
TOTAL events: 47011
MMAP events: 51 ( 0.1%)
COMM events: 1549 ( 3.3%)
EXIT events: 105 ( 0.2%)
FORK events: 1544 ( 3.3%)
SAMPLE events: 38226 (81.3%)
MMAP2 events: 5485 (11.7%)
...
cycles:P stats:
SAMPLE events: 38226
With patch:
$ sudo ./perf record -C 10 -o perf.data.with -- sleep 10
$ du -d1 -ha ./perf.data.with
15M ./perf.data.with
$ sudo ./perf report --stats -i perf.data.with
Aggregated stats:
TOTAL events: 160164
MMAP events: 51 ( 0.0%)
COMM events: 12879 ( 8.0%)
EXIT events: 11192 ( 7.0%)
FORK events: 12669 ( 7.9%)
SAMPLE events: 38464 (24.0%)
MMAP2 events: 84844 (53.0%)
...
cycles:P stats:
SAMPLE events: 38464
Number of actual samples are same ~38K. However, the perf.data file is 5x
bigger because of additional sideband data.
I'm pretty sure we don't need most of those additional data. So, thinking
loud, should we post-process perf.data file and filter out unnecessary data?
Thanks,
Ravi