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