diff options
author | Artur Grabowski <art@cvs.openbsd.org> | 2000-06-05 11:03:06 +0000 |
---|---|---|
committer | Artur Grabowski <art@cvs.openbsd.org> | 2000-06-05 11:03:06 +0000 |
commit | a9373777186bac0acc8148d4108429a9fc82c3c7 (patch) | |
tree | 42ea358aca2501d0078055c9026a71cb55ab667c /sys/arch/mac68k | |
parent | 7f0672f1404b8202f54f66098bec7fd4b3e6725b (diff) |
Changes to exit handling.
cpu_exit no longer frees the vmspace and u-area. This is now handled by a
separate kernel thread "reaper". This is to avoid sleeping locks in the
critical path of cpu_exit where we're not allowed to sleep.
From NetBSD
Diffstat (limited to 'sys/arch/mac68k')
-rw-r--r-- | sys/arch/mac68k/mac68k/locore.s | 12 | ||||
-rw-r--r-- | sys/arch/mac68k/mac68k/vm_machdep.c | 3 |
2 files changed, 6 insertions, 9 deletions
diff --git a/sys/arch/mac68k/mac68k/locore.s b/sys/arch/mac68k/mac68k/locore.s index efe1f0d149a..7e062a830b4 100644 --- a/sys/arch/mac68k/mac68k/locore.s +++ b/sys/arch/mac68k/mac68k/locore.s @@ -1,4 +1,4 @@ -/* $OpenBSD: locore.s,v 1.22 1999/01/20 13:31:16 niklas Exp $ */ +/* $OpenBSD: locore.s,v 1.23 2000/06/05 11:02:59 art Exp $ */ /* $NetBSD: locore.s,v 1.74 1997/02/02 08:17:46 thorpej Exp $ */ /* @@ -1232,12 +1232,10 @@ ENTRY(switch_exit) movl #nullpcb,_curpcb | save state into garbage pcb lea tmpstk,sp | goto a tmp stack - /* Free old process's user area. */ - movl #USPACE,sp@- | size of u-area - movl a0@(P_ADDR),sp@- | address of process's u-area - movl _kernel_map,sp@- | map it was allocated in - jbsr _kmem_free | deallocate it - lea sp@(12),sp | pop args + /* Schedule the vmspace and stack to be freed. */ + movl a0,sp@- | exit2(p) + jbsr _C_LABEL(exit2) + lea sp@(4),sp | pop args jra _cpu_switch diff --git a/sys/arch/mac68k/mac68k/vm_machdep.c b/sys/arch/mac68k/mac68k/vm_machdep.c index 82e722ca7c5..e89a7fe0a9a 100644 --- a/sys/arch/mac68k/mac68k/vm_machdep.c +++ b/sys/arch/mac68k/mac68k/vm_machdep.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vm_machdep.c,v 1.15 1999/10/10 18:29:22 art Exp $ */ +/* $OpenBSD: vm_machdep.c,v 1.16 2000/06/05 11:03:00 art Exp $ */ /* $NetBSD: vm_machdep.c,v 1.21 1996/09/16 18:00:31 scottr Exp $ */ /* @@ -153,7 +153,6 @@ volatile void cpu_exit(p) struct proc *p; { - vmspace_free(p->p_vmspace); (void) splhigh(); cnt.v_swtch++; |