:In message <[EMAIL PROTECTED]>, Bruce Ev
:ans writes:
:>On Wed, 29 Mar 2000, Mike Smith wrote:
:>
:>> Just following on from this, one thing that I can see immediately being
:>> very important to me at least is a spinlock in the timecounter structure.
:>> Calcru and various other things call microtime(), and we're going to want
:>> to lock out updates and parallel accesses to the timecounter. What
:>> should we be using for an interrupt-disabling spinlock?
:>
:>Nothing. Accesses to the timecounter struct are already MP safe and fast.
:>Only the i8254 timecounter hardware currently needs interrupt-disabling,
:>but it is hopefully never used on SMP machines.
:
:Worse. It is used by default on SMP machines which don't sport the
:PIIX timecounter.
:
:--
:Poul-Henning Kamp FreeBSD coreteam member
:[EMAIL PROTECTED] "Real hackers run -current on their laptop."
:FreeBSD -- It will take a long time before progress goes too far!
The general problem with the timecounter is that not only is the hardware
indeterminant, but the timecounter structure itself is *NOT* MP safe,
at least not by my read of it.
It also doesn't appear to be interrupt safe. If a microtime() or
getmicrotime() call is interrupted and the interrupting interrupt calls
microtime(), it can corrupt the data returned by the first guy and
even corrupt the structure.
-Matt
Matthew Dillon
<[EMAIL PROTECTED]>
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message