1#!/bin/sh 2# SPDX-License-Identifier: GPL-2.0 3# description: event filter function - test event filtering on functions 4# requires: set_event events/kmem/kmem_cache_free/filter 5# flags: instance 6 7fail() { #msg 8 echo $1 9 exit_fail 10} 11 12echo "Test event filter function name" 13echo 0 > tracing_on 14echo 0 > events/enable 15echo > trace 16echo 'call_site.function == exit_mmap' > events/kmem/kmem_cache_free/filter 17echo 1 > events/kmem/kmem_cache_free/enable 18echo 1 > tracing_on 19ls > /dev/null 20echo 0 > events/kmem/kmem_cache_free/enable 21 22hitcnt=`grep kmem_cache_free trace| grep exit_mmap | wc -l` 23misscnt=`grep kmem_cache_free trace| grep -v exit_mmap | wc -l` 24 25if [ $hitcnt -eq 0 ]; then 26 exit_fail 27fi 28 29if [ $misscnt -gt 0 ]; then 30 exit_fail 31fi 32 33address=`grep ' exit_mmap$' /proc/kallsyms | cut -d' ' -f1` 34 35echo "Test event filter function address" 36echo 0 > tracing_on 37echo 0 > events/enable 38echo > trace 39echo "call_site.function == 0x$address" > events/kmem/kmem_cache_free/filter 40echo 1 > events/kmem/kmem_cache_free/enable 41echo 1 > tracing_on 42sleep 1 43echo 0 > events/kmem/kmem_cache_free/enable 44 45hitcnt=`grep kmem_cache_free trace| grep exit_mmap | wc -l` 46misscnt=`grep kmem_cache_free trace| grep -v exit_mmap | wc -l` 47 48if [ $hitcnt -eq 0 ]; then 49 exit_fail 50fi 51 52if [ $misscnt -gt 0 ]; then 53 exit_fail 54fi 55 56reset_events_filter 57 58exit 0 59