18c2ecf20Sopenharmony_ci#!/bin/sh
28c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
38c2ecf20Sopenharmony_ci# description: event trigger - test histogram modifiers
48c2ecf20Sopenharmony_ci# requires: set_event events/sched/sched_process_fork/trigger events/sched/sched_process_fork/hist
58c2ecf20Sopenharmony_ci# flags: instance
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cifail() { #msg
88c2ecf20Sopenharmony_ci    echo $1
98c2ecf20Sopenharmony_ci    exit_fail
108c2ecf20Sopenharmony_ci}
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ciecho "Test histogram with execname modifier"
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ciecho 'hist:keys=common_pid.execname' > events/sched/sched_process_fork/trigger
158c2ecf20Sopenharmony_cifor i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
168c2ecf20Sopenharmony_ciCOMM=`cat /proc/$$/comm`
178c2ecf20Sopenharmony_cigrep "common_pid: $COMM" events/sched/sched_process_fork/hist > /dev/null || \
188c2ecf20Sopenharmony_ci    fail "execname modifier on sched_process_fork did not work"
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_cireset_trigger
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ciecho "Test histogram with hex modifier"
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ciecho 'hist:keys=parent_pid.hex' > events/sched/sched_process_fork/trigger
258c2ecf20Sopenharmony_cifor i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
268c2ecf20Sopenharmony_ci# Note that $$ is the parent pid. $PID is current PID.
278c2ecf20Sopenharmony_ciHEX=`printf %x $PID`
288c2ecf20Sopenharmony_cigrep "parent_pid: $HEX" events/sched/sched_process_fork/hist > /dev/null || \
298c2ecf20Sopenharmony_ci    fail "hex modifier on sched_process_fork did not work"
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_cireset_trigger
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ciecho "Test histogram with syscall modifier"
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ciecho 'hist:keys=id.syscall' > events/raw_syscalls/sys_exit/trigger
368c2ecf20Sopenharmony_cifor i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
378c2ecf20Sopenharmony_cigrep "id: \(unknown_\|sys_\)" events/raw_syscalls/sys_exit/hist > /dev/null || \
388c2ecf20Sopenharmony_ci    fail "syscall modifier on raw_syscalls/sys_exit did not work"
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_cireset_trigger
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ciecho "Test histgram with log2 modifier"
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ciecho 'hist:keys=bytes_req.log2' > events/kmem/kmalloc/trigger
468c2ecf20Sopenharmony_cifor i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
478c2ecf20Sopenharmony_cigrep 'bytes_req: ~ 2^[0-9]*' events/kmem/kmalloc/hist > /dev/null || \
488c2ecf20Sopenharmony_ci    fail "log2 modifier on kmem/kmalloc did not work"
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ciexit 0
51