test/benchmark/test.sh - ktap

  1. #!/bin/sh

  2. gcc -o sembench sembench.c -O2 -lpthread

  3. COMMAND="./sembench -t 200 -w 20 -r 30 -o 2"

  4. #------------------------------------------------------------#

  5. echo -e "without tracing:"
  6. #$COMMAND
  7. #$COMMAND
  8. #$COMMAND

  9. #------------------------------------------------------------#

  10. ../../ktap -d -q -e 'trace syscalls:sys_enter_futex {}' &
  11. echo -e "\nktap tracing in dry-run mode: trace syscalls:sys_enter_futex {}"
  12. #$COMMAND
  13. #$COMMAND
  14. #$COMMAND
  15. pid=`pidof ktap`
  16. disown $pid; kill -9 $pid; sleep 1

  17. #------------------------------------------------------------#

  18. ../../ktap -q -e 'trace syscalls:sys_enter_futex {}' &
  19. echo -e "\nktap tracing: trace syscalls:sys_enter_futex {}"
  20. #$COMMAND
  21. #$COMMAND
  22. #$COMMAND
  23. pid=`pidof ktap`
  24. disown $pid; kill -9 $pid; sleep 1

  25. #------------------------------------------------------------#

  26. ../../ktap -q -e 'kdebug.tracepoint("sys_enter_futex", function () {})' &
  27. echo -e '\nktap tracing: kdebug.tracepoint("sys_enter_futex", function () {})'
  28. $COMMAND
  29. $COMMAND
  30. $COMMAND
  31. pid=`pidof ktap`
  32. disown $pid; kill -9 $pid; sleep 1

  33. #------------------------------------------------------------#

  34. ../../ktap -q -e 'kdebug.tracepoint("sys_enter_futex", function () {
  35.     var arg = 1
  36.         if (arg == 0x100 || arg == 0x200 || arg == 0x300 || arg == 0x400 ||
  37.             arg == 0x500 || arg == 0x600 || arg == 0x700 || arg == 0x800 ||
  38.             arg == 0x900 || arg == 0x1000) {
  39.                 printf("%x %x\n", arg1, arg2)
  40.         }}' &

  41. echo -e '\nktap tracing: kdebug.tracepoint("sys_enter_futex", function (xxx) {})'
  42. $COMMAND
  43. $COMMAND
  44. $COMMAND
  45. pid=`pidof ktap`
  46. disown $pid; kill -9 $pid; sleep 1


  47. #------------------------------------------------------------#

  48. perf record -e syscalls:sys_enter_futex -a &
  49. echo -e "\nperf tracing: perf record -e syscalls:sys_enter_futex -a"
  50. $COMMAND
  51. $COMMAND
  52. $COMMAND
  53. pid=`pidof perf`
  54. disown $pid; kill -9 $pid; sleep 1; rm -rf perf.data

  55. #------------------------------------------------------------#

  56. #lttng cannot compiled successful in my box.

  57. #lttng create
  58. #lttng enable-event -k syscalls:sys_enter_futex &
  59. #echo -e "\nlttng tracing: lttng enable-event -k syscalls:sys_enter_futex"
  60. #$COMMAND
  61. #$COMMAND
  62. #$COMMAND
  63. #pid=`pidof perf`
  64. #disown $pid; kill -9 $pid; sleep 1;
  65. #lttng destroy



  66. #------------------------------------------------------------#

  67. ../../ktap -q -e 'trace syscalls:sys_enter_futex {
  68.     if (arg2 == 0x100 || arg2 == 0x200 || arg2 == 0x300 || arg2 == 0x400 ||
  69.         arg2 == 0x500 || arg2 == 0x600 || arg2 == 0x700 || arg2 == 0x800 ||
  70.         arg2 == 0x900 || arg2 == 0x1000) {
  71.         printf("%x %x\n", arg1, arg2)
  72.     }}' &

  73. echo -e "\nktap tracing: trace syscalls:sys_enter_futex { if (arg2 == 0x100 || arg2 == 0x200 ... }"
  74. $COMMAND
  75. $COMMAND
  76. $COMMAND
  77. pid=`pidof ktap`
  78. disown $pid; kill -9 $pid; sleep 1

  79. #------------------------------------------------------------#

  80. ../../ktap -q -e 'trace syscalls:sys_enter_futex /
  81.     uaddr == 0x100 || uaddr == 0x200 || uaddr == 0x300 || uaddr == 0x400 ||
  82.     uaddr == 0x500 || uaddr == 0x600 || uaddr == 0x700 || uaddr == 0x800 ||
  83.     uaddr == 0x900 || uaddr == 0x1000/ {
  84.         printf("%x %x\n", arg1, arg2)
  85.     }' &

  86. echo -e "\nktap tracing: trace syscalls:sys_enter_futex /uaddr == 0x100 || uaddr == 0x200 .../ {}"
  87. $COMMAND
  88. $COMMAND
  89. $COMMAND
  90. pid=`pidof ktap`
  91. disown $pid; kill -9 $pid; sleep 1

  92. #------------------------------------------------------------#
  93. #lttng don't support kerenl event filter now
  94. #------------------------------------------------------------#

  95. #------------------------------------------------------------#
  96. #systemtap compiled failure in my box
  97. #------------------------------------------------------------#

  98. rm -rf ./sembench