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@

Reply via email to