trigger-hist-mod.tc 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #!/bin/sh
  2. # description: event trigger - test histogram modifiers
  3. do_reset() {
  4. reset_trigger
  5. echo > set_event
  6. clear_trace
  7. }
  8. fail() { #msg
  9. do_reset
  10. echo $1
  11. exit $FAIL
  12. }
  13. if [ ! -f set_event -o ! -d events/sched ]; then
  14. echo "event tracing is not supported"
  15. exit_unsupported
  16. fi
  17. if [ ! -f events/sched/sched_process_fork/trigger ]; then
  18. echo "event trigger is not supported"
  19. exit_unsupported
  20. fi
  21. if [ ! -f events/sched/sched_process_fork/hist ]; then
  22. echo "hist trigger is not supported"
  23. exit_unsupported
  24. fi
  25. reset_tracer
  26. do_reset
  27. echo "Test histogram with execname modifier"
  28. echo 'hist:keys=common_pid.execname' > events/sched/sched_process_fork/trigger
  29. for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
  30. COMM=`cat /proc/$$/comm`
  31. grep "common_pid: $COMM" events/sched/sched_process_fork/hist > /dev/null || \
  32. fail "execname modifier on sched_process_fork did not work"
  33. reset_trigger
  34. echo "Test histogram with hex modifier"
  35. echo 'hist:keys=parent_pid.hex' > events/sched/sched_process_fork/trigger
  36. for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
  37. # Note that $$ is the parent pid. $PID is current PID.
  38. HEX=`printf %x $PID`
  39. grep "parent_pid: $HEX" events/sched/sched_process_fork/hist > /dev/null || \
  40. fail "hex modifier on sched_process_fork did not work"
  41. reset_trigger
  42. echo "Test histogram with syscall modifier"
  43. echo 'hist:keys=id.syscall' > events/raw_syscalls/sys_exit/trigger
  44. for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
  45. grep "id: \(unknown_\|sys_\)" events/raw_syscalls/sys_exit/hist > /dev/null || \
  46. fail "syscall modifier on raw_syscalls/sys_exit did not work"
  47. reset_trigger
  48. echo "Test histgram with log2 modifier"
  49. echo 'hist:keys=bytes_req.log2' > events/kmem/kmalloc/trigger
  50. for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
  51. grep 'bytes_req: ~ 2^[0-9]*' events/kmem/kmalloc/hist > /dev/null || \
  52. fail "log2 modifier on kmem/kmalloc did not work"
  53. do_reset
  54. exit 0