11541Srgrimes#!/bin/sh 21541Srgrimes# SPDX-License-Identifier: GPL-2.0-or-later 31541Srgrimes# Copyright (C) 2023 Akanksha J N, IBM corporation 41541Srgrimes# description: Register/unregister optimized probe 51541Srgrimes# requires: kprobe_events 61541Srgrimes 71541Srgrimescase `uname -m` in 81541Srgrimesx86_64) 91541Srgrimes;; 101541Srgrimesarm*) 111541Srgrimes;; 121541Srgrimesppc*) 131541Srgrimes;; 141541Srgrimes*) 151541Srgrimes echo "Please implement other architecture here" 161541Srgrimes exit_unsupported 171541Srgrimesesac 181541Srgrimes 191541SrgrimesDEFAULT=$(cat /proc/sys/debug/kprobes-optimization) 201541Srgrimesecho 1 > /proc/sys/debug/kprobes-optimization 211541Srgrimesfor i in `seq 0 255`; do 221541Srgrimes echo "p:testprobe $FUNCTION_FORK+${i}" > kprobe_events || continue 231541Srgrimes echo 1 > events/kprobes/enable || continue 241541Srgrimes (echo "forked") 251541Srgrimes PROBE=$(grep $FUNCTION_FORK /sys/kernel/debug/kprobes/list) 261541Srgrimes echo 0 > events/kprobes/enable 271541Srgrimes echo > kprobe_events 281541Srgrimes if echo $PROBE | grep -q OPTIMIZED; then 291541Srgrimes echo "$DEFAULT" > /proc/sys/debug/kprobes-optimization 301541Srgrimes exit_pass 311541Srgrimes fi 321541Srgrimesdone 331541Srgrimesecho "$DEFAULT" > /proc/sys/debug/kprobes-optimization 3450477Speterexit_unresolved 351541Srgrimes