www.fabiankeil.de/blog-surrogat/2005/12/15/vivanco-gigabit-pebcak.html

PEBCAK beseitigt – Vivanco GigaBit-NIC beschleunigt

Nachdem ich Africanqueens Kernel mit Polling-Unterstützung versorgt hatte, fielen mir ein paar entscheidende Debugging-Reste auf, an die ich nicht gedacht hatte:

#options        INVARIANTS              # Enable calls of extra sanity checking
#options        INVARIANT_SUPPORT       # Extra sanity checks of internal structures, required by INVARIANTS
#options        WITNESS                 # Enable checks to detect deadlocks and cycles
#options        WITNESS_SKIPSPIN        # Don't run witness on spinlocks for speed

Klarer Fall von PEBCAK. Auskommentieren der vier Optionen hob die vorher bemängelte Netzwerk-Geschwindigkeit auf ungeahnte Höhen. Kopiert wurde von Ramdisk zu Ramdisk, Africanqueen war der Server, der ThinkPad der Client.

ftp> put vmcore.4
local: vmcore.4 remote: vmcore.4
229 Entering Extended Passive Mode (|||61905|)
150 Opening BINARY mode data connection for 'vmcore.4'.
100% |*************************************|   227 MB   22.02 MB/s    00:00 ETA
226 Transfer complete.
ftp> get vmcore.4
local: vmcore.4 remote: vmcore.4
229 Entering Extended Passive Mode (|||51807|)
150 Opening BINARY mode data connection for 'vmcore.4' (238812408 bytes).
100% |*************************************|   227 MB   40.43 MB/s    00:00 ETA
226 Transfer complete.
238812408 bytes received in 00:05 (40.43 MB/s)

Warum re0 fast doppelt so schnell sendet wie empfängt, weiß ich nicht, das war aber auch vorher schon so. Theoretisch könnte auch em0 der Flaschenhals sein, aber Intel hat einen etwas besseren Ruf als RealTek.

Polling

Nach Aktivierung von Polling in re0 sinkt die FTP-Empfangsrate um messbare zwei Megabytes pro Sekunde, dafür wird dabei deutlich weniger Zeit für die Interrupt-Bearbeitung verwendet, wovon ich mir allerdings nichts kaufen kann.

Ohne Polling:

CPU states:  0.8% user,  0.0% nice, 46.5% system, 41.0% interrupt, 11.7% idle

Mit Polling:

CPU states:  0.4% user,  0.0% nice, 30.5% system, 14.1% interrupt, 55.1% idle

Vor Beseitigung der Debugging-Reste konnte die Empfangsleistung von re0 mit Polling um satte fünfzig Prozent erhöht werden, aber 150 Prozent vom 7 Megabyte pro Sekunde sind nichts, womit man angeben könnte.

Bei em0 auf dem Laptop hat Polling keinen messbaren Einfluss auf die FTP-Empfangsrate.