From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1036953AbdEZEpv (ORCPT ); Fri, 26 May 2017 00:45:51 -0400 Received: from mail.kernel.org ([198.145.29.99]:48626 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1035138AbdEZEpl (ORCPT ); Fri, 26 May 2017 00:45:41 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8FB0A239EB Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=mhiramat@kernel.org From: Masami Hiramatsu To: Ingo Molnar , Shuah Khan Cc: Thomas Gleixner , Steven Rostedt , Kees Cook , LKML , x86@kernel.org, Masami Hiramatsu , "Luis R . Rodriguez" , Peter Zijlstra , linux-kselftest@vger.kernel.org Subject: [PATCH] selftests/ftrace: Add a testcase for many kprobe events Date: Fri, 26 May 2017 13:44:54 +0900 Message-Id: <149577388470.11702.11832460851769204511.stgit@devbox> X-Mailer: git-send-email 2.9.4 In-Reply-To: <149570868652.3518.14120169373590420503.stgit@devbox> References: <149570868652.3518.14120169373590420503.stgit@devbox> In-Reply-To: <149570868652.3518.14120169373590420503.stgit@devbox> References: <149570868652.3518.14120169373590420503.stgit@devbox> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add a testcase to test kprobes via ftrace interface with many concurrent kprobe events. This tries to add many kprobe events (up to 256) on kernel functions. To avoid making ftrace-based kprobes (kprobes on fentry), it skips first N bytes (on x86 N=5, on ppc or arm N=4) of function entry. After that, it enables all those events, disable it, and remove it. Since the unoptimization buffer reclaiming will be delayed, after removing events, it will wait enough time. Signed-off-by: Masami Hiramatsu Suggested-by: Steven Rostedt --- This ensures following bug is fixed and no regression. https://lkml.org/lkml/2017/5/25/218 --- .../ftrace/test.d/kprobe/multiple_kprobes.tc | 21 ++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 tools/testing/selftests/ftrace/test.d/kprobe/multiple_kprobes.tc diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/multiple_kprobes.tc b/tools/testing/selftests/ftrace/test.d/kprobe/multiple_kprobes.tc new file mode 100644 index 0000000..f4d1ff7 --- /dev/null +++ b/tools/testing/selftests/ftrace/test.d/kprobe/multiple_kprobes.tc @@ -0,0 +1,21 @@ +#!/bin/sh +# description: Register/unregister many kprobe events + +# ftrace fentry skip size depends on the machine architecture. +# Currently HAVE_KPROBES_ON_FTRACE defined on x86 and powerpc +case `uname -m` in + x86_64|i[3456]86) OFFS=5;; + ppc*) OFFS=4;; + *) OFFS=0;; +esac + +echo "Setup up to 256 kprobes" +grep t /proc/kallsyms | cut -f3 -d" " | grep -v .*\\..* | \ +head -n 256 | while read i; do echo p ${i}+${OFFS} ; done > kprobe_events ||: + +echo 1 > events/kprobes/enable +echo 0 > events/kprobes/enable +echo > kprobe_events +echo "Waiting for unoptimizing & freeing" +sleep 5 +echo "Done"