Date: Fri, 17 Nov 2000 14:50:02 -0800 (PST) From: John Baldwin <jhb@FreeBSD.org> To: =?ISO-8859-1?Q?G=E9rard_Roudier?= <groudier@club-internet.fr> Cc: freebsd-alpha@FreeBSD.org, Christian Weisgerber <naddy@mips.inka.de>, Bernd Walter <ticso@cicely8.cicely.de>, Andrew Gallatin <gallatin@cs.duke.edu> Subject: Re: PC164 IDE only works (was: SMPng stability) Message-ID: <XFMail.001117145002.jhb@FreeBSD.org> In-Reply-To: <Pine.LNX.4.10.10011172209490.1542-100000@linux.local>
next in thread | previous in thread | raw e-mail | index | archive | help
On 17-Nov-00 Gérard Roudier wrote: > > > On Fri, 17 Nov 2000, Andrew Gallatin wrote: > >> >> An interesting comment found in the linux kernel sources: >> >> /* In theory, the PC164 has the same interrupt hardware as >> the other Cabriolet based systems. However, something >> got screwed up late in the development cycle which broke >> the interrupt masking hardware. Repeat, it is not >> possible to mask and ack interrupts. At all. >> >> In an attempt to work around this, while processing >> interrupts, we do not allow the IPL to drop below what >> it is currently. This prevents the possibility of >> recursion. >> >> ??? Another option might be to force all PCI devices >> to use edge triggered rather than level triggered >> interrupts. That might be too invasive though. */ >> >> >> Drew > > Interesting, indeed. > > Note that using edge triggerred interrupt for PCI devices is a broken > idea, since it would just break numerous drivers by making them lose > interrupt conditions. Btw, in my opinion, handling level sensitive > interrupts from some scheduled entity (i.e. not in the corresponding > interrupt context) does not look a better idea to me for other reasons. > This let me consider the above hardware not to be broken given proper > handling of level sensitive interrupts. What if your interrupt handler blocks on a mutex? Unless you make all mutexes used by interrupts spin locks (which will chew up CPU time) you lose. Falling back to using all spin mutexes should only be used as a last resort if you can't find a way to allow an interrupt handler to block, and thus, to run in its own context, potentially delayed. > Gérard. -- John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.baldwin.cx/~john/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.001117145002.jhb>