[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200710175705.5c20f7f7@oasis.local.home>
Date: Fri, 10 Jul 2020 17:57:05 -0400
From: Steven Rostedt <rostedt@...dmis.org>
To: Peter Zijlstra <peterz@...radead.org>
Cc: x86@...nel.org, linux-kernel@...r.kernel.org, mhiramat@...nel.org,
bristot@...hat.com, jbaron@...mai.com,
torvalds@...ux-foundation.org, tglx@...utronix.de,
mingo@...nel.org, namit@...are.com, hpa@...or.com, luto@...nel.org,
ard.biesheuvel@...aro.org, jpoimboe@...hat.com,
pbonzini@...hat.com, mathieu.desnoyers@...icios.com,
linux@...musvillemoes.dk
Subject: Re: [PATCH v6 07/17] static_call: Add inline static call
infrastructure
On Fri, 10 Jul 2020 15:38:38 +0200
Peter Zijlstra <peterz@...radead.org> wrote:
> From: Josh Poimboeuf <jpoimboe@...hat.com>
>
> Add infrastructure for an arch-specific CONFIG_HAVE_STATIC_CALL_INLINE
> option, which is a faster version of CONFIG_HAVE_STATIC_CALL. At
> runtime, the static call sites are patched directly, rather than using
> the out-of-line trampolines.
>
> Compared to out-of-line static calls, the performance benefits are more
> modest, but still measurable. Steven Rostedt did some tracepoint
> measurements:
>
> https://lkml.kernel.org/r/20181126155405.72b4f718@gandalf.local.home
>
> This code is heavily inspired by the jump label code (aka "static
> jumps"), as some of the concepts are very similar.
>
> For more details, see the comments in include/linux/static_call.h.
>
> [peterz: simplified interface; merged trampolines]
> Signed-off-by: Josh Poimboeuf <jpoimboe@...hat.com>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@...radead.org>
Reviewed-by: Steven Rostedt (VMware) <rostedt@...dmis.org>
-- Steve
> ---
> arch/Kconfig | 4
> include/asm-generic/vmlinux.lds.h | 7
> include/linux/module.h | 5
> include/linux/static_call.h | 36 ++++
> include/linux/static_call_types.h | 13 +
> kernel/Makefile | 1
> kernel/module.c | 5
> kernel/static_call.c | 303 ++++++++++++++++++++++++++++++++++++++
> 8 files changed, 373 insertions(+), 1 deletion(-)
> create mode 100644 kernel/static_call.c
Powered by blists - more mailing lists