Re: [PATCH 2/2] perf test: Add cgroup sampling test

From: Ian Rogers
Date: Mon Aug 19 2024 - 11:21:16 EST


On Sun, Aug 18, 2024 at 2:29 PM Namhyung Kim <namhyung@xxxxxxxxxx> wrote:
>
> Add it to the record.sh shell test to verify if it tracks cgroup
> information correctly. It records with --all-cgroups option can check
> if it has PERF_RECORD_CGROUP and the names are not "unknown".
>
> $ sudo ./perf test -vv 95
> 95: perf record tests:
> --- start ---
> test child forked, pid 2871922
> 169c90-169cd0 g test_loop
> perf does have symbol 'test_loop'
> Basic --per-thread mode test
> Basic --per-thread mode test [Success]
> Register capture test
> Register capture test [Success]
> Basic --system-wide mode test
> Basic --system-wide mode test [Success]
> Basic target workload test
> Basic target workload test [Success]
> Branch counter test
> branch counter feature not supported on all core PMUs (/sys/bus/event_source/devices/cpu) [Skipped]
> Cgroup sampling test
> Cgroup sampling test [Success]
> ---- end(0) ----
> 95: perf record tests : Ok
>
> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>

Reviewed-by: Ian Rogers <irogers@xxxxxxxxxx>

Thanks,
Ian

> ---
> tools/perf/tests/shell/record.sh | 23 +++++++++++++++++++++++
> 1 file changed, 23 insertions(+)
>
> diff --git a/tools/perf/tests/shell/record.sh b/tools/perf/tests/shell/record.sh
> index 36883b03169f..048078ee2eca 100755
> --- a/tools/perf/tests/shell/record.sh
> +++ b/tools/perf/tests/shell/record.sh
> @@ -206,6 +206,28 @@ test_branch_counter() {
> echo "Branch counter test [Success]"
> }
>
> +test_cgroup() {
> + echo "Cgroup sampling test"
> + if ! perf record -aB --synth=cgroup --all-cgroups -o "${perfdata}" ${testprog} 2> /dev/null
> + then
> + echo "Cgroup sampling [Skipped not supported]"
> + return
> + fi
> + if ! perf report -i "${perfdata}" -D | grep -q "CGROUP"
> + then
> + echo "Cgroup sampling [Failed missing output]"
> + err=1
> + return
> + fi
> + if ! perf script -i "${perfdata}" -F cgroup | grep -q -v "unknown"
> + then
> + echo "Cgroup sampling [Failed cannot resolve cgroup names]"
> + err=1
> + return
> + fi
> + echo "Cgroup sampling test [Success]"
> +}
> +
> # raise the limit of file descriptors to minimum
> if [[ $default_fd_limit -lt $min_fd_limit ]]; then
> ulimit -Sn $min_fd_limit
> @@ -216,6 +238,7 @@ test_register_capture
> test_system_wide
> test_workload
> test_branch_counter
> +test_cgroup
>
> # restore the default value
> ulimit -Sn $default_fd_limit
> --
> 2.46.0.184.g6999bdac58-goog
>