Skip site navigation (1)Skip section navigation (2)
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>