public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Mark Rutland <mark.rutland@arm.com>
To: Frederic Weisbecker <frederic@kernel.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Ard Biesheuvel <ardb@kernel.org>,
	Kees Cook <keescook@chromium.org>,
	James Morse <james.morse@arm.com>,
	David Laight <David.Laight@ACULAB.COM>,
	Sami Tolvanen <samitolvanen@google.com>,
	Josh Poimboeuf <jpoimboe@redhat.com>,
	Andy Lutomirski <luto@kernel.org>,
	Quentin Perret <qperret@google.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>
Subject: Re: [GIT PULL] arm64: Support dynamic preemption v3
Date: Tue, 4 Jan 2022 17:08:46 +0000	[thread overview]
Message-ID: <YdR/HnklL9y2Go9u@FVFF77S0Q05N> (raw)
In-Reply-To: <20211220140142.922323-1-frederic@kernel.org>

On Mon, Dec 20, 2021 at 03:01:37PM +0100, Frederic Weisbecker wrote:
> Hi,
> 
> I haven't seen much comments on the static key based version from Mark
> so I don't know which direction we'll eventually take.

Sorry; I had planned to rework that according to your comments, but I hadn't
had a sufficient block of time to do so. I still intend to do that by
v5.17-rc1.

> I still hope we can focus on a unified static call based implementation,
> considering there are other users waiting on arm64 static calls.

The only other user that I am aware of is in tracing, purely as a workaround
for clang CFI having awful performance for modules, and CFI and static calls do
not play well together to begin with due to the way function addresses get
rewritten. I'd rather fix CFI than bodge around it, and that leaves no other
users...

My opinion is that the current shape of the static call API is ill-suited for
arm64 (e.g. due to branch range limitations and so on), and so I'd rather avoid
static calls on arm64. One reason I went for the static-call based trampoline
was that it was functionally equivalent to building the out-of-line static call
trampolines, but was architecture neutral, so I'd rather get that working for
everyone.

Thanks,
Mark.

> So here is a rebase against the latest tip:sched/core and arm64 static
> call proposal.
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
> 	preempt/arm-v4
> 
> HEAD: 6fc1c7e3d83c4e06b019b041894d9bb25f37ac6c
> 
> Thanks,
> 	Frederic
> ---
> 
> Frederic Weisbecker (3):
>       sched/preempt: Prepare for supporting !CONFIG_GENERIC_ENTRY dynamic preemption
>       arm64: Implement IRQ exit preemption static call for dynamic preemption
>       arm64: Implement HAVE_PREEMPT_DYNAMIC
> 
> Ard Biesheuvel (2):
>       static_call: Use non-function types to refer to the trampolines
>       arm64: implement support for static call trampolines
> 
> 
>  arch/Kconfig                         |  1 -
>  arch/arm64/Kconfig                   |  3 ++
>  arch/arm64/include/asm/preempt.h     | 23 ++++++++++-
>  arch/arm64/include/asm/static_call.h | 40 +++++++++++++++++++
>  arch/arm64/kernel/entry-common.c     | 15 +++++--
>  arch/arm64/kernel/patching.c         | 77 ++++++++++++++++++++++++++++++++++--
>  arch/arm64/kernel/vmlinux.lds.S      |  1 +
>  include/linux/entry-common.h         |  3 +-
>  include/linux/static_call.h          |  4 +-
>  include/linux/static_call_types.h    | 11 ++++--
>  kernel/sched/core.c                  |  6 ++-
>  11 files changed, 168 insertions(+), 16 deletions(-)

      parent reply	other threads:[~2022-01-04 17:08 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-20 14:01 [GIT PULL] arm64: Support dynamic preemption v3 Frederic Weisbecker
2021-12-20 14:01 ` [PATCH 1/5] static_call: Use non-function types to refer to the trampolines Frederic Weisbecker
2021-12-20 14:01 ` [PATCH 2/5] arm64: implement support for static call trampolines Frederic Weisbecker
2021-12-20 14:01 ` [PATCH 3/5] sched/preempt: Prepare for supporting !CONFIG_GENERIC_ENTRY dynamic preemption Frederic Weisbecker
2021-12-20 14:01 ` [PATCH 4/5] arm64: Implement IRQ exit preemption static call for " Frederic Weisbecker
2021-12-20 14:01 ` [PATCH 5/5] arm64: Implement HAVE_PREEMPT_DYNAMIC Frederic Weisbecker
2021-12-20 14:03 ` [GIT PULL] arm64: Support dynamic preemption v3 Ard Biesheuvel
2021-12-20 14:07   ` Frederic Weisbecker
2021-12-20 14:04 ` Frederic Weisbecker
2022-01-04 17:08 ` Mark Rutland [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YdR/HnklL9y2Go9u@FVFF77S0Q05N \
    --to=mark.rutland@arm.com \
    --cc=David.Laight@ACULAB.COM \
    --cc=ardb@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=frederic@kernel.org \
    --cc=james.morse@arm.com \
    --cc=jpoimboe@redhat.com \
    --cc=keescook@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=peterz@infradead.org \
    --cc=qperret@google.com \
    --cc=rostedt@goodmis.org \
    --cc=samitolvanen@google.com \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox