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>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200203040520.g245KTf54532>