perf test: Update sample filtering tests with multiple events
Add Multiple bpf-filter test for two or more events with filters. It uses task-clock and page-faults events with different filter expressions and check the perf script output $ sudo ./perf test filtering -vv 96: perf record sample filtering (by BPF) tests: --- start --- test child forked, pid 2804025 Checking BPF-filter privilege Basic bpf-filter test Basic bpf-filter test [Success] Failing bpf-filter test Error: task-clock event does not have PERF_SAMPLE_CPU Failing bpf-filter test [Success] Group bpf-filter test Error: task-clock event does not have PERF_SAMPLE_CPU Error: task-clock event does not have PERF_SAMPLE_CODE_PAGE_SIZE Group bpf-filter test [Success] Multiple bpf-filter test Multiple bpf-filter test [Success] ---- end(0) ---- 96: perf record sample filtering (by BPF) tests : Ok Signed-off-by: Namhyung Kim <namhyung@kernel.org> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Ian Rogers <irogers@google.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Jiri Olsa <jolsa@kernel.org> Cc: KP Singh <kpsingh@kernel.org> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Song Liu <song@kernel.org> Link: https://lore.kernel.org/r/20240820154504.128923-3-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>pull/960/head
parent
1a5474a779
commit
150ca9ccc4
|
|
@ -116,6 +116,36 @@ test_bpf_filter_group() {
|
|||
echo "Group bpf-filter test [Success]"
|
||||
}
|
||||
|
||||
test_bpf_filter_multi() {
|
||||
echo "Multiple bpf-filter test"
|
||||
|
||||
if ! perf record -e task-clock --filter 'period > 100000' \
|
||||
-e page-faults --filter 'ip < 0xffffffff00000000' \
|
||||
-o "${perfdata}" true 2> /dev/null
|
||||
then
|
||||
echo "Multiple bpf-filter test [Failed record]"
|
||||
err=1
|
||||
return
|
||||
fi
|
||||
|
||||
if ! perf script -i "${perfdata}" -F period,event | grep task-clock | \
|
||||
awk '{ if (int($1) <= 100000) { print $0; exit(1); } }'
|
||||
then
|
||||
echo "Multiple bpf-filter test [Failed task-clock period]"
|
||||
err=1
|
||||
return
|
||||
fi
|
||||
|
||||
if perf script -i "${perfdata}" -F event,ip | grep page-fault | \
|
||||
grep 'ffffffff[0-9a-f]*'
|
||||
then
|
||||
echo "Multiple bpf-filter test [Failed page-faults ip]"
|
||||
err=1
|
||||
return
|
||||
fi
|
||||
|
||||
echo "Multiple bpf-filter test [Success]"
|
||||
}
|
||||
|
||||
test_bpf_filter_priv
|
||||
|
||||
|
|
@ -131,5 +161,9 @@ if [ $err = 0 ]; then
|
|||
test_bpf_filter_group
|
||||
fi
|
||||
|
||||
if [ $err = 0 ]; then
|
||||
test_bpf_filter_multi
|
||||
fi
|
||||
|
||||
cleanup
|
||||
exit $err
|
||||
|
|
|
|||
Loading…
Reference in New Issue