subsystem-enable.tc 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #!/bin/sh
  2. # SPDX-License-Identifier: GPL-2.0
  3. # description: event tracing - enable/disable with subsystem level files
  4. # flags: instance
  5. do_reset() {
  6. echo > set_event
  7. clear_trace
  8. }
  9. fail() { #msg
  10. do_reset
  11. echo $1
  12. exit_fail
  13. }
  14. yield() {
  15. ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
  16. }
  17. if [ ! -f set_event -o ! -d events/sched ]; then
  18. echo "event tracing is not supported"
  19. exit_unsupported
  20. fi
  21. reset_tracer
  22. do_reset
  23. echo 'sched:*' > set_event
  24. yield
  25. count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
  26. if [ $count -lt 3 ]; then
  27. fail "at least fork, exec and exit events should be recorded"
  28. fi
  29. do_reset
  30. echo 1 > events/sched/enable
  31. yield
  32. count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
  33. if [ $count -lt 3 ]; then
  34. fail "at least fork, exec and exit events should be recorded"
  35. fi
  36. do_reset
  37. echo 0 > events/sched/enable
  38. yield
  39. count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
  40. if [ $count -ne 0 ]; then
  41. fail "any of scheduler events should not be recorded"
  42. fi
  43. do_reset
  44. exit 0