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