mbox series

[v3,0/4] TLB/I$ flush cleanups and improvements

Message ID cover.1552142593.git.gary@garyguo.net (mailing list archive)
Headers show
Series TLB/I$ flush cleanups and improvements | expand

Message

Gary Guo March 9, 2019, 2:52 p.m. UTC
From: Gary Guo <gary@garyguo.net>

Sorry, I didn't realised that there is a for-next branch and is basing
my changes on top of master/HEAD instead. I've now rebased and fix a new
reference of of local_flush_tlb_page.

This patches does:
1. Move long and expensive functions aways from header files.
2. Fix missing arguments for SBI calls.
3. Performance improvements for TLB flush.

Changes since v2:
 - Replace __setup with early_param
 - Rebase on top of for-next

Changes since v1:
 - Use kernel boot parameters instead of Kconfig
 - Style fixes

Gary Guo (4):
  riscv: move flush_icache_{all,mm} to cacheflush.c
  riscv: move switch_mm to its own file
  riscv: fix sbi_remote_sfence_vma{,_asid}.
  riscv: rewrite tlb flush for performance

 arch/riscv/include/asm/cacheflush.h  |   2 +-
 arch/riscv/include/asm/mmu_context.h |  59 +-------
 arch/riscv/include/asm/pgtable.h     |   2 +-
 arch/riscv/include/asm/sbi.h         |  19 ++-
 arch/riscv/include/asm/tlbflush.h    |  76 ++++------
 arch/riscv/kernel/smp.c              |  49 ------
 arch/riscv/mm/Makefile               |   2 +
 arch/riscv/mm/cacheflush.c           |  61 ++++++++
 arch/riscv/mm/context.c              |  77 ++++++++++
 arch/riscv/mm/init.c                 |   2 +-
 arch/riscv/mm/tlbflush.c             | 216 +++++++++++++++++++++++++++
 11 files changed, 404 insertions(+), 161 deletions(-)
 create mode 100644 arch/riscv/mm/context.c
 create mode 100644 arch/riscv/mm/tlbflush.c