In Linux 6.8 wurden bereits Patches implementiert, die TCP beschleunigen

Tux, das Maskottchen des Linux-Kernels

Der Linux-Kernel ist das Rückgrat von Linux-Betriebssystemen (OS) und die grundlegende Schnittstelle zwischen der Hardware eines Computers und seinen Prozessen.

Die Kernel-Version von Linux 6.7 wurde erst vor wenigen Wochen veröffentlicht (Anfang Januar) und seitdem Die Arbeiten zur Entwicklung von Linux 6.8 wurden gestartet und derzeit ist er bereits in seinem zweiten CR und Bisher wurden in verschiedenen Bereichen zahlreiche Verbesserungen erzielt, mit Schwerpunkt auf Netzwerken, Kernprotokollen, BPF, Treiber-APIs, Unterstützung für neue Hardware und Treiberaktualisierungen.

Y zu den wichtigsten Änderungen die bekannt gemacht wurden, einer von ihnen sticht heraus und das ist es Die durch den TCP-Stack vorangetriebenen Verbesserungen wurden implementiert, als führt zu erheblichen Leistungsverbesserungen, insbesondere in Szenarien mit mehreren parallelen TCP-Verbindungen. Diese Verbesserungen haben zu einer Beschleunigung geführt, die bis zu 40 % erreichen kann.

La Die Optimierung konzentrierte sich auf die Neuorganisation der Felder innerhalb von Netzwerk-Stack-Strukturen wie Socks, Netdev, NetNs und Mibs. Diese aus historischen Gründen vorgenommenen Anpassungen haben eine effizientere Verwaltung des Prozessor-Cache ermöglicht. Insbesondere wurde die Nutzung von Cache-Zeilen bei der Datenübertragung minimiert und der Zugriff auf relevante Variablen optimiert.

Derzeit sind Strukturen mit vielen Variablen im Netzwerkstapel chronologisch, logisch und manchmal nach Cache-Zeilenzugriff organisiert.

Mit dieser Reihe von Patches wird versucht, den Kernnetzwerk-Stack neu zu organisieren, um den Verbrauch von Cache-Zeilen während der Datenübertragungsphase zu minimieren. Konkret betrachten wir den TCP/IP-Stack und die Geschwindigkeit in TCP.

Als Ergebnis dieser Überprüfungen Es wurde ein deutlicher Anstieg der TCP-Geschwindigkeit beobachtet, insbesondere wenn es darum geht, eine große Anzahl gleichzeitiger TCP-Verbindungen zu verwalten. Diese Verbesserung ist besonders in Umgebungen bemerkenswert, in denen der Netzwerkbetrieb intensiv ist und eine effiziente Verwaltung von TCP-Verbindungen von entscheidender Bedeutung ist.

Der Weitere Änderungen und Verbesserungeneu zeichnen sich aus:

  • Netlink-basierte Introspektion hinzugefügt, um Speichernutzungs- und Recyclingstatistiken offenzulegen.
  • Überarbeitung der SYN-Cookie-TCP-Verarbeitung für zukünftige eBPF-Kompatibilität.
  • Reduzierter Aufwand für das Parsen von Erweiterungsheadern in GRO.
  • Organisiert die Mitglieder der nftables-Struktur neu, um die Daten beizubehalten, auf die datapath zu Beginn zugreift.
  • Einführung der Unterstützung für das Massenlöschen von MDB-Bridge-Einträgen und die Überwachung von TC-blockierenden Ports.
  • Verifier-Verbesserungen, einschließlich BPF-Logging-Grenzlogik, Logging-Verbesserungen und Unterstützung für globale BPF-Benutzer-Applet-Argumente.
  • Erste Implementierung von TX-Metadaten für AF_XDP mit Unterstützung in mlx5- und stmmac-Treibern.
  • kCFI-Fehler in allen Formen indirekter BPF-Aufrufe behoben.
  • Unterstützung für uid/gid-Optionen beim Mounten von bpffs und zusätzlichen Erweiterungen für den Verifier.
  • Automatische Generierung der Dokumentation der Netlink-Familie aus YAML-Spezifikationen und zusätzlichen Korrekturen an Modulbeschreibungen.
  • Verhinderung einer fehlerhaften Freigabe von Seiten, die zu einem Seitenpool gehören.
  • Abstraktionen in Rust für Netzwerk-PHY-Treiber und Einführung von Warteschlangen und NAPI-Unterstützung in der Netdev-Netlink-Schnittstelle.
  • Benachrichtigungsfilterung für Devlink und Verbesserungen bei der PHY-Validierung.
  • Offenlegen des Teilfrequenz-Offsetwerts und Konvertieren alter Handler in Plattformentfernungsrückrufe, die „void“ zurückgeben.
  • Unterstützung für das Lesen/Schreiben von PHY-MMD-Paketen hinzugefügt.
  • Unterstützung für verschiedene Ethernet-Geräte hinzugefügt, darunter Octeon CN10K-Geräte, Broadcom 5760X P7, Qualcomm SM8550 SoC und Texas Instrument DP83TG720S PHY.
  • Einführung des Bluetooth-Radios von IMC Networks.
  • Upgrades für Hochgeschwindigkeits-NICs, eingebettete NICs, Rechenzentrums-Switches, eingebettete Switches und Ethernet-PHYs.
  • Unterstützt Verbesserungen und Ergänzungen für verschiedene WLAN- und Bluetooth-Controller.
  • Entfernung verschiedener WLAN-Treiber, darunter Libertas, Atmel at76c50x, HostAP, zd1201, Orinoco, Aviator/Raytheon, Planet WL3501 und USB 802.11b RNDIS-Treiber.

schließlich, wenn Sie sind daran interessiert, mehr darüber zu erfahren, können Sie das überprüfen Details im folgenden Link.