瀏覽代碼

selftest: ftrace: Fix to add 256 kprobe events correctly

Current multiple-kprobe testcase only tries to add
kprobe events on first 256 text symbols. However
kprobes fails to probe on some text symbols (like
blacklisted symbols). Thus in the worst case,
the test can not add any kprobe events.

To avoid that, continue to try adding kprobe events
until 256 events. Also it confirms the number of
registered kprobe events.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
Masami Hiramatsu 8 年之前
父節點
當前提交
9739cee691
共有 1 個文件被更改,包括 17 次插入2 次删除
  1. 17 2
      tools/testing/selftests/ftrace/test.d/kprobe/multiple_kprobes.tc

+ 17 - 2
tools/testing/selftests/ftrace/test.d/kprobe/multiple_kprobes.tc

@@ -12,9 +12,24 @@ case `uname -m` in
   *) OFFS=0;;
   *) OFFS=0;;
 esac
 esac
 
 
-echo "Setup up kprobes on first 256 text symbols"
+if [ -d events/kprobes ]; then
+  echo 0 > events/kprobes/enable
+  echo > kprobe_events
+fi
+
+N=0
+echo "Setup up kprobes on first available 256 text symbols"
 grep -i " t " /proc/kallsyms | cut -f3 -d" " | grep -v .*\\..* | \
 grep -i " t " /proc/kallsyms | cut -f3 -d" " | grep -v .*\\..* | \
-head -n 256 | while read i; do echo p ${i}+${OFFS} ; done > kprobe_events ||:
+while read i; do
+  echo p ${i}+${OFFS} >> kprobe_events && N=$((N+1)) ||:
+  test $N -eq 256 && break
+done
+
+L=`wc -l kprobe_events`
+if [ $L -ne $N ]; then
+  echo "The number of kprobes events ($L) is not $N"
+  exit_fail
+fi
 
 
 echo 1 > events/kprobes/enable
 echo 1 > events/kprobes/enable
 echo 0 > events/kprobes/enable
 echo 0 > events/kprobes/enable