]> Git Repo - linux.git/blob - tools/rcu/rcu-updaters.sh
Linux 6.14-rc3
[linux.git] / tools / rcu / rcu-updaters.sh
1 #!/bin/sh
2 # SPDX-License-Identifier: GPL-2.0+
3 #
4 # Run bpftrace to obtain a histogram of the types of primitives used to
5 # initiate RCU grace periods.  The count associated with rcu_gp_init()
6 # is the number of normal (non-expedited) grace periods.
7 #
8 # Usage: rcu-updaters.sh [ duration-in-seconds ]
9 #
10 # Note that not all kernel builds have all of these functions.  In those
11 # that do not, this script will issue a diagnostic for each that is not
12 # found, but continue normally for the rest of the functions.
13
14 duration=${1}
15 if test -n "${duration}"
16 then
17         exitclause='interval:s:'"${duration}"' { exit(); }'
18 else
19         echo 'Hit control-C to end sample and print results.'
20 fi
21 bpftrace -e 'kprobe:kvfree_call_rcu,
22              kprobe:call_rcu,
23              kprobe:call_rcu_tasks,
24              kprobe:call_rcu_tasks_trace,
25              kprobe:call_srcu,
26              kprobe:rcu_barrier,
27              kprobe:rcu_barrier_tasks,
28              kprobe:rcu_barrier_tasks_trace,
29              kprobe:srcu_barrier,
30              kprobe:synchronize_rcu,
31              kprobe:synchronize_rcu_expedited,
32              kprobe:synchronize_rcu_tasks,
33              kprobe:synchronize_rcu_tasks_rude,
34              kprobe:synchronize_rcu_tasks_trace,
35              kprobe:synchronize_srcu,
36              kprobe:synchronize_srcu_expedited,
37              kprobe:get_state_synchronize_rcu,
38              kprobe:get_state_synchronize_rcu_full,
39              kprobe:start_poll_synchronize_rcu,
40              kprobe:start_poll_synchronize_rcu_expedited,
41              kprobe:start_poll_synchronize_rcu_full,
42              kprobe:start_poll_synchronize_rcu_expedited_full,
43              kprobe:poll_state_synchronize_rcu,
44              kprobe:poll_state_synchronize_rcu_full,
45              kprobe:cond_synchronize_rcu,
46              kprobe:cond_synchronize_rcu_full,
47              kprobe:start_poll_synchronize_srcu,
48              kprobe:poll_state_synchronize_srcu,
49              kprobe:rcu_gp_init
50                 { @counts[func] = count(); } '"${exitclause}"
This page took 0.031881 seconds and 4 git commands to generate.