Re: Mehrere Netzwerkkarten nicht lauffähig (3Com, Davicom)

From: Bernd Walter <ticso(at)cicely9.cicely.de>
Date: Thu, 20 Mar 2003 17:41:17 +0100

On Thu, Mar 20, 2003 at 05:06:51PM +0100, Oliver Fromme wrote:
> Oliver Schneider <work(at)kobo.de> wrote:
> > Ist aber äußert nachteilig, da das OS erstmal schauen muß, welche
> > Karte sich auf dem Interrupt gemeldet hat.
>
> Der Overhead dafür ist verschwindend gering. Davon abge-
> sehen werden die Effekte durch Features wie Device-polling
> und Interrupt-Coalescing relativiert.

Die Probleme dabei sind eher tiefer zu suchen, als im Overhead fürs
nachsehen - der ist in der Tat meist vergleichsweise gering.

Bis zu FreeBSD-4.x war das Verhalten so, daß ein Plattentreiber während
kritischer Phasen alle IRQs von Platten gesperrt hat.
Wenn dabei ein Plattencontroller den gleichen IRQ wie eine Seriele
belegt hat, dann wurde die Seriele unnötig mit gesperrt.
Mit zunehmender Anzahl von IRQ Quellen blockiert man letzlich jedesmal
fast alle IRQs.

In FreeBSD-5.x sieht es ein wenig anders aus, hier wird nur der IRQ
gesperrt, der auch wirklich gerade behandelt wird und der Rest wird
durch IRQ Threads und Mutexe behandelt, aber auch hier hat man das
Problem, daß ein Plattentreiber die IRQ Behandlung eines möglicher-
weise wichtigeren Gerätes blockieren kann, nur weil die sich dummer-
weise einen IRQ teilen.
Dummerweise scheinen einige dieser Mutexe derzeit in einigen Fällen
noch zu lange blockieren, sodas in Folge auch IRQs teilweise recht
lange blockiert werden.
Eine Situation, die sich im laufe der 5.x Entwicklung nach und nach
gebessert hat und auch noch weiterhin verbessert.

-- 
B.Walter                   BWCT                http://www.bwct.de
ticso(at)bwct.de                                  info(at)bwct.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Thu 20 Mar 2003 - 17:41:26 CET

search this site