Date: Sun, 3 Mar 2002 21:20:29 -0800 (PST) From: Jake Burkholder <jake@FreeBSD.org> To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/sparc64/include pcpu.h pmap.h tlb.h src/sys/sparc64/sparc64 genassym.c machdep.c pmap.c swtch.s Message-ID: <200203040520.g245KTf54532@freefall.freebsd.org>
index | next in thread | raw e-mail
jake 2002/03/03 21:20:29 PST
Modified files:
sys/sparc64/include pcpu.h pmap.h tlb.h
sys/sparc64/sparc64 genassym.c machdep.c pmap.c swtch.s
Log:
Allocate tlb contexts on the fly in cpu_switch, instead of statically 1 to 1
with pmaps. When the context numbers wrap around we flush all user mappings
from the tlb. This makes use of the array indexed by cpuid to allow a pmap
to have a different context number on a different cpu. If the context numbers
are then divided evenly among cpus such that none are shared, we can avoid
sending tlb shootdown ipis in an smp system for non-shared pmaps. This also
removes a limit of 8192 processes (pmaps) that could be active at any given
time due to running out of tlb contexts.
Inspired by: the brown book
Crucial bugfix from: tmm
Revision Changes Path
1.14 +3 -0 src/sys/sparc64/include/pcpu.h
1.15 +1 -0 src/sys/sparc64/include/pmap.h
1.11 +13 -16 src/sys/sparc64/include/tlb.h
1.25 +7 -0 src/sys/sparc64/sparc64/genassym.c
1.39 +4 -0 src/sys/sparc64/sparc64/machdep.c
1.37 +53 -52 src/sys/sparc64/sparc64/pmap.c
1.17 +108 -34 src/sys/sparc64/sparc64/swtch.s
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200203040520.g245KTf54532>
