CVSROOT:        /cvs
Module name:    src
Changes by:     [email protected]        2023/12/11 15:12:53

Modified files:
        sys/arch/alpha/include: pmap.h 
        sys/arch/amd64/include: pmap.h 
        sys/arch/arm/include: pmap.h 
        sys/arch/arm64/arm64: pmap.c 
        sys/arch/arm64/include: pmap.h 
        sys/arch/hppa/include: pmap.h 
        sys/arch/i386/include: pmap.h 
        sys/arch/m88k/include: pmap.h 
        sys/arch/mips64/include: pmap.h 
        sys/arch/powerpc/include: pmap.h 
        sys/arch/powerpc64/include: pmap.h 
        sys/arch/riscv64/include: pmap.h 
        sys/arch/sh/include: pmap.h 
        sys/arch/sparc64/include: pmap.h 
        sys/kern       : init_main.c 

Log message:
Implement per-CPU caching for the page table page (vp) pool and the PTE
descriptor (pted) pool in the arm64 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 machines with many CPU cores.

This requires adding a new pmap_init_percpu() function that gets called
at the point where kernel is ready to set up the per-CPU pool caches.
Dummy implementations of this function are added for all non-arm64
architectures.  Some other architectures can probably benefit from
providing an actual implementation that sets up per-CPU caches for
pmap pools as well.

ok phessler@, claudio@, miod@, patrick@

Reply via email to