xref: /openbmc/linux/tools/testing/selftests/ftrace/test.d/trigger/trigger-multihist.tc (revision 4b4193256c8d3bc3a5397b5cd9494c2ad386317d)
176929ab5SMasami Hiramatsu#!/bin/sh
2b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
376929ab5SMasami Hiramatsu# description: event trigger - test multiple histogram triggers
4*3591e90fSMasami Hiramatsu# requires: set_event events/sched/sched_process_fork/trigger events/sched/sched_process_fork/hist
5ca2958f1SSteven Rostedt (VMware)# flags: instance
676929ab5SMasami Hiramatsu
776929ab5SMasami Hiramatsufail() { #msg
876929ab5SMasami Hiramatsu    echo $1
942534b1fSMasami Hiramatsu    exit_fail
1076929ab5SMasami Hiramatsu}
1176929ab5SMasami Hiramatsu
129c249ec3SMasanari Iidaecho "Test histogram multiple triggers"
1376929ab5SMasami Hiramatsu
1476929ab5SMasami Hiramatsuecho 'hist:keys=parent_pid:vals=child_pid' > events/sched/sched_process_fork/trigger
1576929ab5SMasami Hiramatsuecho 'hist:keys=parent_comm:vals=child_pid' >> events/sched/sched_process_fork/trigger
1676929ab5SMasami Hiramatsufor i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
1776929ab5SMasami Hiramatsugrep parent_pid events/sched/sched_process_fork/hist > /dev/null || \
1876929ab5SMasami Hiramatsu    fail "hist trigger on sched_process_fork did not work"
1976929ab5SMasami Hiramatsugrep child events/sched/sched_process_fork/hist > /dev/null || \
2076929ab5SMasami Hiramatsu    fail "hist trigger on sched_process_fork did not work"
2176929ab5SMasami HiramatsuCOMM=`cat /proc/$$/comm`
2276929ab5SMasami Hiramatsugrep "parent_comm: $COMM" events/sched/sched_process_fork/hist > /dev/null || \
2376929ab5SMasami Hiramatsu    fail "string key on sched_process_fork did not work"
2476929ab5SMasami Hiramatsu
2576929ab5SMasami Hiramatsureset_trigger
2676929ab5SMasami Hiramatsu
2776929ab5SMasami Hiramatsuecho "Test histogram with its name"
2876929ab5SMasami Hiramatsu
2976929ab5SMasami Hiramatsuecho 'hist:name=test_hist:keys=common_pid' > events/sched/sched_process_fork/trigger
3076929ab5SMasami Hiramatsufor i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
3176929ab5SMasami Hiramatsugrep test_hist events/sched/sched_process_fork/hist > /dev/null || \
3276929ab5SMasami Hiramatsu    fail "named event on sched_process_fork did not work"
3376929ab5SMasami Hiramatsu
3476929ab5SMasami Hiramatsuecho "Test same named histogram on different events"
3576929ab5SMasami Hiramatsu
3676929ab5SMasami Hiramatsuecho 'hist:name=test_hist:keys=common_pid' > events/sched/sched_process_exit/trigger
3776929ab5SMasami Hiramatsufor i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
3876929ab5SMasami Hiramatsugrep test_hist events/sched/sched_process_exit/hist > /dev/null || \
3976929ab5SMasami Hiramatsu    fail "named event on sched_process_fork did not work"
4076929ab5SMasami Hiramatsu
4176929ab5SMasami Hiramatsudiffs=`diff events/sched/sched_process_exit/hist events/sched/sched_process_fork/hist | wc -l`
4276929ab5SMasami Hiramatsutest $diffs -eq 0 || fail "Same name histograms are not same"
4376929ab5SMasami Hiramatsu
4476929ab5SMasami Hiramatsuexit 0
45