Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Nov 1998 06:10:29 -0800
From:      Mike Smith <mike@smith.net.au>
To:        Poul-Henning Kamp <phk@critter.freebsd.dk>
Cc:        Mike Smith <mike@smith.net.au>, cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG
Subject:   Re: cvs commit: src/sys/kern kern_clock.c 
Message-ID:  <199811301410.GAA03905@dingo.cdrom.com>
In-Reply-To: Your message of "Mon, 30 Nov 1998 14:51:59 %2B0100." <12028.912433919@critter.freebsd.dk> 

next in thread | previous in thread | raw e-mail | index | archive | help
> In message <199811301338.FAA03590@dingo.cdrom.com>, Mike Smith writes:
> >> phk         1998/11/29 12:31:03 PST
> >> 
> >>   Modified files:
> >>     sys/kern             kern_clock.c 
> >>   Log:
> >>   Make the previous behaviour the default, add a sysctl which you
> >>   can set if your hw/sw produces the "calcru negative..." message.
> >
> >The sysctl should be automatically set by the "calcru negative ..."
> >detection code.
> 
> No, because at that time you clock has already been warped out of
> shape.  People need to know and be aware that their sw/hw has a problem.

Since we can't do this except by screwing up, and for that one time you 
can fudge things so that they're not fatal, I think this is a better 
approach.

> >>   Setting the alternate method (sysctl -w kern.timecounter.method=1)
> >>   makes the the get{nano|micro}*() functions call the real thing at
> >>   resulting in a measurable but minor overhead.
> >
> >This smells like a botch, not a fix.
> 
> No, it isn't.  get{nano|micro}* are supposed to be precise to within
> a tick, for things where better precision is pointless and where
> speed is important.  After I changed the method to the one which is
> now known as "1", it became imprecise to within one second, and that
> broke various stuff.

If you're suggesting that the only workaround for this so-called 
"broken" hardware is to degrade all of our timekeeping resolution to 
+/- 1 second, then I think that "botch" is being far too kind.

I hope I'm misreading you here; I can't see where you get off 
suggesting that the calcru problems are "rare"; I've seen them on every 
Alpha I've used, for example, and I simply don't buy that they're 
something that can't be dealt with correctly in software.  Everyone 
else seems to get it right; we should too.

> >>   I decided to NOT have the "calcru" change the method automatically
> >>   because you should be aware of this problem if you have it.
> >
> >Bad.  There is now no correspondence between the diagnostic and the 
> >fix, and the user has to vector through a small number of people in 
> >order to resolve their problems.  
> 
> I submitted a FAQ entry.

Try putting the sysctl name in the error message.  Or just have the 
error fix it.

-- 
\\  Sometimes you're ahead,       \\  Mike Smith
\\  sometimes you're behind.      \\  mike@smith.net.au
\\  The race is long, and in the  \\  msmith@freebsd.org
\\  end it's only with yourself.  \\  msmith@cdrom.com



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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199811301410.GAA03905>