From nobody Mon Apr 6 14:55:32 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4DA73C54EE9 for ; Tue, 27 Sep 2022 16:02:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232876AbiI0QCX (ORCPT ); Tue, 27 Sep 2022 12:02:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41280 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232418AbiI0QBk (ORCPT ); Tue, 27 Sep 2022 12:01:40 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 521901EEE1 for ; Tue, 27 Sep 2022 09:01:39 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id C1D4E61AA6 for ; Tue, 27 Sep 2022 16:01:38 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 37C33C433C1; Tue, 27 Sep 2022 16:01:38 +0000 (UTC) Received: from rostedt by gandalf.local.home with local (Exim 4.96) (envelope-from ) id 1odD2m-00G2ue-28; Tue, 27 Sep 2022 12:02:48 -0400 Message-ID: <20220927160248.135304467@goodmis.org> User-Agent: quilt/0.66 Date: Tue, 27 Sep 2022 12:02:29 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Daniel Bristot de Oliveira , , , , , , , , , Yipeng Zou , "Masami Hiramatsu (Google)" Subject: [for-next][PATCH 13/20] tracing: kprobe: Make gen test module work in arm and riscv References: <20220927160216.349640304@goodmis.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Yipeng Zou For now, this selftest module can only work in x86 because of the kprobe cmd was fixed use of x86 registers. This patch adapted to register names under arm and riscv, So that this module can be worked on those platform. Link: https://lkml.kernel.org/r/20220919125629.238242-3-zouyipeng@huawei.com Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Fixes: 64836248dda2 ("tracing: Add kprobe event command generation test mod= ule") Signed-off-by: Yipeng Zou Acked-by: Masami Hiramatsu (Google) Signed-off-by: Steven Rostedt (Google) --- kernel/trace/kprobe_event_gen_test.c | 47 +++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 4 deletions(-) diff --git a/kernel/trace/kprobe_event_gen_test.c b/kernel/trace/kprobe_eve= nt_gen_test.c index e023154be0f8..80e04a1e1977 100644 --- a/kernel/trace/kprobe_event_gen_test.c +++ b/kernel/trace/kprobe_event_gen_test.c @@ -35,6 +35,45 @@ static struct trace_event_file *gen_kprobe_test; static struct trace_event_file *gen_kretprobe_test; =20 +#define KPROBE_GEN_TEST_FUNC "do_sys_open" + +/* X86 */ +#if defined(CONFIG_X86_64) || defined(CONFIG_X86_32) +#define KPROBE_GEN_TEST_ARG0 "dfd=3D%ax" +#define KPROBE_GEN_TEST_ARG1 "filename=3D%dx" +#define KPROBE_GEN_TEST_ARG2 "flags=3D%cx" +#define KPROBE_GEN_TEST_ARG3 "mode=3D+4($stack)" + +/* ARM64 */ +#elif defined(CONFIG_ARM64) +#define KPROBE_GEN_TEST_ARG0 "dfd=3D%x0" +#define KPROBE_GEN_TEST_ARG1 "filename=3D%x1" +#define KPROBE_GEN_TEST_ARG2 "flags=3D%x2" +#define KPROBE_GEN_TEST_ARG3 "mode=3D%x3" + +/* ARM */ +#elif defined(CONFIG_ARM) +#define KPROBE_GEN_TEST_ARG0 "dfd=3D%r0" +#define KPROBE_GEN_TEST_ARG1 "filename=3D%r1" +#define KPROBE_GEN_TEST_ARG2 "flags=3D%r2" +#define KPROBE_GEN_TEST_ARG3 "mode=3D%r3" + +/* RISCV */ +#elif defined(CONFIG_RISCV) +#define KPROBE_GEN_TEST_ARG0 "dfd=3D%a0" +#define KPROBE_GEN_TEST_ARG1 "filename=3D%a1" +#define KPROBE_GEN_TEST_ARG2 "flags=3D%a2" +#define KPROBE_GEN_TEST_ARG3 "mode=3D%a3" + +/* others */ +#else +#define KPROBE_GEN_TEST_ARG0 NULL +#define KPROBE_GEN_TEST_ARG1 NULL +#define KPROBE_GEN_TEST_ARG2 NULL +#define KPROBE_GEN_TEST_ARG3 NULL +#endif + + /* * Test to make sure we can create a kprobe event, then add more * fields. @@ -58,14 +97,14 @@ static int __init test_gen_kprobe_cmd(void) * fields. */ ret =3D kprobe_event_gen_cmd_start(&cmd, "gen_kprobe_test", - "do_sys_open", - "dfd=3D%ax", "filename=3D%dx"); + KPROBE_GEN_TEST_FUNC, + KPROBE_GEN_TEST_ARG0, KPROBE_GEN_TEST_ARG1); if (ret) goto free; =20 /* Use kprobe_event_add_fields to add the rest of the fields */ =20 - ret =3D kprobe_event_add_fields(&cmd, "flags=3D%cx", "mode=3D+4($stack)"); + ret =3D kprobe_event_add_fields(&cmd, KPROBE_GEN_TEST_ARG2, KPROBE_GEN_TE= ST_ARG3); if (ret) goto free; =20 @@ -128,7 +167,7 @@ static int __init test_gen_kretprobe_cmd(void) * Define the kretprobe event. */ ret =3D kretprobe_event_gen_cmd_start(&cmd, "gen_kretprobe_test", - "do_sys_open", + KPROBE_GEN_TEST_FUNC, "$retval"); if (ret) goto free; --=20 2.35.1