diff options
author | Martin Pieuchot <mpi@cvs.openbsd.org> | 2014-11-11 21:02:07 +0000 |
---|---|---|
committer | Martin Pieuchot <mpi@cvs.openbsd.org> | 2014-11-11 21:02:07 +0000 |
commit | 0f0454a3e3a7965dd26160d19dc445ecdfee3f10 (patch) | |
tree | cdbbc63f587e226a9fb7431d9a12d2e1ce682a2b /sys/arch/socppc | |
parent | 3c90f409c3cd7c499fa942c9844729ff2d6b3a95 (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.c | 5 |
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(); } } |