Don't grab the kernel lock for system timer interrupts; this mostly prevents
stalls in system time processing. XXX - deal with non-atomic global time variables updates later.
This commit is contained in:
parent
2ef691da9b
commit
1d67b9c75a
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: locore.s,v 1.182 2003/01/13 15:50:51 mrg Exp $ */
|
/* $NetBSD: locore.s,v 1.183 2003/01/17 10:36:19 pk Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1996 Paul Kranenburg
|
* Copyright (c) 1996 Paul Kranenburg
|
||||||
|
@ -2474,7 +2474,7 @@ softintr_common:
|
||||||
#if defined(MULTIPROCESSOR)
|
#if defined(MULTIPROCESSOR)
|
||||||
/* Grab the kernel lock for interrupt levels <= IPL_CLOCK */
|
/* Grab the kernel lock for interrupt levels <= IPL_CLOCK */
|
||||||
cmp %l3, IPL_CLOCK
|
cmp %l3, IPL_CLOCK
|
||||||
bgu 3f
|
bgeu 3f
|
||||||
st %fp, [%sp + CCFSZ + 16]
|
st %fp, [%sp + CCFSZ + 16]
|
||||||
call _C_LABEL(intr_lock_kernel)
|
call _C_LABEL(intr_lock_kernel)
|
||||||
nop
|
nop
|
||||||
|
@ -2501,7 +2501,7 @@ softintr_common:
|
||||||
|
|
||||||
#if defined(MULTIPROCESSOR)
|
#if defined(MULTIPROCESSOR)
|
||||||
cmp %l3, IPL_CLOCK
|
cmp %l3, IPL_CLOCK
|
||||||
bgu 0f
|
bgeu 0f
|
||||||
nop
|
nop
|
||||||
call _C_LABEL(intr_unlock_kernel)
|
call _C_LABEL(intr_unlock_kernel)
|
||||||
nop
|
nop
|
||||||
|
@ -2649,7 +2649,7 @@ sparc_interrupt_common:
|
||||||
#if defined(MULTIPROCESSOR)
|
#if defined(MULTIPROCESSOR)
|
||||||
/* Grab the kernel lock for interrupt levels <= IPL_CLOCK */
|
/* Grab the kernel lock for interrupt levels <= IPL_CLOCK */
|
||||||
cmp %l3, IPL_CLOCK
|
cmp %l3, IPL_CLOCK
|
||||||
bgu 3f
|
bgeu 3f
|
||||||
st %fp, [%sp + CCFSZ + 16]
|
st %fp, [%sp + CCFSZ + 16]
|
||||||
call _C_LABEL(intr_lock_kernel)
|
call _C_LABEL(intr_lock_kernel)
|
||||||
nop
|
nop
|
||||||
|
@ -2689,7 +2689,7 @@ sparc_interrupt_common:
|
||||||
4:
|
4:
|
||||||
#if defined(MULTIPROCESSOR)
|
#if defined(MULTIPROCESSOR)
|
||||||
cmp %l3, IPL_CLOCK
|
cmp %l3, IPL_CLOCK
|
||||||
bgu 0f
|
bgeu 0f
|
||||||
nop
|
nop
|
||||||
call _C_LABEL(intr_unlock_kernel)
|
call _C_LABEL(intr_unlock_kernel)
|
||||||
nop
|
nop
|
||||||
|
|
Loading…
Reference in New Issue