2023-05-16 07:24:54

by Ze Gao

[permalink] [raw]
Subject: [PATCH v2 4/4] rehook, fprobe: do not trace rethook related functions

These functions are already marked as NOKPROBE to prevent recursion and
we have the same reason to blacklist them if rethook is used with fprobe,
since they are beyond the recursion-free region ftrace can guard.

Signed-off-by: Ze Gao <[email protected]>
---
arch/riscv/kernel/probes/Makefile | 2 ++
arch/s390/kernel/Makefile | 1 +
arch/x86/kernel/Makefile | 1 +
3 files changed, 4 insertions(+)

diff --git a/arch/riscv/kernel/probes/Makefile b/arch/riscv/kernel/probes/Makefile
index c40139e9ca47..8265ff497977 100644
--- a/arch/riscv/kernel/probes/Makefile
+++ b/arch/riscv/kernel/probes/Makefile
@@ -4,3 +4,5 @@ obj-$(CONFIG_RETHOOK) += rethook.o rethook_trampoline.o
obj-$(CONFIG_KPROBES_ON_FTRACE) += ftrace.o
obj-$(CONFIG_UPROBES) += uprobes.o decode-insn.o simulate-insn.o
CFLAGS_REMOVE_simulate-insn.o = $(CC_FLAGS_FTRACE)
+CFLAGS_REMOVE_rethook.o = $(CC_FLAGS_FTRACE)
+CFLAGS_REMOVE_rethook_trampoline.o = $(CC_FLAGS_FTRACE)
diff --git a/arch/s390/kernel/Makefile b/arch/s390/kernel/Makefile
index 8983837b3565..6b2a051e1f8a 100644
--- a/arch/s390/kernel/Makefile
+++ b/arch/s390/kernel/Makefile
@@ -10,6 +10,7 @@ CFLAGS_REMOVE_ftrace.o = $(CC_FLAGS_FTRACE)

# Do not trace early setup code
CFLAGS_REMOVE_early.o = $(CC_FLAGS_FTRACE)
+CFLAGS_REMOVE_rethook.o = $(CC_FLAGS_FTRACE)

endif

diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
index dd61752f4c96..4070a01c11b7 100644
--- a/arch/x86/kernel/Makefile
+++ b/arch/x86/kernel/Makefile
@@ -17,6 +17,7 @@ CFLAGS_REMOVE_ftrace.o = -pg
CFLAGS_REMOVE_early_printk.o = -pg
CFLAGS_REMOVE_head64.o = -pg
CFLAGS_REMOVE_sev.o = -pg
+CFLAGS_REMOVE_rethook.o = -pg
endif

KASAN_SANITIZE_head$(BITS).o := n
--
2.40.1



2023-05-16 14:45:16

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH v2 4/4] rehook, fprobe: do not trace rethook related functions

On Tue, 16 May 2023 15:18:30 +0800
Ze Gao <[email protected]> wrote:

> CFLAGS_REMOVE_early.o = $(CC_FLAGS_FTRACE)
> +CFLAGS_REMOVE_rethook.o = $(CC_FLAGS_FTRACE)
>
> endif
>
> diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
> index dd61752f4c96..4070a01c11b7 100644
> --- a/arch/x86/kernel/Makefile
> +++ b/arch/x86/kernel/Makefile
> @@ -17,6 +17,7 @@ CFLAGS_REMOVE_ftrace.o = -pg
> CFLAGS_REMOVE_early_printk.o = -pg
> CFLAGS_REMOVE_head64.o = -pg
> CFLAGS_REMOVE_sev.o = -pg
> +CFLAGS_REMOVE_rethook.o = -pg

Unrelated to this patch, but someday we need to change the -pg above to
$(CC_FLAGS_FTRACE).

-- Steve


> endif
>
> KASAN_SANITIZE_head$(BITS).o := n
> --

2023-05-16 16:09:44

by Masami Hiramatsu

[permalink] [raw]
Subject: Re: [PATCH v2 4/4] rehook, fprobe: do not trace rethook related functions

On Tue, 16 May 2023 15:18:30 +0800
Ze Gao <[email protected]> wrote:

> These functions are already marked as NOKPROBE to prevent recursion and
> we have the same reason to blacklist them if rethook is used with fprobe,
> since they are beyond the recursion-free region ftrace can guard.
>
> Signed-off-by: Ze Gao <[email protected]>

Looks good to me.

Acked-by: Masami Hiramatsu (Google) <[email protected]>

Thank you!

> ---
> arch/riscv/kernel/probes/Makefile | 2 ++
> arch/s390/kernel/Makefile | 1 +
> arch/x86/kernel/Makefile | 1 +
> 3 files changed, 4 insertions(+)
>
> diff --git a/arch/riscv/kernel/probes/Makefile b/arch/riscv/kernel/probes/Makefile
> index c40139e9ca47..8265ff497977 100644
> --- a/arch/riscv/kernel/probes/Makefile
> +++ b/arch/riscv/kernel/probes/Makefile
> @@ -4,3 +4,5 @@ obj-$(CONFIG_RETHOOK) += rethook.o rethook_trampoline.o
> obj-$(CONFIG_KPROBES_ON_FTRACE) += ftrace.o
> obj-$(CONFIG_UPROBES) += uprobes.o decode-insn.o simulate-insn.o
> CFLAGS_REMOVE_simulate-insn.o = $(CC_FLAGS_FTRACE)
> +CFLAGS_REMOVE_rethook.o = $(CC_FLAGS_FTRACE)
> +CFLAGS_REMOVE_rethook_trampoline.o = $(CC_FLAGS_FTRACE)
> diff --git a/arch/s390/kernel/Makefile b/arch/s390/kernel/Makefile
> index 8983837b3565..6b2a051e1f8a 100644
> --- a/arch/s390/kernel/Makefile
> +++ b/arch/s390/kernel/Makefile
> @@ -10,6 +10,7 @@ CFLAGS_REMOVE_ftrace.o = $(CC_FLAGS_FTRACE)
>
> # Do not trace early setup code
> CFLAGS_REMOVE_early.o = $(CC_FLAGS_FTRACE)
> +CFLAGS_REMOVE_rethook.o = $(CC_FLAGS_FTRACE)
>
> endif
>
> diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
> index dd61752f4c96..4070a01c11b7 100644
> --- a/arch/x86/kernel/Makefile
> +++ b/arch/x86/kernel/Makefile
> @@ -17,6 +17,7 @@ CFLAGS_REMOVE_ftrace.o = -pg
> CFLAGS_REMOVE_early_printk.o = -pg
> CFLAGS_REMOVE_head64.o = -pg
> CFLAGS_REMOVE_sev.o = -pg
> +CFLAGS_REMOVE_rethook.o = -pg
> endif
>
> KASAN_SANITIZE_head$(BITS).o := n
> --
> 2.40.1
>


--
Masami Hiramatsu (Google) <[email protected]>

2023-05-17 02:25:38

by Ze Gao

[permalink] [raw]
Subject: Re: [PATCH v2 4/4] rehook, fprobe: do not trace rethook related functions

Got it! Thank you, Steevn. Maybe I can give it a try later :)

Regards,
Ze

On Tue, May 16, 2023 at 10:20 PM Steven Rostedt <[email protected]> wrote:
>
> On Tue, 16 May 2023 15:18:30 +0800
> Ze Gao <[email protected]> wrote:
>
> > CFLAGS_REMOVE_early.o = $(CC_FLAGS_FTRACE)
> > +CFLAGS_REMOVE_rethook.o = $(CC_FLAGS_FTRACE)
> >
> > endif
> >
> > diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
> > index dd61752f4c96..4070a01c11b7 100644
> > --- a/arch/x86/kernel/Makefile
> > +++ b/arch/x86/kernel/Makefile
> > @@ -17,6 +17,7 @@ CFLAGS_REMOVE_ftrace.o = -pg
> > CFLAGS_REMOVE_early_printk.o = -pg
> > CFLAGS_REMOVE_head64.o = -pg
> > CFLAGS_REMOVE_sev.o = -pg
> > +CFLAGS_REMOVE_rethook.o = -pg
>
> Unrelated to this patch, but someday we need to change the -pg above to
> $(CC_FLAGS_FTRACE).
>
> -- Steve
>
>
> > endif
> >
> > KASAN_SANITIZE_head$(BITS).o := n
> > --