]>
Commit | Line | Data |
---|---|---|
76929ab5 | 1 | #!/bin/sh |
b2441318 | 2 | # SPDX-License-Identifier: GPL-2.0 |
76929ab5 | 3 | # description: event trigger - test histogram trigger |
ca2958f1 | 4 | # flags: instance |
76929ab5 MH |
5 | |
6 | do_reset() { | |
7 | reset_trigger | |
8 | echo > set_event | |
9 | clear_trace | |
10 | } | |
11 | ||
12 | fail() { #msg | |
13 | do_reset | |
14 | echo $1 | |
15 | exit $FAIL | |
16 | } | |
17 | ||
18 | if [ ! -f set_event -o ! -d events/sched ]; then | |
19 | echo "event tracing is not supported" | |
20 | exit_unsupported | |
21 | fi | |
22 | ||
23 | if [ ! -f events/sched/sched_process_fork/trigger ]; then | |
24 | echo "event trigger is not supported" | |
25 | exit_unsupported | |
26 | fi | |
27 | ||
0ded5174 | 28 | if [ ! -f events/sched/sched_process_fork/hist ]; then |
76929ab5 MH |
29 | echo "hist trigger is not supported" |
30 | exit_unsupported | |
31 | fi | |
32 | ||
0ded5174 SRRH |
33 | reset_tracer |
34 | do_reset | |
35 | ||
76929ab5 MH |
36 | echo "Test histogram basic tigger" |
37 | ||
38 | echo 'hist:keys=parent_pid:vals=child_pid' > events/sched/sched_process_fork/trigger | |
39 | for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done | |
40 | grep parent_pid events/sched/sched_process_fork/hist > /dev/null || \ | |
41 | fail "hist trigger on sched_process_fork did not work" | |
42 | grep child events/sched/sched_process_fork/hist > /dev/null || \ | |
43 | fail "hist trigger on sched_process_fork did not work" | |
44 | ||
45 | reset_trigger | |
46 | ||
47 | echo "Test histogram with compound keys" | |
48 | ||
49 | echo 'hist:keys=parent_pid,child_pid' > events/sched/sched_process_fork/trigger | |
50 | for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done | |
51 | grep '^{ parent_pid:.*, child_pid:.*}' events/sched/sched_process_fork/hist > /dev/null || \ | |
52 | fail "compound keys on sched_process_fork did not work" | |
53 | ||
54 | reset_trigger | |
55 | ||
56 | echo "Test histogram with string key" | |
57 | ||
58 | echo 'hist:keys=parent_comm' > events/sched/sched_process_fork/trigger | |
59 | for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done | |
60 | COMM=`cat /proc/$$/comm` | |
61 | grep "parent_comm: $COMM" events/sched/sched_process_fork/hist > /dev/null || \ | |
62 | fail "string key on sched_process_fork did not work" | |
63 | ||
64 | reset_trigger | |
65 | ||
66 | echo "Test histogram with sort key" | |
67 | ||
68 | echo 'hist:keys=parent_pid,child_pid:sort=child_pid.ascending' > events/sched/sched_process_fork/trigger | |
69 | for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done | |
70 | ||
71 | check_inc() { | |
72 | while [ $# -gt 1 ]; do | |
73 | [ $1 -gt $2 ] && return 1 | |
74 | shift 1 | |
75 | done | |
76 | return 0 | |
77 | } | |
78 | check_inc `grep -o "child_pid:[[:space:]]*[[:digit:]]*" \ | |
79 | events/sched/sched_process_fork/hist | cut -d: -f2 ` || | |
80 | fail "sort param on sched_process_fork did not work" | |
81 | ||
82 | do_reset | |
83 | ||
84 | exit 0 |