1 #!/bin/sh 2 # SPDX-License-Identifier: GPL-2.0+ 3 # 4 # Run bpftrace to obtain a histogram of the ty 5 # initiate RCU grace periods. The count assoc 6 # is the number of normal (non-expedited) grac 7 # 8 # Usage: rcu-updaters.sh [ duration-in-seconds 9 # 10 # Note that not all kernel builds have all of 11 # that do not, this script will issue a diagno 12 # found, but continue normally for the rest of 13 14 duration=${1} 15 if test -n "${duration}" 16 then 17 exitclause='interval:s:'"${duration}"' 18 else 19 echo 'Hit control-C to end sample and 20 fi 21 bpftrace -e 'kprobe:kvfree_call_rcu, 22 kprobe:call_rcu, 23 kprobe:call_rcu_tasks, 24 kprobe:call_rcu_tasks_rude, 25 kprobe:call_rcu_tasks_trace, 26 kprobe:call_srcu, 27 kprobe:rcu_barrier, 28 kprobe:rcu_barrier_tasks, 29 kprobe:rcu_barrier_tasks_rude, 30 kprobe:rcu_barrier_tasks_trace, 31 kprobe:srcu_barrier, 32 kprobe:synchronize_rcu, 33 kprobe:synchronize_rcu_expedited, 34 kprobe:synchronize_rcu_tasks, 35 kprobe:synchronize_rcu_tasks_rude 36 kprobe:synchronize_rcu_tasks_trac 37 kprobe:synchronize_srcu, 38 kprobe:synchronize_srcu_expedited 39 kprobe:get_state_synchronize_rcu, 40 kprobe:get_state_synchronize_rcu_ 41 kprobe:start_poll_synchronize_rcu 42 kprobe:start_poll_synchronize_rcu 43 kprobe:start_poll_synchronize_rcu 44 kprobe:start_poll_synchronize_rcu 45 kprobe:poll_state_synchronize_rcu 46 kprobe:poll_state_synchronize_rcu 47 kprobe:cond_synchronize_rcu, 48 kprobe:cond_synchronize_rcu_full, 49 kprobe:start_poll_synchronize_src 50 kprobe:poll_state_synchronize_src 51 kprobe:rcu_gp_init 52 { @counts[func] = count(); } '
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.