lkml.org 
[lkml]   [1998]   [Sep]   [19]   [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 ...)
   Date: Sat, 19 Sep 1998 18:49:56 -0400
From: "Theodore Y. Ts'o" <tytso@MIT.EDU>

The one thing which the BSD implementations have that we *don't*
have is the ability mask just one kind of interrupts (say, serial
or networking interrupts) during some critical section of code.
The only thing we can do is use cli(), which blocks all interrupts.

I want to emphasize what Ted is saying here.

Yeah Linus, spl's suck, but so does our stuff because the machine is
totally catatonic when someone has to block out _any_ kind of
interrupt. How come I can't finish a disk block read while I'm in the
middle with changing network routing tables? How come I can't receive
a few network packets while I push some blocks out to disk? How come
the timer can't come in safely during all of this especially of what
I'm doing is bh atomic anyways?

(Note that most of the reason I liked ANK's final removal of all
explicit cli()'s in the networking was for this reason, and we still
have problems, the bubble just has shifted to the bh packet
processing architecture now :-)

This is heavily demonstrated by ANK's suggested test of bombing a
100Mbit interface with <=128 byte frames, timer interrupts don't even
come in. That shows a fundamental problem with how we do interrupts
under high load.

Later,
David S. Miller
davem@dm.cobaltmicro.com

-
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.124 / U:0.796 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site