Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/netbsd-1-4]: src/sys/uvm Pull up revision 1.72 (requested by chs):
details: https://anonhg.NetBSD.org/src/rev/c241d1cf59a0
branches: netbsd-1-4
changeset: 470534:c241d1cf59a0
user: he <he%NetBSD.org@localhost>
date: Sun Apr 30 12:40:26 2000 +0000
description:
Pull up revision 1.72 (requested by chs):
Undo revision 1.13: don't block interrupts while deactivating
one pmap and activating another, since these only affect user-
level mappings which cannot be accessed from interrupt context.
This fixes Sparc zstty overflows reported in PR#8322, since pmap
operations are slow on old sun4c sparcs.
diffstat:
sys/uvm/uvm_map.c | 8 +-------
1 files changed, 1 insertions(+), 7 deletions(-)
diffs (49 lines):
diff -r 893f4dc4b750 -r c241d1cf59a0 sys/uvm/uvm_map.c
--- a/sys/uvm/uvm_map.c Sun Apr 30 12:30:55 2000 +0000
+++ b/sys/uvm/uvm_map.c Sun Apr 30 12:40:26 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: uvm_map.c,v 1.36.2.3 1999/06/18 17:17:04 perry Exp $ */
+/* $NetBSD: uvm_map.c,v 1.36.2.4 2000/04/30 12:40:26 he Exp $ */
/*
* Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -2300,7 +2300,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 */
@@ -2309,11 +2308,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 */
}
@@ -2330,7 +2327,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 */
@@ -2394,11 +2390,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