mbox series

[v5,0/2] arm64: apply G-to-nG conversion for KPTI with MMU enabled

Message ID 20220609174320.4035379-1-ardb@kernel.org (mailing list archive)
Headers show
Series arm64: apply G-to-nG conversion for KPTI with MMU enabled | expand

Message

Ard Biesheuvel June 9, 2022, 5:43 p.m. UTC
Rationale for the series is in patch #2.

Changes since v4:
- fix two bugs in patch #2

Changes since v3 [0]:
- fix issue pointed out by Mark in patch #1, and add his Rb/Tb;
- move shared flag back into the ID map, as this allows us to revert to
  the existing synchronization scheme, and drastically simplify the
  patch - we can move the flag into a separate page later, if needed;
- use symbol alias to access __create_pgd_mapping() so we are not forced
  to expose it in general.

Changes since v2 [1]:
- reinstate optimization that avoids descending into the same page
  tables repeatedly when KASAN is enabled;
- use broadcast TLB maintenance when doing BBM for the temporary
  mappings, to prevent potential TLB conflicts on the secondary cores
  that are running from the same set of temporary page tables;
- remove a wait loop in the C code, by using 'num_cpus + 1' as the
  signal value rather then 0x0;
- declutter and simplify the asm helper code, to make it more
  maintainable.

Cc: will@kernel.org
Cc: maz@kernel.org
Cc: mark.rutland@arm.com
Cc: catalin.marinas@arm.com
Cc: keescook@chromium.org

[0] https://lore.kernel.org/linux-arm-kernel/20220421140339.1329019-1-ardb@kernel.org/
[1] https://lore.kernel.org/linux-arm-kernel/20220413121848.787565-1-ardb@kernel.org/

Ard Biesheuvel (2):
  arm64: kpti-ng: simplify page table traversal logic
  arm64: mm: install KPTI nG mappings with MMU enabled

 arch/arm64/kernel/cpufeature.c |  54 +++++-
 arch/arm64/mm/mmu.c            |   7 +
 arch/arm64/mm/proc.S           | 173 ++++++++++----------
 3 files changed, 145 insertions(+), 89 deletions(-)

Comments

Will Deacon June 23, 2022, 7:31 p.m. UTC | #1
On Thu, 9 Jun 2022 19:43:18 +0200, Ard Biesheuvel wrote:
> Rationale for the series is in patch #2.
> 
> Changes since v4:
> - fix two bugs in patch #2
> 
> Changes since v3 [0]:
> - fix issue pointed out by Mark in patch #1, and add his Rb/Tb;
> - move shared flag back into the ID map, as this allows us to revert to
>   the existing synchronization scheme, and drastically simplify the
>   patch - we can move the flag into a separate page later, if needed;
> - use symbol alias to access __create_pgd_mapping() so we are not forced
>   to expose it in general.
> 
> [...]

Applied to arm64 (for-next/kpti), thanks!

[1/2] arm64: kpti-ng: simplify page table traversal logic
      https://git.kernel.org/arm64/c/c7eff738cf45
[2/2] arm64: mm: install KPTI nG mappings with MMU enabled
      https://git.kernel.org/arm64/c/47546a1912fc

Cheers,