From owner-cvs-all Tue Feb 5 20:34: 2 2002 Delivered-To: cvs-all@freebsd.org Received: from mail5.speakeasy.net (mail5.speakeasy.net [216.254.0.205]) by hub.freebsd.org (Postfix) with ESMTP id AFF7037B41B for ; Tue, 5 Feb 2002 20:33:56 -0800 (PST) Received: (qmail 15178 invoked from network); 6 Feb 2002 04:33:55 -0000 Received: from unknown (HELO laptop.baldwin.cx) ([65.91.155.10]) (envelope-sender ) by mail5.speakeasy.net (qmail-ldap-1.03) with SMTP for ; 6 Feb 2002 04:33:55 -0000 Message-ID: X-Mailer: XFMail 1.4.0 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: <200202060430.g164UQX09984@freefall.freebsd.org> Date: Tue, 05 Feb 2002 23:33:53 -0500 (EST) From: John Baldwin To: John Baldwin Subject: RE: cvs commit: src/sys/alpha/alpha pmap.c src/sys/alpha/include Cc: cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org 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 On 06-Feb-02 John Baldwin wrote: > jhb 2002/02/05 20:30:26 PST > > Modified files: > sys/alpha/alpha pmap.c > sys/alpha/include pmap.h > sys/kern subr_witness.c > Log: > Fixes for alpha pmap on SMP machines: > > - Create a private list of active pmaps rather than abusing the list of all > processes when we need to look up pmaps. The process list needs a sx > lock > and we can't be getting sx locks in the middle of cpu_switch() > (pmap_activate() can call pmap_get_asn() from cpu_switch()). Instead, we > protect the list with a spinlock. This also means the list is shorter > since a pmap can be used by more than one process and we could (at least > in thoery) dink with pmap's more than once, but now we only touch each > pmap once when we have to update all of them. > - Wrap pmap_activate()'s code to get a new ASN in an explicit critical > section > so that when it is called while doing an exec() we can't get preempted. > - Replace splhigh() in pmap_growkernel() with a critical section to prevent > preemption while we are adjusting the kernel page tables. > - Fixes abuse of PCPU_GET(), which doesn't return an L-value. > - Also adds some slight cleanups to the ASN handling by adding some macros > instead of magic numbers in relation to the ASN and ASN generations. > > Reviewed by: dfr I'd like to turn on preemption now on the Alpha same as for x86. The DS20 here with an SMP kernel and preemption turned on seems to be very stable now with these fixes. Side note: I'd forgotten how painful 28.8k dialup was. Then again, when I got this modem I was happy to be doing better than 14.4. :) I will definitely appreciate DSL when I get it hooked up again. -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message