Versionshinweise

HFTKernel 7.3.x: Versionshinweise.

Durchsuchen Sie die Kernel-Reihe 7.3.x von neu nach alt, mit den Upstream-Änderungen, die für vorhersehbare CPU-Ausführung, stabile Netzwerke, genaue Zeitmessung, Virtualisierung, Speicherverhalten und messbare latency-Ausläufer am relevantesten sind.

Öffentliches Änderungsprotokoll

Versionshinweise

Jeder Eintrag konzentriert sich auf Upstream-Änderungen, die die Hauptziele von HFTKernel unterstützen: minimaler jitter, kontrollierte tail latency, stabiler Datenpfad, genaue Zeitmessung und messbares Verhalten unter Last.

HFTKernel 7.3.3

Bessere Paketreihenfolge, zuverlässigerer I/O-Fortschritt und weniger unnötiges polling

Neuester Eintrag der Reihe 7.3.x

Upstream-Basis: Linux 7.3.3. Kumulative Änderungen: Linux 7.3.2 und 7.3.3 gegenüber 7.3.1. Upstream-Veröffentlichungsdatum für beide Versionen: 6. November 2026.

Geordnete Übertragung bei belasteten Queues

Der Netzwerk-Scheduler erhält die Paketreihenfolge, wenn ein Treiber NETDEV_TX_BUSY zurückgibt. Erneut eingereihte Pakete gelangen in ihrer ursprünglichen Reihenfolge an den Anfang der Liste ausstehender Pakete.

Im Upstream-TCP-Test mit vier Streams über ein veth-Paar mit einer pfifo qdisc stieg der throughput von ungefähr 40 auf 76 Gbps. Die Änderung beseitigte etwa 1.3 Millionen out-of-order segments und 15,000 bis 37,000 retransmissions pro Testintervall von 15 Sekunden.

Konsistenter VLAN hardware offload

Bei reorder_hdr=off übergeben geeignete Frames ihren VLAN tag an die Metadata für die NIC-seitige Einfügung und behalten gleichzeitig das erwartete Layout am Ausgang des VLAN-Geräts bei. Dadurch bleibt die Hardware-Einfügung von VLAN tags mit checksum offload und segmentation offload kompatibel, einschließlich der entsprechenden packet-socket- und AF_XDP copy-mode-Pfade.

NAPI busy polling mit Berücksichtigung der Deadline

io_uring begrenzt busy polling auf das verbleibende Warteintervall. Ist eine absolute Deadline bereits abgelaufen, wird das polling-Budget auf null gesetzt, sodass das Warten umgehend beendet werden kann.

Dynamisch erfasste NAPI-Einträge verfallen jetzt nach 60 Sekunden Inaktivität. Lange laufende Rings prüfen veraltete Queue-Kennungen nicht weiter und richten ihr polling damit auf aktuellen Traffic aus.

Zuverlässige Wakeups für zurückgestellte Arbeit und Fortschritt bei Completions

IORING_SETUP_DEFER_TASKRUN veröffentlicht den sleep state der wartenden Task, bevor deren wakeup credit sichtbar wird. Producers können den Consumer zuverlässig benachrichtigen, sobald neue lokale task work vorliegt. Die BPF-gesteuerte Warteschleife hält dieselbe Reihenfolge ein.

Wenn ausstehende overflow completions nicht in die completion queue passen, gibt io_uring die Kontrolle an Userspace zurück, damit die Anwendung die Queue leeren kann. Dies schafft einen expliziten Fortschrittspfad für completion queues mit unterschiedlich großen Einträgen.

Zuverlässigerer Fortschritt für real-time consumers

Die lockless task-work queue schützt die zweistufige Veröffentlichung durch den Producer mit einem kurzen Abschnitt, in dem preemption deaktiviert ist. Ein SCHED_FIFO-Consumer, der sich eine CPU mit einem Producer niedrigerer Priorität teilt, sieht eine abgeschlossene Veröffentlichung, statt den Producer mitten im Update zu unterbrechen.

Asynchrone private-futex-Waits bereiten den process-private hash vor, bevor der Waiter registriert wird. Wakeups bleiben beim anschließenden Erstellen von Threads und bei Änderungen der Hash-Konfiguration auf den aktiven Hash abgestimmt.

Weniger unnötige SQPOLL-Aktivität

SQPOLL kann schlafen, während ein Ring deaktiviert ist, auch wenn bereits submission entries vorbereitet wurden. Beim Aktivieren des Rings wird der polling-Thread geweckt. Anwendungen können ihre Startkonfiguration vorbereiten, ohne eine CPU durch wiederholte Prüfungen noch nicht freigegebener Arbeit zu belegen.

Genauer begrenzte asynchrone I/O workers

io_uring bestimmt die Zieldatei, bevor Arbeit an io-wq zugewiesen wird. Forced-async-Operationen auf regulären Dateien und Blockgeräten halten die Grenzen für bounded workers ein, einschließlich der konfigurierten Limits von IORING_REGISTER_IOWQ_MAX_WORKERS.

Buffered writes in dieselbe reguläre Datei werden durch inode-basiertes Hashing koordiniert. Dadurch konkurrieren weniger Workers um denselben inode lock. Die Identität der Datei steht fest, sobald die Anfrage in die work queue gelangt.

Zuverlässige receive buffers bei größerem Umfang

Zero-copy receive berechnet Buffer-Offsets vor dem Shiften mit 64-Bit-Arithmetik. Completion entries identifizieren den richtigen Buffer auch jenseits der ersten 4 GiB einer registrierten receive area, sodass consumption und refill aufeinander abgestimmt bleiben.

Bei incremental provided buffers und multi-buffer receive bundles wird Teilfortschritt abgeschlossen, bevor eine andere Anfrage den verbleibenden Speicher erneut verwenden kann. Anwendungen erhalten die tatsächlich übertragene Länge und setzen an dieser Grenze fort; diese MSG_WAITALL-Operationen können ein kurzes Ergebnis zurückgeben.

Korrekte clock domains bei Updates absoluter Timeouts

Updates absoluter Timeouts verwenden bei der Umrechnung des time namespace des Aufrufers in Hostzeit die Clock des bestehenden Timers. CLOCK_MONOTONIC, CLOCK_BOOTTIME und CLOCK_REALTIME behalten ihre jeweilige Semantik.

Dadurch bleiben asynchrone Deadlines für Dienste konsistent, die time namespaces und unterschiedliche clock domains für Timeouts verwenden.

Vollständigeres memory accounting

Task-to-ring metadata und personality XArrays werden memory cgroups zugerechnet. Metadata registrierter Buffer und resource nodes fließen ebenfalls in das memcg accounting ein, sodass kernelseitiger I/O-Speicher in den Budgets der Dienste erfasst wird.

Beim XArray teardown werden leere interne Knoten freigegeben, die nach erfolglosen Einfügeversuchen verbleiben. Wiederholtes Erstellen und Bereinigen von Rings gibt diese Metadata-Allokationen frei und hebt ihre Anrechnung auf.

Zuverlässigerer Lebenszyklus von HugeTLB-Seiten

Der Pfad für anonymous HugeTLB faults schließt die Zustandsupdates und das Entsperren des folio ab, bevor der page-table lock freigegeben wird. Die Initialisierung bleibt mit gleichzeitigem unmapping und page reclamation koordiniert und stärkt damit private huge-page mappings für große Anwendungsbuffer.

Abgestimmter teardown von IRQ und Timing-Geräten

Die Bereinigung von threaded IRQ behält irqaction bei, bis ausstehende exit task work abgeschlossen ist. So bleibt die Lebensdauer der Ressource auch im Pfad für einen abnormalen Thread-Austritt erhalten.

Steueroperationen für den PPS generator werden mit der Abmeldung der Quelle synchronisiert. Bereits laufende Operationen enden bei gültigem Treiberzustand; nachfolgende Operationen erhalten nach der Entfernung ENODEV. Damit erhält Timing-Service-Software eine klare Grenze im Gerätelebenszyklus.

Konsistenterer Hostzustand bei KVM

Auf Intel VMX Hosts löschen Änderungen aus Userspace, die eine vCPU ausführbar machen, bei Bedarf auch einen von der Hardware erfassten halt. Dadurch bleibt der Hardware-Ausführungszustand beim Reset und Neustart auf den virtual-machine monitor abgestimmt.

AMD SVM aktualisiert die ASID generation in beiden Kontrollblöcken für nested virtualization nach einem Wechsel der physischen CPU. Address-space identifiers bleiben beim Wechsel verschachtelter vCPUs zwischen Prozessoren aufeinander abgestimmt.

In Linux 7.3.3 hinzugefügte Verbesserungen für Xen backends

Das abschließende kumulative Update ergänzt drei Verbesserungen für Xen backend Deployments. Das Lesen von Block-backend-Statistiken wird mit dem frontend teardown synchronisiert. Network-backend-Statistiken bleiben während der Queue-Bereinigung geschützt. Die Bereinigung der multicast list erfolgt, nachdem die Sende- und Empfangsverarbeitung gestoppt wurde.

Zusammen halten diese Änderungen Monitoring, den Zustand virtueller Netzwerke und die Freigabe von Backend-Ressourcen beim Trennen und Neukonfigurieren von Geräten aufeinander abgestimmt.

Unterstützte Betriebssysteme

Der Paketkatalog von HFTKernel umfasst 24 Betriebssystemziele:

  • Ubuntu 20.04 / 22.04 / 24.04 / 26.04 LTS
  • Debian 11 / 12 / 13
  • RHEL-kompatible Systeme, AlmaLinux, Rocky Linux 8 / 9 / 10
  • CentOS Stream 9 / 10
  • Fedora Linux 44
  • Amazon Linux 2023, Cloud-Profil
  • ALT Linux p11 / Simply Linux 11
  • Astra Linux 1.8
  • Arch Linux base-devel
  • NixOS-kompatible Basis.

Installation mit einem Befehl

curl -fsSL https://hftkernel.com/install.sh | sudo bash

Der Installer erkennt Betriebssystem und Deployment-Profil, verifiziert das passende Paket und installiert es. Ein manueller Neustart aktiviert den installierten Kernel.

Versionsschwerpunkt

Die Übertragungsreihenfolge erhalten, asynchrone Arbeit voranbringen, unnötiges polling vermeiden und eine klare Zuständigkeit für Speicher und Geräteressourcen bewahren.

HFTKernel 7.3.1

Besser vorhersagbarer asynchroner I/O, präzise RT-Wakeups und zuverlässige Hostdiagnose

Upstream-Basis: Linux 7.3.1. Änderungen seit Linux 7.3. Upstream-Veröffentlichungsdatum: 30. Oktober 2026.

Rechtzeitiger Fortschritt nach drain-Barrieren von io_uring

Eine eigenständige drain-Anfrage setzt den drain-Zustand jetzt zurück, sobald ihr Abschluss veröffentlicht wird und keine weitere zurückgestellte Arbeit verbleibt. Bei der Ausführung über io-wq erfolgt dieser Übergang unter dem Ring-Lock, bevor der Abschluss im Userspace sichtbar wird.

Nach der abgeschlossenen Barriere eingereichte Anfragen können fortfahren, ohne darauf zu warten, dass der Worker seine letzte Referenz auf die Anfrage freigibt. Für verkettete drain-Anfragen bleiben die Anforderungen an die Reihenfolge erhalten.

Dadurch werden abschlussgesteuerte I/O-Pipelines für Anwendungen mit drain-Barrieren vorhersagbarer.

Zuverlässige poll-Wakeups und multishot-Abschlüsse

Eine atomare compare-and-exchange-Operation koordiniert jetzt die Freigabe der poll-Zuständigkeit mit gleichzeitig eintreffenden Benachrichtigungen zur erneuten Verarbeitung. Ausstehende Wakeups bleiben sichtbar, sodass die Verarbeitung ohne ein zusätzliches, unabhängiges Ereignis fortgesetzt werden kann.

Multishot poll aktualisiert bei einem Hangup auch den gemeinsamen Referenzzähler korrekt. Der letzte Ereignisdurchlauf kann ohne unnötige Schleifenwiederholungen abgeschlossen werden, was die Verwaltung des Verbindungslebenszyklus in asynchronen Anwendungen verbessert.

Präzise Timeouts der Completion Queue unter PREEMPT_RT

Bei RT- und deadline-Tasks unter PREEMPT_RT laufen die Timeout-Callbacks der io_uring Completion Queue im Hard-Interrupt-Kontext. Die Zustellung der Wakeups hängt nicht mehr davon ab, wann der Timer-Thread mit niedrigerer Priorität eingeplant wird.

Im Upstream-Test auf einem Jetson Orin Nano mit einem Backport der Änderung auf Linux 6.18.39-rt sank die maximale Verspätung unter konkurrierender SCHED_FIFO-Last über 40,000 deadlines von 1,040 µs auf 18 µs. Nach der Änderung war kein Wakeup mehr als 100 µs verspätet.

Konsistente Verarbeitung großer Provided Buffers beim Empfang

Bei nicht gebündelten Empfangsoperationen, die ihre Länge aus einem Provided Buffer ableiten, begrenzt io_uring die gewählte Übertragungslänge auf MAX_RW_COUNT.

Damit bleibt die Länge im Rückgabepfad mit vorzeichenbehaftetem Typ gültig, auch bei Provided Buffers von 2 GiB oder mehr, während die bestehende Grenze für die Übertragungsgröße eingehalten wird. Dies stärkt die Empfangspufferverarbeitung für Anwendungen mit großen wiederverwendbaren Speicherbereichen.

Besser koordiniertes Beenden asynchroner Worker

Der Exit-Pfad von io-wq führt nach der Veröffentlichung seines Exit-Flags eine Memory Barrier aus. Das Beenden und gleichzeitig ausgeführte Task Work zur Worker-Erstellung halten die erforderliche Reihenfolge ein, auch auf Architekturen mit schwacher Speicherordnung.

Dies stärkt das geordnete Beenden und Neustarten von Diensten, die io_uring-Worker-Pools verwenden.

Auch das Abbrechen von IORING_OP_WAITID-Anfragen ist idempotent: Wiederholte Versuche erkennen den bestehenden Abbruchzustand, ohne zusätzliche Referenzen anzusammeln. Dadurch bleiben asynchrone Anfragen zur Prozessüberwachung während des Abbruchs konsistent.

Weniger unnötige Arbeit beim Abbau von PID-Namespaces

Während der Namespace-Bereinigung maskiert der Prozess-Reaper Wakeups durch Task-Work-Benachrichtigungen, solange er auf die Beendigung von Kindprozessen und die Freigabe von PIDs wartet.

Er kann bis zum relevanten Lebenszyklusereignis schlafen, statt seinen Wartepfad wiederholt neu zu durchlaufen. Dies reduziert vermeidbare CPU-Aktivität bei den betroffenen Wechselwirkungen zwischen Container-Beendigung und Livepatch.

Zuverlässige IRQ-Sichtbarkeit pro CPU auf großen Hosts

/proc/interrupts gibt seine CPU-Kopfzeile jetzt immer aus, wenn der erste Datensatz erzeugt wird, auch bei Wiederholungen nach einer Vergrößerung des Sequence Buffers.

Die Zuordnung von CPU zu Zähler bleibt auf Systemen mit vielen Kernen erhalten. Dies ermöglicht zuverlässiges IRQ-Parsing, die Überprüfung der Platzierung und die Überwachung isolierter sowie Housekeeping-CPUs.

Sauberere Tracing-Konfiguration und Bereinigung

Bei der Histogramm-Einrichtung werden automatisch erstellte Field-Variable-Trigger jetzt entfernt, wenn der Gesamtbefehl fehlschlägt. Das aktive Tracing entspricht der akzeptierten Konfiguration, und temporäre Instrumentierung wird bereinigt, statt weiterhin Ereignisse zu zählen.

Die Bereinigung von Field-Variable-Histogrammen behält die stabile Event-File-Referenz bei und hängt nicht von der Lebensdauer eines anderen Histogramms ab. Dies verbessert das wiederholte Erstellen, Ändern und Entfernen diagnostischer Sitzungen.

Das Event-Filter-Parsing weist außerdem unvollständige logische Ausdrücke vor ihrer Ausführung zurück. Dies stärkt die automatisierte Konfiguration von tracefs und perf-Tracepoints.

Vollständigere Postmortem-Diagnose

Die Core-Dump-Erfassung ist während der Datenübertragung über Pipes und Sockets vor Unterbrechungen durch TIF_NOTIFY_SIGNAL geschützt. Benachrichtigungen von io_uring und anderen Task-Work-Erzeugern unterbrechen diese Erfassungspfade nicht mehr.

Dadurch bleiben Diagnosedaten für die detaillierte Analyse des Anwendungszustands, der Mappings und ausstehender I/O erhalten.

Konsistente Validierung von DAMON-Quoten

DAMOS-Quotenziele werden vor ihrer Anwendung im DAMON-Kern validiert. Zielwerte von null werden im gemeinsamen Commit-Pfad zurückgewiesen, und der Fehler wird an die Aufrufer weitergegeben.

Für Bereitstellungen mit DAMON-basierter Speicherverwaltung schafft dies eine einheitliche Prüfung bei der Konfiguration von Quotenrichtlinien.

Zuverlässige Out-of-Tree-Builds des DMA-Benchmarks

dma_map_benchmark wird jetzt im gewählten Ausgabeverzeichnis gebaut, wenn O= angegeben ist.

Der Benchmark lässt sich sauber in Build-Pipelines einfügen, die Quellbäume von erzeugten Werkzeugen trennen, und unterstützt so die reproduzierbare Vorbereitung von DMA-Diagnosewerkzeugen.

Unterstützte Betriebssysteme und Installation

HFTKernel unterstützt 24 OS-Ziele für Ubuntu, Debian, RHEL-kompatible Plattformen, AlmaLinux, Rocky Linux, CentOS Stream, Fedora, Amazon Linux, Arch Linux, NixOS-kompatible Bereitstellungen, ALT Linux p11 / Simply Linux 11 und Astra Linux 1.8. Amazon Linux 2023 verwendet das Cloud-Profil.

Installation mit einem Befehl:

curl -fsSL https://hftkernel.com/install.sh | sudo bash

Der Installer wählt das passende Betriebssystempaket und Bereitstellungsprofil aus und überprüft die Paketintegrität.

Versionsschwerpunkt

Die Linux-7.3.1-Basis stärkt den I/O-Fortschritt, die Zustellung von Echtzeit-Timeouts, die Verwaltung des Prozesslebenszyklus und die Konsistenz der Diagnose. Diese Änderungen unterstützen das Ziel von HFTKernel, einen vorhersagbaren und messbaren Host für latency-empfindliche Anwendungen bereitzustellen.

HFTKernel 7.3

Vorbereitete Zeitlesezugriffe, schlankere Speicherverwaltung und neue CXL-Netzwerkfunktionen

Upstream-Basis: Linux 7.3. Upstream-Veröffentlichungsdatum: 18. Oktober 2026.

Schwerpunkt: Mit der Linux-7.3-Basis eingeführte Funktionen für latency-empfindliche Bereitstellungen.

Vorab eingelagerte vDSO-Daten für vorhersehbaren Anwendungsstart

Die generische vDSO-Datenabbildung kann jetzt durch mlockall() belegt werden. Durch das Entfernen ihres Flags VM_IO kann die Speichervorbereitung die entsprechenden Seitentabelleneinträge anlegen, bevor latency-empfindliche Verarbeitung beginnt.

Bei Anwendungen mit vDSO-gestützten Zeitlesezugriffen wird dadurch ein vermeidbarer first-touch-Seitenfehler in die Startvorbereitung verschoben. Der Upstream-Autor beobachtete auf dem Testrechner ungefähr 20 µs für den vollständigen Seitenfehler-Ausnahmepfad.

Dies verbessert die Vorbereitung von Handelsengines, Zeitstempelnutzern und Messprozessen, die ihre Arbeitsmengen explizit vorab einlagern.

Weniger LRU-Lock-Konkurrenz beim Memory Reclaim

Klassischer LRU reclaim leitet die Kosten für die Scan-Balance anonymer und dateibasierter Seiten jetzt aus vmstat-Zählern ab. Kostenabtastung und -abklingen verwenden einen eigenen Lock je lruvec, statt wiederholt den Lock für LRU-Listenoperationen anzufordern. Hierarchieaggregation ersetzt zudem wiederholte Kostenaktualisierungen auf Elternebene.

Im Upstream-Speicherdrucktest mit 176 Kernen und 256 GB sank die gesamte LRU-Lock-Wartezeit innerhalb eines 30-Sekunden-Aufzeichnungsfensters von ungefähr 4.23 Sekunden auf 1.66 Sekunden, eine Reduktion um 61%, bei ähnlichen Scan- und Reclaim-Raten.

Bei klassischem LRU reduziert dies die Konkurrenz zwischen Reclaim-Verwaltung und den Operationen, die tatsächlich Seiten verwalten.

Stärkerer Erhalt ausführbaren Codes mit MGLRU

MGLRU stuft eingeblendete ausführbare Datei-folios nach ihrer ersten beobachteten Nutzung höher ein. Sowohl Seitentabellenalterung als auch Referenzprüfung berücksichtigen ausführbare Abbildungen beim Aktualisieren des Seitenzustands.

Dadurch erhalten kürzlich verwendeter Anwendungscode und Code gemeinsam genutzter Bibliotheken stärkeren Schutz vor reclaim. Dies unterstützt eine gleichmäßigere Code-Residenz für Dienste mit MGLRU unter Speicherdruck.

Weniger unnötige Druckerfassung in cgroup v2

Das vmpressure-Subsystem überspringt unter cgroup v2 den Userspace-Benachrichtigungspfad von cgroup v1. Reclaim vermeidet ungenutzte Buchführung, Sperren, workqueue-Einreichung und Durchläufe durch Elternknoten.

Der kernelinterne TCP-/SCTP-Socket-Druckpfad bleibt aktiv, und die Userspace-Drucküberwachung von cgroup v2 läuft weiterhin über PSI. Dies beseitigt überflüssige Infrastrukturarbeit und erhält zugleich die Drucksignale für Netzwerk und Dienstverwaltung.

Kürzere kritische Workqueue-Abschnitte

Die Workqueue-Verarbeitung wählt den aufzuweckenden Worker unter pool->lock aus und weckt ihn erst nach Freigabe des Locks. Scheduler-Aufweckoperationen verlängern den kritischen Abschnitt des gemeinsamen Pools in den betroffenen Einreihungs- und verketteten Arbeitspfaden nicht mehr.

In einem Upstream-Mikrobenchmark auf NVIDIA Grace ARM64 mit NUMA-begrenzten unbound workqueues stieg throughput von 719,794 auf 794,049 Arbeitselemente pro Sekunde, bei 10.3% niedrigerer P95-Einreihungs-latency.

Dies verbessert die Verarbeitung konkurrierender Hintergrundarbeit auf Housekeeping-CPUs und in unterstützender Infrastruktur.

Reaktionsfähigere schedulerverwaltete Dienste

Cgroup-Scheduling der Fair-Klasse wechselt zu einer einzigen Runqueue für die Aufgabenauswahl je CPU und behält die Verteilung nach Gruppengewichten bei. EEVDF verbessert außerdem das Scheduling für Aufgaben mit kurzen Zeitscheiben, und NOHZ balancing bevorzugt vollständig untätige Kerne.

Diese Änderungen sind für schedulerverwaltete Gateways, Überwachung, Orchestrierung und Housekeeping-Dienste relevant. Explizite CPU affinity bleibt der Platzierungsmechanismus für dedizierte Handelsthreads.

Besser skalierbarer io_uring-Zero-Copy-Empfang

Das Zero-Copy-Empfangssubsystem von io_uring erhält dynamische Speicherbereichsbereitstellung und koordinierte Refill-Verbesserungen. Refill großer Seiten skaliert mit der zugrunde liegenden Allokation, kompatible Refill-Einträge werden zusammengeführt, und Kopf und Ende des Refill-Rings liegen in getrennten Cache-Zeilen. Tail-Caching reduziert Zugriffe auf gemeinsamen Zustand zusätzlich.

Diese Änderungen verbessern die Empfangsspeicherverwaltung und reduzieren Refill-Overhead für Anwendungen mit io_uring ZCRX, darunter hochfrequente Marktdaten- und Netzwerkverarbeitungsaufgaben.

CXL-gestützte Solarflare-Sendeunterstützung in der Upstream-Basis

Linux 7.3 verbindet CXL-Type-2-Infrastruktur mit der Solarflare-Treiberintegration für kompatible Geräte der SFC9100-Familie. CONFIG_SFC_CXL aktiviert den Treiberpfad für CTPIO über CXL.mem mit kompatibler CXL-Hardware und CXL-fähiger Firmware.

Der Treiber prüft die CXL-Gerätefähigkeiten, erstellt einen 256 MiB großen CTPIO-Speicherbereich und bildet ihn mit Write-Combining-Semantik ab. Dies ermöglicht kernelseitig einen CXL-gestützten Sendepfad vom Host zur NIC.

Für eine passende HFTKernel-Hardware-Konfiguration kombiniert die Integration CONFIG_SFC, CONFIG_CXL_BUS und CONFIG_SFC_CXL mit kompatiblem Server, Adapter und Firmware. Dies schafft eine gezielte Hardwareoptimierungsoption für latency-empfindliche Übertragung.

Erweiterte Hardware-Uhrsteuerung

Der ZL3073x-DPLL-Treiber erhält PTP-Hardware-Uhrunterstützung und bietet Zeitlesen, Zeitkorrektur, Frequenzkorrektur und Phasenkorrektur über die passenden Callbacks. Verfügbare Operationen richten sich nach dem aktuellen Kanalzustand, einschließlich NCO-Betrieb und Referenzverfolgung.

Dies erweitert die über Standard-Linux-Schnittstellen verfügbaren Hardware-Zeitoptionen und erleichtert die Integration unterstützter Zeitgeräte in die Uhrverwaltungsinfrastruktur.

Besser skalierbare Cloud-Netzwerkverwaltung

Ausgewählte Software-Netzwerktreiber, darunter veth, ipvlan und Tunnel, erhalten Geräteabmeldung je Netzwerk-Namespace. Routingregel-Aktualisierungen lösen sich ebenfalls vom globalen RTNL-Lock. Diese Änderungen reduzieren gemeinsame Serialisierung bei Netzwerklebenszyklus- und Routingrichtlinienoperationen.

BIG-TCP-Unterstützung wird auf UDP-Tunnel wie VXLAN und Geneve erweitert. Größere interne Segmentierungsblöcke bieten eine zusätzliche Effizienzoption für Massendatenverteilung und Replay über unterstützte Overlays, während die konfigurierte MTU auf der Leitung erhalten bleibt.

Nützlichere Multicast-Diagnose

RTM_GETMULTICAST meldet eine Benutzeranzahl je Gruppe. Überwachungssoftware kann die Nutzung von Multicast-Gruppen über netlink untersuchen und erhält bessere Einblicke in den Abonnementstatus auf Hosts, die Multicast-Marktdaten empfangen.

Effizienteres Allokationsprofiling

Speicherallokationsprofiling erhält eine binäre ioctl-Schnittstelle für /proc/allocinfo. Modul-, Funktions-, Datei- und Zeilenfilter können vor der Aggregation von CPU-Zählern angewendet werden, sodass Diagnoseabfragen nur passende Allokationsstellen verarbeiten.

Im Upstream-Test auf Intel Xeon Platinum 8481C mit 224 logischen CPUs reduzierte eine dateispezifische Abfrage die System-CPU-Zeit von 22 ms auf 1 ms. Dies macht gezielte Speicheruntersuchungen leichter und besser für automatisierte Erfassung geeignet.

Die neuen Zähler pgrotate_anon und pgrotate_file machen Reclaim-Arbeit sichtbar, die nicht sofort Seiten freigibt. Sie unterstützen die Diagnose sowohl von klassischem LRU als auch von MGLRU.

Enthaltene Messwerkzeuge

HFTKernel enthält cpujitter für CPU-Ausführungslücken und latency-Ausläufer, memjitter für Allokation, first-touch und Arbeitsmengenverhalten sowie irqjitter zur Analyse von IRQ- und softIRQ-Aktivität.

Zusammen mit Anwendungs-latency, Netzwerkzählern, Hardware-Uhrzustand und Speichertelemetrie machen diese Werkzeuge die gesamte Infrastruktur beobachtbar.

Versionsschwerpunkt

Die Linux-7.3-Basis bringt drei Prioritäten von HFTKernel voran: mehr Zustand vor Arbeitslastbeginn vorbereiten, Konkurrenz in gemeinsamen Kernel-Pfaden reduzieren und bessere Kontrolle über Netzwerk, Speicher und Zeitverhalten bereitstellen.

Versionsphilosophie

Upstream-Stabilität, arbeitslastspezifische Richtlinien und messbare Ergebnisse

HFTKernel beginnt mit einer exakten stabilen Linux-Version, dokumentiert Toolchain und Build-Identität, wendet das gewählte Cloud- oder Hardware-Profil an, bündelt cpujitter und memjitter mit der Laufzeitumgebung und validiert das Ergebnis als unveränderliche Version.

Exakte BasisGeprüfter stabiler Linux-Quellcode und festgelegte Kernel-Version.
Kontrolliertes ProfilAuf die Plattform abgestimmte CPU-, Speicher-, Netzwerk-, Zeitmessungs- und Isolationsrichtlinien.
Native PaketeDEB-, RPM- oder TGZ-Pakete für die unterstützte Produktionsmatrix.
Durch Messungen bestätigte Auslieferungcpujitter und memjitter liefern wiederholbare Nachweise für die Ausläufer.

Bereitstellungsplanung

Bewerten Sie die Version anhand Ihrer CPU-, NIC-, Speicher- und Zeittopologie.

Die Paketauswahl ist nur der erste Schritt. Das Produktionsergebnis hängt von Boot-Parametern, Laufzeitaffinität, Warteschlangenplatzierung, PTP-/PHC-Konzept, Speicherrichtlinie und einem kontrollierten Messplan ab.