Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 31 Aug 2001 21:15:33 +0200
From:      Tor.Egge@fast.no
To:        jhb@FreeBSD.org
Cc:        freebsd-smp@FreeBSD.org, freebsd-hackers@FreeBSD.org, Patrick.Guelat@imp.ch, phk@FreeBSD.org, drussell@saturn-tech.com, roberto@eurocontrol.fr, atrn@zeta.org.au, sthaug@nethelp.no, kpielorz@tdx.co.uk, bkarp@icsi.berkeley.edu, bde@zeta.org.au, mb@imp.ch
Subject:   Re: Clock speedup on 4.X FreeBSD SMP and serverworks chipset
Message-ID:  <200108311915.VAA34938@midten.fast.no>
In-Reply-To: Your message of "Fri, 31 Aug 2001 11:22:30 -0700 (PDT)"
References:  <XFMail.010831112230.jhb@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

> Hmm, does -current even need clkintr_pending anymore?  What is its purpose?

There is a problem if i8254_get_timecount locks clock_lock right
before a rollover but reads the timer right afterwards.  In that case,
a too low value can be returned (resulting in 1/Hz too small time
value) although the result will still be monotonous.

For RELENG_4, which uses Xintr0, this problem is reduced by adding the
clkintr_pending variable (cf. revision 1.134 of clock.c and revision
1.38 of apic_vector.s)

Looking more at the code, I now see that clkintr_pending is never set
in -current due to Xintr0 not being used (Xfastintr0 is now used).
Using a fast interrupt for the clock interrupt gives some of the same
reduction of the race window size as the use of clkintr_pending.

- Tor Egge

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




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