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