trigger-multihist.tc 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #!/bin/sh
  2. # SPDX-License-Identifier: GPL-2.0
  3. # description: event trigger - test multiple histogram triggers
  4. # flags: instance
  5. do_reset() {
  6. reset_trigger
  7. echo > set_event
  8. clear_trace
  9. }
  10. fail() { #msg
  11. do_reset
  12. echo $1
  13. exit_fail
  14. }
  15. if [ ! -f set_event -o ! -d events/sched ]; then
  16. echo "event tracing is not supported"
  17. exit_unsupported
  18. fi
  19. if [ ! -f events/sched/sched_process_fork/trigger ]; then
  20. echo "event trigger is not supported"
  21. exit_unsupported
  22. fi
  23. if [ ! -f events/sched/sched_process_fork/hist ]; then
  24. echo "hist trigger is not supported"
  25. exit_unsupported
  26. fi
  27. reset_tracer
  28. do_reset
  29. reset_trigger
  30. echo "Test histogram multiple tiggers"
  31. echo 'hist:keys=parent_pid:vals=child_pid' > events/sched/sched_process_fork/trigger
  32. echo 'hist:keys=parent_comm:vals=child_pid' >> events/sched/sched_process_fork/trigger
  33. for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
  34. grep parent_pid events/sched/sched_process_fork/hist > /dev/null || \
  35. fail "hist trigger on sched_process_fork did not work"
  36. grep child events/sched/sched_process_fork/hist > /dev/null || \
  37. fail "hist trigger on sched_process_fork did not work"
  38. COMM=`cat /proc/$$/comm`
  39. grep "parent_comm: $COMM" events/sched/sched_process_fork/hist > /dev/null || \
  40. fail "string key on sched_process_fork did not work"
  41. reset_trigger
  42. echo "Test histogram with its name"
  43. echo 'hist:name=test_hist:keys=common_pid' > events/sched/sched_process_fork/trigger
  44. for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
  45. grep test_hist events/sched/sched_process_fork/hist > /dev/null || \
  46. fail "named event on sched_process_fork did not work"
  47. echo "Test same named histogram on different events"
  48. echo 'hist:name=test_hist:keys=common_pid' > events/sched/sched_process_exit/trigger
  49. for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
  50. grep test_hist events/sched/sched_process_exit/hist > /dev/null || \
  51. fail "named event on sched_process_fork did not work"
  52. diffs=`diff events/sched/sched_process_exit/hist events/sched/sched_process_fork/hist | wc -l`
  53. test $diffs -eq 0 || fail "Same name histograms are not same"
  54. reset_trigger
  55. do_reset
  56. exit 0