public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH 0/2] arm64: cpucap handling cleanups
@ 2023-12-12 17:09 Mark Rutland
  2023-12-12 17:09 ` [PATCH 1/2] arm64: Cleanup system cpucap handling Mark Rutland
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Mark Rutland @ 2023-12-12 17:09 UTC (permalink / raw)
  To: linux-arm-kernel, Will Deacon; +Cc: ardb, catalin.marinas, mark.rutland

The recent changes to remove cpus_have_const_cap() left a period between
detecting cpucaps and patching alternatives where it is necessary to use
cpus_have_cap() to check that a cpucap has been detected. During this
period we do a few things, and there's a risk that code using a mixture
of cpus_have_cap() and alternative_has_cap_*() sees an inconsistent
state.

These patches rework the cpucap code to minimize the period between
detecting cpucaps and patching the relevant alternatives, deferring
other work until after the alternatives have been patched. This removes
the need for some code to use cpus_have_cap(), and allows them to use
common helper functions that may use alternative_has_cap_*() internally,
making them consistent with other kernel code.

This cleanup was requested by Will across:

  https://lore.kernel.org/linux-arm-kernel/20231127154818.GA8453@willie-the-truck/
  https://lore.kernel.org/linux-arm-kernel/20231127163103.GA8627@willie-the-truck/
  https://lore.kernel.org/linux-arm-kernel/20231127164127.GB8627@willie-the-truck/
  https://lore.kernel.org/linux-arm-kernel/20231128110339.GA9717@willie-the-truck/

The patches are based on the arm64 for-next/fixes branch, whose HEAD
commit is currently:

  f5259997f3e8d6ed ("arm64: Avoid enabling KPTI unnecessarily")

... which patch 1 is partially a cleanup for.

I've given both patches some testing in a few configurations (e.g.
with and without nVHE forced on the command line) to check that
detection and patching works as expected.

Mark.

Mark Rutland (2):
  arm64: Cleanup system cpucap handling
  arm64: Align boot cpucap handling with system cpucap handling

 arch/arm64/include/asm/cpufeature.h |   1 +
 arch/arm64/kernel/cpufeature.c      | 105 +++++++++++++++-------------
 arch/arm64/kernel/fpsimd.c          |   4 +-
 arch/arm64/kernel/smp.c             |  12 +---
 4 files changed, 64 insertions(+), 58 deletions(-)

-- 
2.30.2


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

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-12-13 17:39 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-12 17:09 [PATCH 0/2] arm64: cpucap handling cleanups Mark Rutland
2023-12-12 17:09 ` [PATCH 1/2] arm64: Cleanup system cpucap handling Mark Rutland
2023-12-12 17:09 ` [PATCH 2/2] arm64: Align boot cpucap handling with " Mark Rutland
2023-12-13 17:25 ` [PATCH 0/2] arm64: cpucap handling cleanups Will Deacon
2023-12-13 17:39   ` Mark Rutland

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox