All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Zyngier <maz@kernel.org>
To: Mark Rutland <mark.rutland@arm.com>
Cc: linux-arm-kernel@lists.infradead.org, catalin.marinas@arm.com,
	james.morse@arm.com, joey.gouly@arm.com, will@kernel.org
Subject: Re: [PATCH v3 00/20] arm64: entry: migrate more code to C
Date: Thu, 27 May 2021 16:31:38 +0100	[thread overview]
Message-ID: <87tumory5h.wl-maz@kernel.org> (raw)
In-Reply-To: <20210525183302.56293-1-mark.rutland@arm.com>

On Tue, 25 May 2021 19:32:42 +0100,
Mark Rutland <mark.rutland@arm.com> wrote:
> 
> This series (based on v5.13-rc2) migrates most of the remaining
> exception triage assembly to C. All the exception vectors are given C
> handlers, so that we can defer all decision making to C code, and the
> assembly code can be made simpler and more uniform. At the same time,
> I've tried to consolidate all the entry sequencing (e.g. reading
> exception registers and calling accounting code) in entry-common.c so
> that this is easier to maintain.
> 
> I was recently informed that `noinstr` wasn't protecting entry sequences
> from KCOV instrumentation, so I've refactored things so that we can
> avoid this by preventing KCOV instrumentation for the entirety of
> entry-common.c. I've done likewise for the low-level idle sequences
> which have the same problems with instrumentation when RCU isn't
> watching, etc.
> 
> I've stopped short of converting the ret_to_user / work_pending loop.
> Converting this cleanly will probably need something like the wrappers
> generated by SYSCALL_DEFINE() to handle the common entry/exit logic, and
> this is easier to build once all the handlers have been converted to C.
> Similar is true for portions of kernel_entry and kernel_exit that could
> be converted to C.
> 
> It should also be possible to generate the vectors and their associated
> assembly handlers in one go by placing these in separate sections and
> using .pushsection and .popsection. I've held off doing this for now as
> this probably requires some changes to the linker script, and regardless
> it should be easier to make that change atop this series.
> 
> So far this has seen some light boot testing, and a day's worth of fuzzing
> under Syzkaller, which I intend to leave to soak for a while.
> 
> I've pushed the series to my arm64/entry/rework branch on kernel.org:
> 
>   https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git/log/?h=arm64/entry/rework
>   git://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git arm64/entry/rework
> 
> I've tagged this version as arm64-entry-rework-20210525.
> 
> Since v1 [1]
> * Rebase to v5.13-rc2
> * Fold NMI entry/exit sequencing into entry-common.c
> * Make NMI entry/exit helpers private to entry-comomn.c
> * Prevent KCOV instrumentation of entry-common.c
> * Prevent KCOV instrumentation of idle code
> 
> Since v2 [2]:
> * Correct commit message description in patch 2
> * Use `el0t` prefix for EL0 handlers for consistency with `el1h` and `el1t`
> * Remove `user_exit_irqoff` macro
> * Remove leftover bad_mode() prototype
> * Add patch to replace el1_inv() with a direct call to __panic_unhandled()
> * Accumulate Reviewed-by tags
> * Typo fixes
> 
> [1] https://lore.kernel.org/r/20210510155621.52811-1-mark.rutland@arm.com
> [2] https://lore.kernel.org/r/20210519123902.2452-1-mark.rutland@arm.com

I've been through the patches and couldn't spot anything wrong,
although I had to apply the patches and look at the final result.
I also tested it lightly on a few odd machines, and nothing caught
fire. So FWIW:

Acked-by: Marc Zyngier <maz@kernel.org>

	M.

-- 
Without deviation from the norm, progress is not possible.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

      parent reply	other threads:[~2021-05-27 16:47 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-25 18:32 [PATCH v3 00/20] arm64: entry: migrate more code to C Mark Rutland
2021-05-25 18:32 ` [PATCH v3 01/20] arm64: remove redundant local_daif_mask() in bad_mode() Mark Rutland
2021-05-27 12:34   ` Marc Zyngier
2021-05-25 18:32 ` [PATCH v3 02/20] arm64: entry: unmask IRQ+FIQ after EL0 handling Mark Rutland
2021-06-04 16:47   ` Will Deacon
2021-05-25 18:32 ` [PATCH v3 03/20] arm64: entry: convert SError handlers to C Mark Rutland
2021-05-25 18:32 ` [PATCH v3 04/20] arm64: entry: move arm64_preempt_schedule_irq to entry-common.c Mark Rutland
2021-05-25 18:32 ` [PATCH v3 05/20] arm64: entry: move preempt logic to C Mark Rutland
2021-06-04 15:43   ` Will Deacon
2021-06-04 16:54     ` Mark Rutland
2021-05-25 18:32 ` [PATCH v3 06/20] arm64: entry: add a call_on_irq_stack helper Mark Rutland
2021-05-25 18:32 ` [PATCH v3 07/20] arm64: entry: convert IRQ+FIQ handlers to C Mark Rutland
2021-05-25 18:32 ` [PATCH v3 08/20] arm64: entry: organise entry handlers consistently Mark Rutland
2021-06-04 16:51   ` Will Deacon
2021-06-04 17:39     ` Mark Rutland
2021-06-04 17:44       ` Will Deacon
2021-06-04 18:01         ` Mark Rutland
2021-05-25 18:32 ` [PATCH v3 09/20] arm64: entry: organise entry vectors consistently Mark Rutland
2021-05-25 18:32 ` [PATCH v3 10/20] arm64: entry: consolidate EL1 exception returns Mark Rutland
2021-05-25 18:32 ` [PATCH v3 11/20] arm64: entry: move bad_mode() to entry-common.c Mark Rutland
2021-06-04 16:57   ` Will Deacon
2021-06-04 17:42     ` Mark Rutland
2021-06-04 17:43       ` Will Deacon
2021-05-25 18:32 ` [PATCH v3 12/20] arm64: entry: improve bad_mode() Mark Rutland
2021-05-25 18:32 ` [PATCH v3 13/20] arm64: entry: template the entry asm functions Mark Rutland
2021-05-25 18:32 ` [PATCH v3 14/20] arm64: entry: handle all vectors with C Mark Rutland
2021-06-04 17:13   ` Will Deacon
2021-05-25 18:32 ` [PATCH v3 15/20] arm64: entry: fold el1_inv() into el1h_64_sync_handler() Mark Rutland
2021-05-25 18:32 ` [PATCH v3 16/20] arm64: entry: split bad stack entry Mark Rutland
2021-05-25 18:32 ` [PATCH v3 17/20] arm64: entry: split SDEI entry Mark Rutland
2021-05-25 18:33 ` [PATCH v3 18/20] arm64: entry: make NMI entry/exit functions static Mark Rutland
2021-05-25 18:33 ` [PATCH v3 19/20] arm64: entry: don't instrument entry code with KCOV Mark Rutland
2021-06-04 17:16   ` Will Deacon
2021-06-04 17:49     ` Mark Rutland
2021-05-25 18:33 ` [PATCH v3 20/20] arm64: idle: don't instrument idle " Mark Rutland
2021-05-27 14:06 ` [PATCH v3 00/20] arm64: entry: migrate more code to C Catalin Marinas
2021-05-27 15:31 ` Marc Zyngier [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=87tumory5h.wl-maz@kernel.org \
    --to=maz@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=james.morse@arm.com \
    --cc=joey.gouly@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=mark.rutland@arm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.