Artikel-Schlagworte: „forcedeth“

Haste forcedeth, haste Ärger – die Auflösung

Mittlerweile kann ich sagen, das sich die Probleme mit dem forcedeth-Treiber gelegt haben. Selbst bei dauerhaften Netzwerk-Verkehr im Gigabit-Bereich und den entsprechenden Festplatten-IO bleibt alles ruhig. Ausschlaggebend war der Boot-Parameter pci=nomsi und die massive Anhebung des Modul-Parameters max_interrupt_work auf 120.

So gut, so schön. Eine Sache bleibt aber noch: der Boot-Parameter pci=nomsi scheint die Wunderwaffe für allerlei Wehwehchen des Linux-Kernels zu sein. Und was ist MSI?

Message Signaled Interrupts, in PCI 2.2 and later and PCI Express, is an alternate form of interrupt from the traditional pin-signalled system; instead of asserting a given IRQ pin, a message is written to a segment of system memory. Each device can have from 1 to 32 unique memory locations in which to write MSI events to. An advantage of the MSI system is that data can be pushed along with the MSI event, allowing for greater functionality.
Wikipedia.org

Der Linux forcedeth-Treiber scheint damit wohl Probleme zu haben und dann schaltet man es eben ab. Ein besserer Treiber wäre mir lieber.

Haste forcedeth, haste Ärger

Es gibt Netzwerk-Hardware unter Linux von der sollte man die Finger lassen. Karten mit RTL- oder VIA-Rhine Chipsätzen können funktionieren – müssen es aber nicht. Genauso sieht es mit Nvidia-Chipsätzen aus, dessen forcedeth-Treiber eine richtige Schneise durch Linux-Foren gezogen hat.

Intressanterweise gibt es Server-Hersteller, wie z.B. Sun, die so etwas verbauen. Deren ersten Opteron-Server hatten noch vier e1000-Karten für die es imho die besten Treiber gibt die man unter Linux haben kann. In der folgenden M2-Serie gab es dann zwei Nvidia und zwei e1000 Karten, eine Entscheidung für die Sun (zu Recht) ordentlich Prügel eingesteckt hat. Man gab sich geläutert und versprach zukünftig das Mixen zu lassen. Wer nun denkt es gäbe wieder vier e1000-Karten liegt falsch, denn z.B. die X4240 hat vier Nvidia-Karten, womit der Spass selbst unter dem supporteten RHEL losgehen kann.

Sun wurde wohl schon selbst davon getroffen, denn in den Server Product Notes gibt es den schönen Eintrag Heavy, Sustained Disk and Network I/O Might Cause Server to Hang or Display “Soft Lockup” Message, der aber nur eine mögliche Fehlermeldung beschreibt. Viel Bekannter dürfte die hier sein:

too many iterations (6) in nv_nic_irq

Damit muss der Spass aber noch nicht Zuende sein, denn an kann nämlich auch noch

kernel: NETDEV WATCHDOG: eth0: transmit timed out
kernel: eth0: Got tx_timeout. irq: 00000037
kernel: eth0: Ring at 1213a2000
kernel: eth0: Dumping tx registers

sehen. Danach ist die Netzwerkkarte tot. Tja und nun kann man Anfangen zu raten. Das Internet ist voll von Lösungsansätzen, die aber alle nicht wirklich passen wollen. Ich hab fürs Erste das tcp segmentation offload des Treibers mit

ethtool -K eth0 tso off

abgeschaltet. Seitdem ist Ruhe – fragt sich nur wie lange und ich kann in der Zwischenzeit mal darüber nachdenken, warum Sun die Nvidia-Netzkarten für eine gute Lösung hält.

Update: Nö, hilft nix. Notfalls kann man im laufenden Betrieb rmmod forcedeth; modprobe forcedeth machen, dann spart man sich einen Neustart.

Archiv