From owner-freebsd-current Mon Sep 11 2: 8:23 2000 Delivered-To: freebsd-current@freebsd.org Received: from mailman.zeta.org.au (mailman.zeta.org.au [203.26.10.16]) by hub.freebsd.org (Postfix) with ESMTP id ACC4E37B423; Mon, 11 Sep 2000 02:08:16 -0700 (PDT) Received: from bde.zeta.org.au (bde.zeta.org.au [203.2.228.102]) by mailman.zeta.org.au (8.8.7/8.8.7) with ESMTP id UAA27663; Mon, 11 Sep 2000 20:08:10 +1100 Date: Mon, 11 Sep 2000 20:08:08 +1100 (EST) From: Bruce Evans X-Sender: bde@besplex.bde.org To: Greg Lehey Cc: Ben Smithurst , current@FreeBSD.ORG Subject: Re: page fault in sched_ithd In-Reply-To: <20000911165558.E19431@wantadilla.lemis.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Mon, 11 Sep 2000, Greg Lehey wrote: > On Monday, 11 September 2000 at 17:44:43 +1100, Bruce Evans wrote: > > On Mon, 11 Sep 2000, Greg Lehey wrote: > >> Independently of that, we need to be able to survive a spurious > >> interrupt on any IRQ. > > > > Not really independent. Spurious interrupts on "any" IRQ can't > > happen, interrupts without a handler are masked. > > Right, I had forgotten that. But it's still defensive programming to > DTRT if we get one, especially if it doesn't cost anything. It's a waste of time to check your own args, and not free here. > > Spurious interrupts on irq7/irq15 can happen because normal masking > > by the irq7/irq15 bit in the ICU doesn't apply (I think they can > > happen even if all bits in the ICU mask are set). They are like an > > NMI in this respect. > > Strange. Does this still happen on modern hardware? Modern ICUs are hopefully bug for bug compatible with old ones. > > The old code accidentally had some defense against nested spurious > > interrupts. Masking in the ICU doesn't work, but masking in `cpl' > > happens to do the right thing (actually the same wrong thing as for > > non-nested spurious interrupts). > > We don't have a cpl any more. That's why I wrote "the old code ... had ...". Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message