From owner-freebsd-smp Thu Aug 30 8: 5:27 2001 Delivered-To: freebsd-smp@freebsd.org Received: from mailman.zeta.org.au (mailman.zeta.org.au [203.26.10.16]) by hub.freebsd.org (Postfix) with ESMTP id A4D0837B407; Thu, 30 Aug 2001 08:05:20 -0700 (PDT) (envelope-from bde@zeta.org.au) Received: from bde.zeta.org.au (bde.zeta.org.au [203.2.228.102]) by mailman.zeta.org.au (8.9.3/8.8.7) with ESMTP id BAA00840; Fri, 31 Aug 2001 01:01:16 +1000 Date: Fri, 31 Aug 2001 01:01:04 +1000 (EST) From: Bruce Evans X-X-Sender: To: Martin Blapp Cc: , , , , , , , , , Subject: Re: Clock speedup on 4.X FreeBSD SMP and serverworks chipset In-Reply-To: <20010830133205.N676-100000@levais.imp.ch> Message-ID: <20010831001909.W2482-100000@besplex.bde.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-smp@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org On Thu, 30 Aug 2001, Martin Blapp wrote: > Searching the freebsd mailinglists I have seen that you also suffering > under this problem on 4.X. STABLE: I now remember your old mail about this. I (implicitly) suggested a fix, but apparently no one tried it: > On Thu, 21 Jun 2001, Martin Blapp wrote: > > > Just gettimeofday() produces 8sec time drifting now. No need > > to use poll() in our little programm I sent previously. > > > > There is no time drifting if we used a 100% load programm with > > just poll(). > > > > Very strange. Do you have some idea ? > > From clock.c in -current: > > | #ifdef APIC_IO > | #define lapic_irr1 ((volatile u_int *)&lapic)[0x210 / 4] /* XXX XXX */ > | /* XXX this assumes that apic_8254_intr is < 24. */ > | (lapic_irr1 & (1 << apic_8254_intr)))) > | #else > | (inb(IO_ICU1) & 1))) > | #endif > > Maybe apic_8254_intr is not < 24. I think the second XXX comment has > rotted in -current, but it still applies in RELENG_4. I now think apic_8254_intr can't be >= 24 (>= 32 in -current), but "8254 is routed via 8259 and IOAPIC #0 intpin 0" in your probe messages says that the relevant status bit is in lapic_irr0, not in lapic_irr1. Try changing the 0x210 to 0x200. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-smp" in the body of the message