[PATCH 0/6] arm64: boot cleanups

Mark Rutland mark.rutland at arm.com
Thu May 20 04:50:25 PDT 2021


This series (based on v5.13-rc1) reworks the way we initialize some state at
boot time, simplifying and unifying the logic for primary and secondary CPUs.
This allows us to initalize the per-cpu offsets earlier (which will help to
enable KCSAN), and reduces the data we need to pass to a secondary. In future,
this should allow us to transfer the secondary data atomically and make the
secondary boot paths more robust to arbitrarily long delays.

I've based this on Mahdavan's stacktrace termination patch [1] (duplicated here
unchanged), since it made sense to combine the unwind initialization along with
the other CPU state, and otherwise there would be non-trivial merge conflicts.

I've given the series some boot testing with a variety of configurations,
checking that stacktraces work correctly, etc.

The series can be found on my arm64/boot/rework branch on kernel.org:

  https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git/log/?h=arm64/boot/rework
  git://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git arm64/boot/rework

Thanks,
Mark.

[1] https://lore.kernel.org/r/20210510110026.18061-1-mark.rutland@arm.com

Madhavan T. Venkataraman (1):
  arm64: Implement stack trace termination record

Mark Rutland (5):
  arm64: assembler: add set_this_cpu_offset
  arm64: smp: remove pointless secondary_data maintenance
  arm64: smp: remove stack from secondary_data
  arm64: smp: unify task and sp setup
  arm64: smp: initialize cpu offset earlier

 arch/arm64/include/asm/assembler.h | 18 ++++++++----
 arch/arm64/include/asm/smp.h       |  2 --
 arch/arm64/kernel/asm-offsets.c    |  2 +-
 arch/arm64/kernel/entry.S          |  2 +-
 arch/arm64/kernel/head.S           | 58 ++++++++++++++++++++++++--------------
 arch/arm64/kernel/process.c        |  5 ++++
 arch/arm64/kernel/setup.c          |  6 ----
 arch/arm64/kernel/smp.c            | 14 ++++-----
 arch/arm64/kernel/stacktrace.c     | 16 +++++------
 arch/arm64/mm/proc.S               | 12 ++------
 10 files changed, 72 insertions(+), 63 deletions(-)

-- 
2.11.0




More information about the linux-arm-kernel mailing list