Message ID | 20220518224725.742882-7-namhyung@kernel.org (mailing list archive) |
---|---|
State | RFC |
Delegated to: | BPF |
Headers | show |
Series | perf record: Implement off-cpu profiling with BPF (v3) | expand |
Context | Check | Description |
---|---|---|
bpf/vmtest-bpf-next-VM_Test-2 | success | Logs for Kernel LATEST on ubuntu-latest with llvm-15 |
bpf/vmtest-bpf-next-VM_Test-3 | fail | Logs for Kernel LATEST on z15 with gcc |
bpf/vmtest-bpf-next-PR | fail | PR summary |
bpf/vmtest-bpf-next-VM_Test-1 | success | Logs for Kernel LATEST on ubuntu-latest with gcc |
netdev/tree_selection | success | Not a local patch |
On Wed, May 18, 2022 at 3:47 PM Namhyung Kim <namhyung@kernel.org> wrote: > > $ sudo ./perf test -v offcpu > 88: perf record offcpu profiling tests : > --- start --- > test child forked, pid 685966 > Basic off-cpu test > Basic off-cpu test [Success] > test child finished with 0 > ---- end ---- > perf record offcpu profiling tests: Ok > > Signed-off-by: Namhyung Kim <namhyung@kernel.org> Acked-by: Ian Rogers <irogers@google.com> Thanks, Ian > --- > tools/perf/tests/shell/record_offcpu.sh | 60 +++++++++++++++++++++++++ > 1 file changed, 60 insertions(+) > create mode 100755 tools/perf/tests/shell/record_offcpu.sh > > diff --git a/tools/perf/tests/shell/record_offcpu.sh b/tools/perf/tests/shell/record_offcpu.sh > new file mode 100755 > index 000000000000..96e0739f7478 > --- /dev/null > +++ b/tools/perf/tests/shell/record_offcpu.sh > @@ -0,0 +1,60 @@ > +#!/bin/sh > +# perf record offcpu profiling tests > +# SPDX-License-Identifier: GPL-2.0 > + > +set -e > + > +err=0 > +perfdata=$(mktemp /tmp/__perf_test.perf.data.XXXXX) > + > +cleanup() { > + rm -f ${perfdata} > + rm -f ${perfdata}.old > + trap - exit term int > +} > + > +trap_cleanup() { > + cleanup > + exit 1 > +} > +trap trap_cleanup exit term int > + > +test_offcpu() { > + echo "Basic off-cpu test" > + if [ `id -u` != 0 ] > + then > + echo "Basic off-cpu test [Skipped permission]" > + err=2 > + return > + fi > + if perf record --off-cpu -o ${perfdata} --quiet true 2>&1 | grep BUILD_BPF_SKEL > + then > + echo "Basic off-cpu test [Skipped missing BPF support]" > + err=2 > + return > + fi > + if ! perf record --off-cpu -e dummy -o ${perfdata} sleep 1 2> /dev/null > + then > + echo "Basic off-cpu test [Failed record]" > + err=1 > + return > + fi > + if ! perf evlist -i ${perfdata} | grep -q "offcpu-time" > + then > + echo "Basic off-cpu test [Failed record]" > + err=1 > + return > + fi > + if ! perf report -i ${perfdata} -q --percent-limit=90 | egrep -q sleep > + then > + echo "Basic off-cpu test [Failed missing output]" > + err=1 > + return > + fi > + echo "Basic off-cpu test [Success]" > +} > + > +test_offcpu > + > +cleanup > +exit $err > -- > 2.36.1.124.g0e6072fb45-goog >
diff --git a/tools/perf/tests/shell/record_offcpu.sh b/tools/perf/tests/shell/record_offcpu.sh new file mode 100755 index 000000000000..96e0739f7478 --- /dev/null +++ b/tools/perf/tests/shell/record_offcpu.sh @@ -0,0 +1,60 @@ +#!/bin/sh +# perf record offcpu profiling tests +# SPDX-License-Identifier: GPL-2.0 + +set -e + +err=0 +perfdata=$(mktemp /tmp/__perf_test.perf.data.XXXXX) + +cleanup() { + rm -f ${perfdata} + rm -f ${perfdata}.old + trap - exit term int +} + +trap_cleanup() { + cleanup + exit 1 +} +trap trap_cleanup exit term int + +test_offcpu() { + echo "Basic off-cpu test" + if [ `id -u` != 0 ] + then + echo "Basic off-cpu test [Skipped permission]" + err=2 + return + fi + if perf record --off-cpu -o ${perfdata} --quiet true 2>&1 | grep BUILD_BPF_SKEL + then + echo "Basic off-cpu test [Skipped missing BPF support]" + err=2 + return + fi + if ! perf record --off-cpu -e dummy -o ${perfdata} sleep 1 2> /dev/null + then + echo "Basic off-cpu test [Failed record]" + err=1 + return + fi + if ! perf evlist -i ${perfdata} | grep -q "offcpu-time" + then + echo "Basic off-cpu test [Failed record]" + err=1 + return + fi + if ! perf report -i ${perfdata} -q --percent-limit=90 | egrep -q sleep + then + echo "Basic off-cpu test [Failed missing output]" + err=1 + return + fi + echo "Basic off-cpu test [Success]" +} + +test_offcpu + +cleanup +exit $err
$ sudo ./perf test -v offcpu 88: perf record offcpu profiling tests : --- start --- test child forked, pid 685966 Basic off-cpu test Basic off-cpu test [Success] test child finished with 0 ---- end ---- perf record offcpu profiling tests: Ok Signed-off-by: Namhyung Kim <namhyung@kernel.org> --- tools/perf/tests/shell/record_offcpu.sh | 60 +++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100755 tools/perf/tests/shell/record_offcpu.sh