From owner-freebsd-hackers Fri Aug 31 12: 9:39 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from mailman.zeta.org.au (mailman.zeta.org.au [203.26.10.16]) by hub.freebsd.org (Postfix) with ESMTP id 0B39E37B403; Fri, 31 Aug 2001 12:09:28 -0700 (PDT) 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 FAA05483; Sat, 1 Sep 2001 05:08:51 +1000 Date: Sat, 1 Sep 2001 05:08:38 +1000 (EST) From: Bruce Evans X-X-Sender: To: Cc: , , , , , , , , , , Subject: Re: Clock speedup on 4.X FreeBSD SMP and serverworks chipset In-Reply-To: <200108310148.DAA80823@midten.fast.no> Message-ID: <20010901044125.V5017-100000@besplex.bde.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Fri, 31 Aug 2001 Tor.Egge@fast.no wrote: > I wrote: > > > The problem here is that CPU#1 fails to hold clock_lock while setting > > clkintr_pending, causing i8254_offset to be stepped twice, first due > > to clkintr_pending, then due to i8254_lastcount being larger than count. > > With this patch applied to RELENG_4, the clock speedup seems to disappear. > > --- apic_vector.s.old Fri Mar 2 13:47:31 2001 > +++ apic_vector.s Fri Aug 31 01:07:53 2001 > @@ -707,7 +707,12 @@ > FAST_INTR(21,fastintr21) > FAST_INTR(22,fastintr22) > FAST_INTR(23,fastintr23) > -#define CLKINTR_PENDING movl $1,CNAME(clkintr_pending) > +#define CLKINTR_PENDING pushl $clock_lock; \ > + call s_lock; \ > + movl $1,CNAME(clkintr_pending); \ > + call s_unlock; \ > + addl $4, %esp > + > INTR(0,intr0, CLKINTR_PENDING) > INTR(1,intr1,) > INTR(2,intr2,) I see (amost). Please format the macro the same as the other macros in the file. > The corresponding patch for -current is This does nothing for -current, because -current uses a fast interrupt handler for clkintr() and FAST_INTR() doesn't take a CLKINTR_PENDING arg. I think this is another bug. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message