trigger-hist-mod.tc 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #!/bin/sh
  2. # SPDX-License-Identifier: GPL-2.0
  3. # description: event trigger - test histogram modifiers
  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. echo "Test histogram with execname modifier"
  30. echo 'hist:keys=common_pid.execname' > events/sched/sched_process_fork/trigger
  31. for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
  32. COMM=`cat /proc/$$/comm`
  33. grep "common_pid: $COMM" events/sched/sched_process_fork/hist > /dev/null || \
  34. fail "execname modifier on sched_process_fork did not work"
  35. reset_trigger
  36. echo "Test histogram with hex modifier"
  37. echo 'hist:keys=parent_pid.hex' > events/sched/sched_process_fork/trigger
  38. for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
  39. # Note that $$ is the parent pid. $PID is current PID.
  40. HEX=`printf %x $PID`
  41. grep "parent_pid: $HEX" events/sched/sched_process_fork/hist > /dev/null || \
  42. fail "hex modifier on sched_process_fork did not work"
  43. reset_trigger
  44. echo "Test histogram with syscall modifier"
  45. echo 'hist:keys=id.syscall' > events/raw_syscalls/sys_exit/trigger
  46. for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
  47. grep "id: \(unknown_\|sys_\)" events/raw_syscalls/sys_exit/hist > /dev/null || \
  48. fail "syscall modifier on raw_syscalls/sys_exit did not work"
  49. reset_trigger
  50. echo "Test histgram with log2 modifier"
  51. echo 'hist:keys=bytes_req.log2' > events/kmem/kmalloc/trigger
  52. for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
  53. grep 'bytes_req: ~ 2^[0-9]*' events/kmem/kmalloc/hist > /dev/null || \
  54. fail "log2 modifier on kmem/kmalloc did not work"
  55. do_reset
  56. exit 0