Re: [RFC PATCH 9/9] arm64/debug: Mark debug exception helpers __always_inline
From: Google
Date: Wed Jul 29 2026 - 20:10:41 EST
On Wed, 29 Jul 2026 14:08:46 -0400
Steven Rostedt <steven@xxxxxxxxxxx> wrote:
>
> Masami,
>
>
> On Mon, 27 Jul 2026 12:25:48 +0000
> Hongyan Xia <hongyan.xia@xxxxxxxxxxxxx> wrote:
>
> > From: Hongyan Xia <hongyan.xia@xxxxxxxxxxxxx>
> >
> > Static inline should be enough to actually inline functions for most
> > compilers, but my Clang-19 somehow thinks it's better to outline them.
> > These tiny helpers then live in normal .text sections instead of
> > .noinstr sections, violating noinstr.
> >
> > Mark them __always_inline so the compiler can never outline them.
> >
> > Signed-off-by: Hongyan Xia <hongyan.xia@xxxxxxxxxxxxx>
> > ---
> > arch/arm64/include/asm/esr.h | 2 +-
> > arch/arm64/include/asm/percpu.h | 2 +-
> > arch/arm64/include/asm/preempt.h | 4 ++--
> > arch/arm64/include/asm/ptrace.h | 4 ++--
> > arch/arm64/kernel/debug-monitors.c | 2 +-
> > include/linux/kprobes.h | 8 ++++----
>
> Are you OK with this patch? If so, can you ack it?
Yeah, this patch looks good to me. Anyway these are expected to be
inlined.
Acked-by: Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>
For other patches, Sashiko noted some comments, I need to check it.
Thank you,
>
> -- Steve
>
> > 6 files changed, 11 insertions(+), 11 deletions(-)
> >
>
> [..]
>
> > diff --git a/include/linux/kprobes.h b/include/linux/kprobes.h
> > index 8c4f3bb24429..5880445ed0f0 100644
> > --- a/include/linux/kprobes.h
> > +++ b/include/linux/kprobes.h
> > @@ -384,17 +384,17 @@ static inline void kprobe_ftrace_kill(void) {}
> > struct kprobe *get_kprobe(void *addr);
> >
> > /* kprobe_running() will just return the current_kprobe on this CPU */
> > -static inline struct kprobe *kprobe_running(void)
> > +static __always_inline struct kprobe *kprobe_running(void)
> > {
> > return __this_cpu_read(current_kprobe);
> > }
> >
> > -static inline void reset_current_kprobe(void)
> > +static __always_inline void reset_current_kprobe(void)
> > {
> > __this_cpu_write(current_kprobe, NULL);
> > }
> >
> > -static inline struct kprobe_ctlblk *get_kprobe_ctlblk(void)
> > +static __always_inline struct kprobe_ctlblk *get_kprobe_ctlblk(void)
> > {
> > return this_cpu_ptr(&kprobe_ctlblk);
> > }
> > @@ -449,7 +449,7 @@ static inline struct kprobe *get_kprobe(void *addr)
> > {
> > return NULL;
> > }
> > -static inline struct kprobe *kprobe_running(void)
> > +static __always_inline struct kprobe *kprobe_running(void)
> > {
> > return NULL;
> > }
>
--
Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>