From owner-freebsd-current Wed Mar 3 23: 9:43 1999 Delivered-To: freebsd-current@freebsd.org Received: from cs.rice.edu (cs.rice.edu [128.42.1.30]) by hub.freebsd.org (Postfix) with ESMTP id AEF5C14CA3 for ; Wed, 3 Mar 1999 23:09:41 -0800 (PST) (envelope-from alc@cs.rice.edu) Received: from nonpc.cs.rice.edu (nonpc.cs.rice.edu [128.42.1.219]) by cs.rice.edu (8.9.0/8.9.0) with ESMTP id BAA18175 for ; Thu, 4 Mar 1999 01:09:23 -0600 (CST) Received: (from alc@localhost) by nonpc.cs.rice.edu (8.9.2/8.7.3) id BAA33855 for current@freebsd.org; Thu, 4 Mar 1999 01:09:23 -0600 (CST) Date: Thu, 4 Mar 1999 01:09:23 -0600 From: Alan Cox To: current@freebsd.org Subject: SMP users please read Message-ID: <19990304010923.A33835@nonpc.cs.rice.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.95.1i Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG There is an SMP-specific bug in pmap_remove_all. Specifically, it may fail to perform a TLB invalidation on the other processor(s) when one is in fact necessary. I don't have an SMP to test this, so would some of you with SMPs please do a sanity test on this patch? In effect, the patch disables an optimization for uniprocessors that doesn't work under our current SMP code. I will commit it as soon as I hear a few positive reports. Thanks, Alan Index: pmap.c =================================================================== RCS file: /home/ncvs/src/sys/i386/i386/pmap.c,v retrieving revision 1.223 diff -c -r1.223 pmap.c *** pmap.c 1999/02/19 14:25:33 1.223 --- pmap.c 1999/03/04 06:52:21 *************** *** 1991,2001 **** --- 1991,2005 ---- if (pmap_track_modified(pv->pv_va)) vm_page_dirty(ppv->pv_vm_page); } + #ifdef SMP + update_needed = 1; + #else if (!update_needed && ((!curproc || (vmspace_pmap(curproc->p_vmspace) == pv->pv_pmap)) || (pv->pv_pmap == kernel_pmap))) { update_needed = 1; } + #endif TAILQ_REMOVE(&pv->pv_pmap->pm_pvlist, pv, pv_plist); TAILQ_REMOVE(&ppv->pv_list, pv, pv_list); To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message