lkml.org 
[lkml]   [1998]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Today Linus redesigns the networking driver interface (was Re: tulip driver in ...)
On Sun, 20 Sep 1998, Gerard Roudier wrote:
> On Sun, 20 Sep 1998, Donald Becker wrote:
>
> > And you can fill in my usual flame about people writing drivers that use
> > SA_INTERRUPT on shared interrupt lines. (Perhaps if they would have been
> > called "ugly interrupt" instead "fast interrupt"...)
>
> There is no semantic problem for a driver to tell the kernel its interrupt
> code is fast when it is _actually_ fast.
> On the other hand, the fact that an IRQ may be shared is an hardware
> requirement for PCI and a kernel not allowing this sharing is broken.

Once the interrupt line is shared with PCI semantics, the handler chain no
longer qualifies as "fast".

> Seems to me you are blaming SCSI low-level drivers without naming them.
> The IRQ latency problem we observe in the SCSI layer is not the fault of
> SCSI low-level drivers. Their _own_ interrupt code is generally _fast_,
> as all interrupt code is required to be on a serious O/S.

Yes, SCSI drivers are prime offenders. Many SCSI drivers use "fast"
interrupt handlers and then do a bunch of work in the interrupt handler.
(SCSI bus resets, disconnects, etc.)

The SCSI drivers have been a big support headache for me. Since they are
initialized first they grab the interrupt with SA_INTERRUPT. Most people
don't understand the resulting error, and those that do blame the Ethernet
driver for not being willing to share the interrupt.

> Your flames about IRQ handling hasn't have the effect you expected for the
> simple reason they were not targetted to the right persons. It was a
> kernel architecture issue and a SCSI generic layer driver issue and you
> flames always were against the low-level drivers that were exactly the
> _wrong_ target with regards to the problem.

??? I don't see that -- I still see it as a low-level driver issue. Don't
use SA_INTERRUPT. The higher level issue is that you might want to restructure
everything into a SCSI_BH manner. But even then, don't use SA_INTERRUPT.

Donald Becker becker@cesdis.gsfc.nasa.gov
USRA-CESDIS, Center of Excellence in Space Data and Information Sciences.
Code 930.5, Goddard Space Flight Center, Greenbelt, MD. 20771
301-286-0882 http://cesdis.gsfc.nasa.gov/people/becker/whoiam.html


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:44    [W:0.109 / U:1.284 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site