Implement per-CPU caching for the page table page (vp) pool and the PTE
authorjca <jca@openbsd.org>
Wed, 13 Dec 2023 18:26:41 +0000 (18:26 +0000)
committerjca <jca@openbsd.org>
Wed, 13 Dec 2023 18:26:41 +0000 (18:26 +0000)
commit7c73d09c2efe0a1049f5556da74181668d20a1fb
treedaa0eff7cb2e265e0ef836c1d37e14b03096c178
parentf608ccdaec5b4b575311663ef5d58f7f02544a92
Implement per-CPU caching for the page table page (vp) pool and the PTE
descriptor (pted) pool in the [riscv64] pmap implementation.  This
significantly reduces the side-effects of lock contention on the kernel
map lock that is (incorrectly) translated into excessive page daemon
wakeups.  This is not a perfect solution but it does lead to significant
speedups [on the Hifive Unmatched]

Improvement and commit message adapted from kettenis' rev 1.110 commit
to arm64/pmap.c.  ok phessler@ kettenis@
sys/arch/riscv64/include/pmap.h
sys/arch/riscv64/riscv64/pmap.c