From owner-cvs-all Sun Mar 3 21:20:35 2002 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 9E44337B402; Sun, 3 Mar 2002 21:20:29 -0800 (PST) Received: (from jake@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g245KTf54532; Sun, 3 Mar 2002 21:20:29 -0800 (PST) (envelope-from jake) Message-Id: <200203040520.g245KTf54532@freefall.freebsd.org> From: Jake Burkholder Date: Sun, 3 Mar 2002 21:20:29 -0800 (PST) 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 X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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