Commit | Line | Data |
---|---|---|
7f09d639 SRG |
1 | #!/bin/sh |
2 | # SPDX-License-Identifier: GPL-2.0 | |
3 | # description: event filter function - test event filtering on functions | |
4 | # requires: set_event events/kmem/kmem_cache_free/filter | |
5 | # flags: instance | |
6 | ||
7 | fail() { #msg | |
8 | echo $1 | |
9 | exit_fail | |
10 | } | |
11 | ||
eb50d0f2 MHG |
12 | sample_events() { |
13 | echo > trace | |
14 | echo 1 > events/kmem/kmem_cache_free/enable | |
15 | echo 1 > tracing_on | |
16 | ls > /dev/null | |
17 | echo 0 > tracing_on | |
18 | echo 0 > events/kmem/kmem_cache_free/enable | |
19 | } | |
20 | ||
7f09d639 SRG |
21 | echo 0 > tracing_on |
22 | echo 0 > events/enable | |
eb50d0f2 MHG |
23 | |
24 | echo "Get the most frequently calling function" | |
25 | sample_events | |
26 | ||
8ecab2e6 | 27 | target_func=`cat trace | grep -o 'call_site=\([^+]*\)' | sed 's/call_site=//' | sort | uniq -c | sort | tail -n 1 | sed 's/^[ 0-9]*//'` |
eb50d0f2 MHG |
28 | if [ -z "$target_func" ]; then |
29 | exit_fail | |
30 | fi | |
7f09d639 | 31 | echo > trace |
7f09d639 | 32 | |
eb50d0f2 MHG |
33 | echo "Test event filter function name" |
34 | echo "call_site.function == $target_func" > events/kmem/kmem_cache_free/filter | |
35 | sample_events | |
36 | ||
37 | hitcnt=`grep kmem_cache_free trace| grep $target_func | wc -l` | |
38 | misscnt=`grep kmem_cache_free trace| grep -v $target_func | wc -l` | |
7f09d639 SRG |
39 | |
40 | if [ $hitcnt -eq 0 ]; then | |
41 | exit_fail | |
42 | fi | |
43 | ||
44 | if [ $misscnt -gt 0 ]; then | |
45 | exit_fail | |
46 | fi | |
47 | ||
eb50d0f2 | 48 | address=`grep " ${target_func}\$" /proc/kallsyms | cut -d' ' -f1` |
7f09d639 SRG |
49 | |
50 | echo "Test event filter function address" | |
7f09d639 | 51 | echo "call_site.function == 0x$address" > events/kmem/kmem_cache_free/filter |
eb50d0f2 | 52 | sample_events |
7f09d639 | 53 | |
eb50d0f2 MHG |
54 | hitcnt=`grep kmem_cache_free trace| grep $target_func | wc -l` |
55 | misscnt=`grep kmem_cache_free trace| grep -v $target_func | wc -l` | |
7f09d639 SRG |
56 | |
57 | if [ $hitcnt -eq 0 ]; then | |
58 | exit_fail | |
59 | fi | |
60 | ||
61 | if [ $misscnt -gt 0 ]; then | |
62 | exit_fail | |
63 | fi | |
64 | ||
65 | reset_events_filter | |
66 | ||
67 | exit 0 |