]> git.ipfire.org Git - thirdparty/linux.git/commit
riscv: Improve flush_tlb_kernel_range()
authorAlexandre Ghiti <alexghiti@rivosinc.com>
Mon, 30 Oct 2023 13:30:28 +0000 (14:30 +0100)
committerPalmer Dabbelt <palmer@rivosinc.com>
Mon, 6 Nov 2023 15:20:52 +0000 (07:20 -0800)
commit5e22bfd520ea8740e9a20314d2a890baf304c9d2
treefab0fd3904000adb03b3f01512aa9d12c64f3fc4
parent9d4e8d5fa7dbbb606b355f40d918a1feef821bc5
riscv: Improve flush_tlb_kernel_range()

This function used to simply flush the whole tlb of all harts, be more
subtile and try to only flush the range.

The problem is that we can only use PAGE_SIZE as stride since we don't know
the size of the underlying mapping and then this function will be improved
only if the size of the region to flush is < threshold * PAGE_SIZE.

Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> # On RZ/Five SMARC
Reviewed-by: Samuel Holland <samuel.holland@sifive.com>
Tested-by: Samuel Holland <samuel.holland@sifive.com>
Link: https://lore.kernel.org/r/20231030133027.19542-5-alexghiti@rivosinc.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
arch/riscv/include/asm/tlbflush.h
arch/riscv/mm/tlbflush.c