CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2021/06/18 00:17:28
Modified files:
sys/arch/amd64/amd64: genassym.cf locore.S pmap.c
sys/arch/amd64/include: cpu.h pmap.h
Log message:
The pmap needs to know which CPUs to send IPIs when TLB entries
need to be invalidated. Instead of keeping a bitset of CPUs in
each pmap, have each cpu_info track which pmap it has loaded: replace
pmap->pm_cpus with cpu_info->ci_proc_pmap. This reduces the atomic
operations (and cache thrashing) and simplifies cpu_switchto()
Also, fix a defect in cpu_switchto()'s "am I loading the same cr3?"
test: ignore the CR3_REUSE_PCID bit when checking that. This makes
switching between kernel threads slightly less costly.
over a week in snaps with no complaints
looks ok to mlarkin@ kettenis@ mpi@