| #!/bin/sh |
| # SPDX-License-Identifier: GPL-2.0-or-later |
| # Copyright (C) 2023 Akanksha J N, IBM corporation |
| # description: Register/unregister optimized probe |
| # requires: kprobe_events |
| |
| case `uname -m` in |
| x86_64) |
| ;; |
| arm*) |
| ;; |
| ppc*) |
| ;; |
| *) |
| echo "Please implement other architecture here" |
| exit_unsupported |
| esac |
| |
| DEFAULT=$(cat /proc/sys/debug/kprobes-optimization) |
| echo 1 > /proc/sys/debug/kprobes-optimization |
| for i in `seq 0 255`; do |
| echo "p:testprobe $FUNCTION_FORK+${i}" > kprobe_events || continue |
| echo 1 > events/kprobes/enable || continue |
| (echo "forked") |
| PROBE=$(grep $FUNCTION_FORK /sys/kernel/debug/kprobes/list) |
| echo 0 > events/kprobes/enable |
| echo > kprobe_events |
| if echo $PROBE | grep -q OPTIMIZED; then |
| echo "$DEFAULT" > /proc/sys/debug/kprobes-optimization |
| exit_pass |
| fi |
| done |
| echo "$DEFAULT" > /proc/sys/debug/kprobes-optimization |
| exit_unresolved |