Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 7 Oct 2000 17:22:33 +1100 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Valentin Nechayev <netch@carrier.kiev.ua>
Cc:        John Baldwin <jhb@FreeBSD.ORG>, freebsd-current@FreeBSD.ORG
Subject:   Re: microuptime() went backwards
Message-ID:  <Pine.BSF.4.21.0010071714110.4565-100000@besplex.bde.org>
In-Reply-To: <200010062217.BGO31522@burka.carrier.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 7 Oct 2000, Valentin Nechayev wrote:

> At Fri, 6 Oct 2000 22:00:23 +0000 (UTC), jhb wrote:

> JB> tc_windup() wasn't called soon enough to update the timecounter.  Making
> 
> On my system _each_ boot causes hundreds of these messages.
> And as described, long offsets without updating are caused by some
> code in drivers, i.e. DELAY(1000000) in isa/fd.c. Is it nesessary to call
> tc_windup() between iterations in isa_configure? ;|

Not really.  The timecounters overflow to bizarre values if the boot takes
a long time (more than about 4 seconds), but there is no problem unless
something looks at the time before tc_windup() is working and expects the
time to be monotonic.  Previously mi_switch() looked at the time before
tc_windup() was called, and this was impossible to avoid because getting
to tc_windup() involved a context switch.  Now the misbehaviour should
only be visible using a debugger or debugging code that prints the time.

Bruce



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0010071714110.4565-100000>