lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Tue, 4 Jan 2022 17:08:46 +0000
From:   Mark Rutland <mark.rutland@....com>
To:     Frederic Weisbecker <frederic@...nel.org>
Cc:     LKML <linux-kernel@...r.kernel.org>,
        Steven Rostedt <rostedt@...dmis.org>,
        Peter Zijlstra <peterz@...radead.org>,
        Ard Biesheuvel <ardb@...nel.org>,
        Kees Cook <keescook@...omium.org>,
        James Morse <james.morse@....com>,
        David Laight <David.Laight@...LAB.COM>,
        Sami Tolvanen <samitolvanen@...gle.com>,
        Josh Poimboeuf <jpoimboe@...hat.com>,
        Andy Lutomirski <luto@...nel.org>,
        Quentin Perret <qperret@...gle.com>,
        Catalin Marinas <catalin.marinas@....com>,
        Will Deacon <will@...nel.org>
Subject: Re: [GIT PULL] arm64: Support dynamic preemption v3

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(-)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ