1#!/bin/sh 2# SPDX-License-Identifier: GPL-2.0-or-later 3# Copyright (C) 2023 Akanksha J N, IBM corporation 4# description: Register/unregister optimized probe 5# requires: kprobe_events 6 7case `uname -m` in 8x86_64) 9;; 10arm*) 11;; 12ppc*) 13;; 14*) 15 echo "Please implement other architecture here" 16 exit_unsupported 17esac 18 19DEFAULT=$(cat /proc/sys/debug/kprobes-optimization) 20echo 1 > /proc/sys/debug/kprobes-optimization 21for i in `seq 0 255`; do 22 echo "p:testprobe $FUNCTION_FORK+${i}" > kprobe_events || continue 23 echo 1 > events/kprobes/enable || continue 24 (echo "forked") 25 PROBE=$(grep $FUNCTION_FORK /sys/kernel/debug/kprobes/list) 26 echo 0 > events/kprobes/enable 27 echo > kprobe_events 28 if echo $PROBE | grep -q OPTIMIZED; then 29 echo "$DEFAULT" > /proc/sys/debug/kprobes-optimization 30 exit_pass 31 fi 32done 33echo "$DEFAULT" > /proc/sys/debug/kprobes-optimization 34exit_unresolved 35