Date: Thu, 4 Mar 1999 01:09:23 -0600 From: Alan Cox <alc@cs.rice.edu> To: current@freebsd.org Subject: SMP users please read Message-ID: <19990304010923.A33835@nonpc.cs.rice.edu>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990304010923.A33835>