Date: Fri, 31 Aug 2001 21:39:44 +0200 From: Tor.Egge@fast.no To: bde@zeta.org.au Cc: mb@imp.ch, 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: <200108311939.VAA35839@midten.fast.no> In-Reply-To: Your message of "Sat, 1 Sep 2001 05:08:38 %2B1000 (EST)" References: <20010901044125.V5017-100000@besplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
> I see (amost). > > Please format the macro the same as the other macros in the file. Index: apic_vector.s =================================================================== RCS file: /home/ncvs/src/sys/i386/isa/apic_vector.s,v retrieving revision 1.47.2.4 diff -u -r1.47.2.4 apic_vector.s --- apic_vector.s 18 Jul 2000 21:12:41 -0000 1.47.2.4 +++ apic_vector.s 31 Aug 2001 19:24:24 -0000 @@ -653,7 +707,14 @@ 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,) > > > 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. Adding a CLKINTR_PENDING arg to FAST_INTR() doesn't eliminate the race where a wrong value is returned by i8254_get_timecount(). - 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?200108311939.VAA35839>