Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1#!/bin/sh
2# perf record offcpu profiling tests
3# SPDX-License-Identifier: GPL-2.0
4
5set -e
6
7err=0
8perfdata=$(mktemp /tmp/__perf_test.perf.data.XXXXX)
9
10cleanup() {
11 rm -f ${perfdata}
12 rm -f ${perfdata}.old
13 trap - exit term int
14}
15
16trap_cleanup() {
17 cleanup
18 exit 1
19}
20trap trap_cleanup exit term int
21
22test_offcpu() {
23 echo "Basic off-cpu test"
24 if [ `id -u` != 0 ]
25 then
26 echo "Basic off-cpu test [Skipped permission]"
27 err=2
28 return
29 fi
30 if perf record --off-cpu -o ${perfdata} --quiet true 2>&1 | grep BUILD_BPF_SKEL
31 then
32 echo "Basic off-cpu test [Skipped missing BPF support]"
33 err=2
34 return
35 fi
36 if ! perf record --off-cpu -e dummy -o ${perfdata} sleep 1 2> /dev/null
37 then
38 echo "Basic off-cpu test [Failed record]"
39 err=1
40 return
41 fi
42 if ! perf evlist -i ${perfdata} | grep -q "offcpu-time"
43 then
44 echo "Basic off-cpu test [Failed record]"
45 err=1
46 return
47 fi
48 if ! perf report -i ${perfdata} -q --percent-limit=90 | egrep -q sleep
49 then
50 echo "Basic off-cpu test [Failed missing output]"
51 err=1
52 return
53 fi
54 echo "Basic off-cpu test [Success]"
55}
56
57test_offcpu
58
59cleanup
60exit $err