1#!/bin/sh 2# SPDX-License-Identifier: GPL-2.0 3# description: Checking dynamic events limitations 4# requires: dynamic_events "imm-value":README 5 6# Max arguments limitation 7MAX_ARGS=128 8EXCEED_ARGS=$((MAX_ARGS + 1)) 9 10check_max_args() { # event_header 11 TEST_STRING=$1 12 # Acceptable 13 for i in `seq 1 $MAX_ARGS`; do 14 TEST_STRING="$TEST_STRING \\$i" 15 done 16 echo "$TEST_STRING" >> dynamic_events 17 echo > dynamic_events 18 # Error 19 TEST_STRING="$TEST_STRING \\$EXCEED_ARGS" 20 ! echo "$TEST_STRING" >> dynamic_events 21 return 0 22} 23 24# Kprobe max args limitation 25if grep -q "kprobe_events" README; then 26 check_max_args "p vfs_read" 27fi 28 29# Fprobe max args limitation 30if grep -q "f[:[<group>/][<event>]] <func-name>[%return] [<args>]" README; then 31 check_max_args "f vfs_read" 32fi 33 34# Tprobe max args limitation 35if grep -q "t[:[<group>/][<event>]] <tracepoint> [<args>]" README; then 36 check_max_args "t kfree" 37fi 38 39# Uprobe max args limitation 40if grep -q "uprobe_events" README; then 41 check_max_args "p /bin/sh:10" 42fi 43