Date: Thu, 30 Aug 2001 17:14:33 +0200 (CEST) From: Martin Blapp <mb@imp.ch> To: Bruce Evans <bde@zeta.org.au> Cc: <bkarp@icsi.berkeley.edu>, <kpielorz@tdx.co.uk>, <sthaug@nethelp.no>, <atrn@zeta.org.au>, <roberto@eurocontrol.fr>, <drussell@saturn-tech.com>, <phk@FreeBSD.ORG>, <Patrick.Guelat@imp.ch>, <freebsd-hackers@FreeBSD.ORG>, <freebsd-smp@FreeBSD.ORG> Subject: Re: Clock speedup on 4.X FreeBSD SMP and serverworks chipset Message-ID: <20010830171101.I676-100000@levais.imp.ch> In-Reply-To: <20010831001909.W2482-100000@besplex.bde.org>
index | next in thread | previous in thread | raw e-mail
Hi,
Together with Thomas Moestel, I have found that the following patch
seems to solve the gettimeofday() problem and stops the time drift:
--- sys/i386/isa/clock.c Thu Aug 30 17:01:31 2001
+++ sys/i386/isa/clock.c.new Thu Aug 30 17:01:29 2001
@@ -1203,7 +1203,7 @@
high = inb(TIMER_CNTR0);
count = timer0_max_count - ((high << 8) | low);
if (count < i8254_lastcount ||
- (!i8254_ticked && (clkintr_pending ||
+ (!i8254_ticked && (/*clkintr_pending || */
((count < 20 || (!(ef & PSL_I) && count < timer0_max_count /
2u)) &&
#ifdef APIC_IO
#define lapic_irr1 ((volatile u_int *)&lapic)[0x210 / 4] /*
XXX XXX */
We are looking now why this happens.
Bruce: I've looked once what value of apic_8254_intr and it was
below 24. I'll dicuss your change with Thomas and see if that
makes the same diff as our patch.
Martin
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010830171101.I676-100000>
