summaryrefslogtreecommitdiff
path: root/sys/arch/socppc
diff options
context:
space:
mode:
authorMartin Pieuchot <mpi@cvs.openbsd.org>2014-11-11 21:02:07 +0000
committerMartin Pieuchot <mpi@cvs.openbsd.org>2014-11-11 21:02:07 +0000
commit0f0454a3e3a7965dd26160d19dc445ecdfee3f10 (patch)
treecdbbc63f587e226a9fb7431d9a12d2e1ce682a2b /sys/arch/socppc
parent3c90f409c3cd7c499fa942c9844729ff2d6b3a95 (diff)
Do not held the kernel lock when calling hardclock() and statclock().
This is not necessary, as confirmed by tedu@ and kettenis@. Solve the major contention problem seen on my Dual G5. Reduce the build time of a kernel with two jobs from 5h+ to 18min and expose more easily pmap/memroy corruptions 8) ok kettenis@
Diffstat (limited to 'sys/arch/socppc')
-rw-r--r--sys/arch/socppc/socppc/clock.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/sys/arch/socppc/socppc/clock.c b/sys/arch/socppc/socppc/clock.c
index 4eba2210892..c1ebef574ef 100644
--- a/sys/arch/socppc/socppc/clock.c
+++ b/sys/arch/socppc/socppc/clock.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: clock.c,v 1.11 2014/10/08 10:12:41 mpi Exp $ */
+/* $OpenBSD: clock.c,v 1.12 2014/11/11 21:02:06 mpi Exp $ */
/* $NetBSD: clock.c,v 1.1 1996/09/30 16:34:40 ws Exp $ */
/*
@@ -208,8 +208,6 @@ decr_intr(struct clockframe *frame)
if (ci->ci_cpl >= IPL_CLOCK) {
ci->ci_statspending += nstats;
} else {
- KERNEL_LOCK();
-
nstats += ci->ci_statspending;
ci->ci_statspending = 0;
@@ -239,7 +237,6 @@ decr_intr(struct clockframe *frame)
/* if a tick has occurred while dealing with these,
* dont service it now, delay until the next tick.
*/
- KERNEL_UNLOCK();
}
}