1bdd7e3d6SMasami Hiramatsu#!/bin/sh 2b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 3bdd7e3d6SMasami Hiramatsu# description: Register/unregister many kprobe events 43591e90fSMasami Hiramatsu# requires: kprobe_events 584c06566SThomas Meyer 6bdd7e3d6SMasami Hiramatsu# ftrace fentry skip size depends on the machine architecture. 7f7181e5aSNaveen N. Rao# Currently HAVE_KPROBES_ON_FTRACE defined on x86 and powerpc64le 8bdd7e3d6SMasami Hiramatsucase `uname -m` in 9bdd7e3d6SMasami Hiramatsu x86_64|i[3456]86) OFFS=5;; 10f7181e5aSNaveen N. Rao ppc64le) OFFS=8;; 11bdd7e3d6SMasami Hiramatsu *) OFFS=0;; 12bdd7e3d6SMasami Hiramatsuesac 13bdd7e3d6SMasami Hiramatsu 149739cee6SMasami HiramatsuN=0 159739cee6SMasami Hiramatsuecho "Setup up kprobes on first available 256 text symbols" 165e466647SMasami Hiramatsugrep -i " t " /proc/kallsyms | cut -f3 -d" " | grep -v .*\\..* | \ 179739cee6SMasami Hiramatsuwhile read i; do 189739cee6SMasami Hiramatsu echo p ${i}+${OFFS} >> kprobe_events && N=$((N+1)) ||: 199739cee6SMasami Hiramatsu test $N -eq 256 && break 209739cee6SMasami Hiramatsudone 219739cee6SMasami Hiramatsu 225cc6c8d4SMasami HiramatsuL=`cat kprobe_events | wc -l` 235cc6c8d4SMasami Hiramatsuif [ $L -ne 256 ]; then 245cc6c8d4SMasami Hiramatsu echo "The number of kprobes events ($L) is not 256" 259739cee6SMasami Hiramatsu exit_fail 269739cee6SMasami Hiramatsufi 27bdd7e3d6SMasami Hiramatsu 28*eab691b1STiezhu Yangcat kprobe_events >> $testlog 29*eab691b1STiezhu Yang 30bdd7e3d6SMasami Hiramatsuecho 1 > events/kprobes/enable 31bdd7e3d6SMasami Hiramatsuecho 0 > events/kprobes/enable 32bdd7e3d6SMasami Hiramatsuecho > kprobe_events 33bdd7e3d6SMasami Hiramatsuecho "Waiting for unoptimizing & freeing" 34bdd7e3d6SMasami Hiramatsusleep 5 35bdd7e3d6SMasami Hiramatsuecho "Done" 36