Subject: CVS commit: src/sys/kern
To: None <source-changes@NetBSD.org>
From: Frederick Bruckman <fredb@netbsd.org>
List: source-changes
Date: 06/26/2004 16:31:33
Module Name:	src
Committed By:	fredb
Date:		Sat Jun 26 16:31:33 UTC 2004

Modified Files:
	src/sys/kern: kern_microtime.c

Log Message:
Take the lock earlier, before reading the cycle counter, so that it
doesn't advance while we're waiting on the lock. In fact, try to take
the lock even before blocking interrupts: the lock is locking "lasttime"
against other callers of cc_microtime(), not against the clock routines,
and if we take a clock interrupt while waiting for the lock, that's one
we don't have to take after the computations, but before returning to
the caller, and that makes the data a little fresher to the caller.

Moreover, inverting the order of splXXX() and simple_lock() permits us
to unblock interrupts before doing the long division.

With this, finally, performance of "ntpd" on my MP i386 seems to be no
worse than on non-MP i386, so this may fix PR kern/24207.


To generate a diff of this commit:
cvs rdiff -r1.7 -r1.8 src/sys/kern/kern_microtime.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.