functions 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. clear_trace() { # reset trace output
  2. echo > trace
  3. }
  4. disable_tracing() { # stop trace recording
  5. echo 0 > tracing_on
  6. }
  7. enable_tracing() { # start trace recording
  8. echo 1 > tracing_on
  9. }
  10. reset_tracer() { # reset the current tracer
  11. echo nop > current_tracer
  12. }
  13. reset_trigger() { # reset all current setting triggers
  14. grep -v ^# events/*/*/trigger |
  15. while read line; do
  16. cmd=`echo $line | cut -f2- -d: | cut -f1 -d" "`
  17. echo "!$cmd" > `echo $line | cut -f1 -d:`
  18. done
  19. }
  20. reset_events_filter() { # reset all current setting filters
  21. grep -v ^none events/*/*/filter |
  22. while read line; do
  23. echo 0 > `echo $line | cut -f1 -d:`
  24. done
  25. }
  26. reset_ftrace_filter() { # reset all triggers in set_ftrace_filter
  27. echo > set_ftrace_filter
  28. grep -v '^#' set_ftrace_filter | while read t; do
  29. tr=`echo $t | cut -d: -f2`
  30. if [ "$tr" = "" ]; then
  31. continue
  32. fi
  33. if ! grep -q "$t" set_ftrace_filter; then
  34. continue;
  35. fi
  36. name=`echo $t | cut -d: -f1 | cut -d' ' -f1`
  37. if [ $tr = "enable_event" -o $tr = "disable_event" ]; then
  38. tr=`echo $t | cut -d: -f2-4`
  39. limit=`echo $t | cut -d: -f5`
  40. else
  41. tr=`echo $t | cut -d: -f2`
  42. limit=`echo $t | cut -d: -f3`
  43. fi
  44. if [ "$limit" != "unlimited" ]; then
  45. tr="$tr:$limit"
  46. fi
  47. echo "!$name:$tr" > set_ftrace_filter
  48. done
  49. }
  50. disable_events() {
  51. echo 0 > events/enable
  52. }
  53. clear_synthetic_events() { # reset all current synthetic events
  54. grep -v ^# synthetic_events |
  55. while read line; do
  56. echo "!$line" >> synthetic_events
  57. done
  58. }
  59. initialize_ftrace() { # Reset ftrace to initial-state
  60. # As the initial state, ftrace will be set to nop tracer,
  61. # no events, no triggers, no filters, no function filters,
  62. # no probes, and tracing on.
  63. disable_tracing
  64. reset_tracer
  65. reset_trigger
  66. reset_events_filter
  67. disable_events
  68. echo > set_event_pid # event tracer is always on
  69. [ -f set_ftrace_filter ] && echo | tee set_ftrace_*
  70. [ -f set_graph_function ] && echo | tee set_graph_*
  71. [ -f stack_trace_filter ] && echo > stack_trace_filter
  72. [ -f kprobe_events ] && echo > kprobe_events
  73. [ -f uprobe_events ] && echo > uprobe_events
  74. enable_tracing
  75. }