Message ID | 20240327045035.368512-1-samuel.holland@sifive.com (mailing list archive) |
---|---|
Headers | show |
Series | riscv: ASID-related and UP-related TLB flush enhancements | expand |
Hello: This series was applied to riscv/linux.git (for-next) by Palmer Dabbelt <palmer@rivosinc.com>: On Tue, 26 Mar 2024 21:49:41 -0700 you wrote: > This series converts uniprocessor kernel builds to use the same TLB > flushing code as SMP builds, to take advantage of batching and existing > range- and ASID-based TLB flush optimizations. It optimizes out IPIs and > SBI calls based on the online CPU count, which also covers the scenario > where SMP was enabled at build time but only one CPU is present/online. > A final optimization is to use single-ASID flushes wherever possible, to > avoid unnecessary TLB misses for kernel mappings. > > [...] Here is the summary with links: - [v6,01/13] riscv: Flush the instruction cache during SMP bringup https://git.kernel.org/riscv/c/58661a30f1bc - [v6,02/13] riscv: Factor out page table TLB synchronization https://git.kernel.org/riscv/c/aaa56c8f378d - [v6,03/13] riscv: Use IPIs for remote cache/TLB flushes by default https://git.kernel.org/riscv/c/dc892fb44322 - [v6,04/13] riscv: mm: Broadcast kernel TLB flushes only when needed https://git.kernel.org/riscv/c/038ac18aae93 - [v6,05/13] riscv: Only send remote fences when some other CPU is online https://git.kernel.org/riscv/c/9546f00410ed - [v6,06/13] riscv: mm: Combine the SMP and UP TLB flush code https://git.kernel.org/riscv/c/c6026d35b6ab - [v6,07/13] riscv: Apply SiFive CIP-1200 workaround to single-ASID sfence.vma https://git.kernel.org/riscv/c/20e03d702e00 - [v6,08/13] riscv: Avoid TLB flush loops when affected by SiFive CIP-1200 https://git.kernel.org/riscv/c/d6dcdabafcd7 - [v6,09/13] riscv: mm: Introduce cntx2asid/cntx2version helper macros https://git.kernel.org/riscv/c/74cd17792d28 - [v6,10/13] riscv: mm: Use a fixed layout for the MM context ID https://git.kernel.org/riscv/c/f58e5dc45fa9 - [v6,11/13] riscv: mm: Make asid_bits a local variable https://git.kernel.org/riscv/c/8d3e7613f97e - [v6,12/13] riscv: mm: Preserve global TLB entries when switching contexts https://git.kernel.org/riscv/c/8fc21cc672e8 - [v6,13/13] riscv: mm: Always use an ASID to flush mm contexts https://git.kernel.org/riscv/c/daef19263fc1 You are awesome, thank you!