Re: [patch V4 12/36] entry: Inline irqentry_enter/exit_from/to_user_mode()

From: Mathieu Desnoyers
Date: Tue Sep 09 2025 - 11:00:27 EST


On 2025-09-09 10:10, Thomas Gleixner wrote:
On Tue, Sep 09 2025 at 09:38, Mathieu Desnoyers wrote:

On 2025-09-08 17:31, Thomas Gleixner wrote:
There is no point to have this as a function which just inlines
enter_from_user_mode(). The function call overhead is larger than the
function itself.

I'm wondering if there is a reason for making those actual functions and
not inlines.

The functions sit in kernel/entry/common.c, which are built with
specific compiler flags in kernel/entry/Makefile:

# Prevent the noinstr section from being pestered by sanitizer and other
goodies
# as long as these things cannot be disabled per function.
KASAN_SANITIZE := n
UBSAN_SANITIZE := n
KCOV_INSTRUMENT := n

# Branch profiling isn't noinstr-safe
ccflags-$(CONFIG_TRACE_BRANCH_PROFILING) += -DDISABLE_BRANCH_PROFILING

CFLAGS_REMOVE_common.o = -fstack-protector -fstack-protector-strong
CFLAGS_common.o += -fno-stack-protector

So I wonder if we're not breaking something in the area of "noinstr"
tagging by inlining those into their caller ?

No, because the call sites have to be non-instrumented as well.

OK.

Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>



--
Mathieu Desnoyers
EfficiOS Inc.
https://www.efficios.com