Skip site navigation (1)Skip section navigation (2)
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>