Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/uvm undo rev 1.13, which is to say, don't block interrup...



details:   https://anonhg.NetBSD.org/src/rev/775348cf4938
branches:  trunk
changeset: 485010:775348cf4938
user:      chs <chs%NetBSD.org@localhost>
date:      Sun Apr 16 20:52:29 2000 +0000

description:
undo rev 1.13, which is to say, don't block interrupts while deactivating
one pmap and activating another.  this isn't actually necessary (since
pmap_activate() and pmap_deactivate() affect only user-level mappings,
which cannot be accessed from interrupts anyway), and pmap_activate()
is very slow on old sun4c sparcs so we can't block interrupts for this long.
this fixes PR 8322.

diffstat:

 sys/uvm/uvm_map.c |  8 +-------
 1 files changed, 1 insertions(+), 7 deletions(-)

diffs (49 lines):

diff -r 4f1e6333acd2 -r 775348cf4938 sys/uvm/uvm_map.c
--- a/sys/uvm/uvm_map.c Sun Apr 16 19:46:54 2000 +0000
+++ b/sys/uvm/uvm_map.c Sun Apr 16 20:52:29 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: uvm_map.c,v 1.71 2000/04/10 02:21:26 chs Exp $ */
+/*     $NetBSD: uvm_map.c,v 1.72 2000/04/16 20:52:29 chs Exp $ */
 
 /* 
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -2752,7 +2752,6 @@
        struct proc *p; 
 {
        struct vmspace *nvm, *ovm = p->p_vmspace;
-       int s;
  
        if (ovm->vm_refcnt == 1)
                /* nothing to do: vmspace isn't shared in the first place */
@@ -2761,11 +2760,9 @@
        /* make a new vmspace, still holding old one */
        nvm = uvmspace_fork(ovm);
 
-       s = splhigh();                  /* make this `atomic' */
        pmap_deactivate(p);             /* unbind old vmspace */
        p->p_vmspace = nvm; 
        pmap_activate(p);               /* switch to new vmspace */
-       splx(s);                        /* end of critical section */
 
        uvmspace_free(ovm);             /* drop reference to old vmspace */
 }
@@ -2782,7 +2779,6 @@
 {
        struct vmspace *nvm, *ovm = p->p_vmspace;
        vm_map_t map = &ovm->vm_map;
-       int s;
 
 #ifdef __sparc__
        /* XXX cgd 960926: the sparc #ifdef should be a MD hook */
@@ -2835,11 +2831,9 @@
                 * install new vmspace and drop our ref to the old one.
                 */
 
-               s = splhigh();
                pmap_deactivate(p);
                p->p_vmspace = nvm;
                pmap_activate(p);
-               splx(s);
 
                uvmspace_free(ovm);
        }



Home | Main Index | Thread Index | Old Index