powerpc64 head -r344018 stuck sleeping problems: th->th_scale * tc_delta(th) overflows unsigned 64 bits sometimes [patched failed]

Konstantin Belousov kostikbel at gmail.com
Sat Mar 2 14:28:22 UTC 2019


On Sat, Mar 02, 2019 at 02:17:10PM +0000, Poul-Henning Kamp wrote:
> --------
> In message <20190302105652.GD68879 at kib.kiev.ua>, Konstantin Belousov writes:
> 
> >Using more than two timehands increases a chance of reader to try to
> >use outdated timehands.
> 
> No, using only two timehands increase the chance that the reader tries
> to use the timehand which is being updated.
There is no problem with using timehands that is being updated, it is
detected if writes propagate to the reader CPU at all.  Problem is with
too late propagation.

More the timehands, more the propagation can be delayed by the hardware.

>  
> As long as the reader does not use the timehand being updated, using
> a one or two generations old timehand is OK.
> 
> At worst a frequency change happened since then, in which case the
> timestamp will be "delta-f * delta-t" wrong.  Delta-f is in 1e-7
> territory on a system running ntpd(8), so this is below noise level
> for anything but high-precision timekeeping.
> 
> The target-value for delta-t was "a few milliseconds" when I wrote
> timecounters, if somebody has changed that since, I hope they did
> their math first.
> 
> -- 
> Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
> phk at FreeBSD.ORG         | TCP/IP since RFC 956
> FreeBSD committer       | BSD since 4.3-tahoe    
> Never attribute to malice what can adequately be explained by incompetence.


More information about the freebsd-hackers mailing list