| 1 | |
| 2 | |
| 3 | |
| 4 |
|
| 5 | shelldir=$(dirname "$0")
|
| 6 | |
| 7 | . "${shelldir}"/lib/perf_has_symbol.sh
|
| 8 |
|
| 9 | if [ "$(uname -m)" != "aarch64" ]; then
|
| 10 | exit 2
|
| 11 | fi
|
| 12 |
|
| 13 | if perf version --build-options | grep HAVE_DWARF_UNWIND_SUPPORT | grep -q OFF
|
| 14 | then
|
| 15 | echo "Skipping, no dwarf unwind support"
|
| 16 | exit 2
|
| 17 | fi
|
| 18 |
|
| 19 | skip_test_missing_symbol leafloop
|
| 20 |
|
| 21 | PERF_DATA=$(mktemp /tmp/__perf_test.perf.data.XXXXX)
|
| 22 | TEST_PROGRAM="perf test -w leafloop"
|
| 23 |
|
| 24 | cleanup_files()
|
| 25 | {
|
| 26 | rm -f "$PERF_DATA"
|
| 27 | }
|
| 28 |
|
| 29 | trap cleanup_files EXIT TERM INT
|
| 30 |
|
| 31 | |
| 32 | perf record -o "$PERF_DATA" --call-graph fp -e cycles//u --user-callchains -- $TEST_PROGRAM
|
| 33 |
|
| 34 | |
| 35 | perf script -i "$PERF_DATA" -F comm,ip,sym | head -n4
|
| 36 |
|
| 37 | |
| 38 | |
| 39 | |
| 40 | |
| 41 | |
| 42 | |
| 43 | |
| 44 |
|
| 45 | |
| 46 | SEP="[[:space:]]+ [[:xdigit:]]+"
|
| 47 | perf script -i "$PERF_DATA" -F comm,ip,sym | tr '\n' ' ' | \
|
| 48 | grep -E -q "perf $SEP leaf $SEP parent $SEP leafloop"
|