Notes de version

Notes de version de HFTKernel 7.2.x.

Parcourez la série de noyaux 7.2.x du plus récent au plus ancien, avec les changements amont les plus pertinents pour une exécution CPU prévisible, un réseau stable, une gestion précise du temps, la virtualisation, le comportement mémoire et des queues de distribution de latency mesurables.

Historique public des modifications

Notes de version

Chaque entrée porte sur les changements amont qui soutiennent les objectifs principaux de HFTKernel : jitter minimal, tail latency maîtrisée, chemin de données stable, gestion précise du temps et comportement mesurable sous pression.

HFTKernel 7.2.11

Réseau zero-copy renforcé, files NIC ordonnées et matériel temporel plus fiable

Dernière entrée de la série 7.2.x

Base amont : Linux 7.2.11. Changements depuis Linux 7.2.10. Date de publication : 15 octobre 2026.

Propriété des tampons mlx5 AF_XDP renforcée

HFTKernel 7.2.11 renforce la réception AF_XDP zero-copy sur les adaptateurs NVIDIA mlx5.

Pour les files de réception striding, les tentatives de remplissage MPWQE conservent désormais un état explicite de propriété pour chaque tampon XSK. Si l'allocation échoue temporairement, une tentative NAPI ultérieure ne libère plus la même trame UMEM via un pointeur périmé.

Le chemin de nouvelle tentative est désormais idempotent :

  • chaque tampon XSK initial est libéré une seule fois ;
  • les remplissages partiels conservent leur état de propriété ;
  • une allocation réussie remplace le tampon et efface le marqueur de libération ;
  • les tentatives suivantes ne concernent que les tampons restant à remplacer.

Un test amont AF_XDP de 20 secondes sous pression a provoqué 1,575,262 échecs d'allocation de tampons sans descripteurs invalides, erreurs WQE ou avertissements du noyau.

L'ancienne file de réception cyclique reçoit la même protection de propriété.

Dans le test amont correspondant, un trafic UDP de 64 octets était présenté à 12 Mpps. Le chemin mis à jour a traité 356,904,225 paquets en 30 secondes, dont 571,405 événements xdp_rx_ring_full, sans erreur de propriété ou de données.

Pour HFTKernel, cela renforce l'ingestion rapide de données de marché, les gestionnaires de flux AF_XDP, les systèmes de distribution de paquets et les captures zero-copy sous pression des anneaux de réception.

Notifications TX doorbell Intel ICE ordonnées

Le pilote Intel ICE utilise à nouveau des écritures MMIO ordonnées pour publier les notifications TX doorbell des files.

Le pilote met d'abord à jour le suivi Dynamic Queue Limits en mémoire ordinaire, puis informe la NIC de la disponibilité de nouveaux descripteurs. L'écriture ordonnée garantit la visibilité globale du suivi avant que le périphérique puisse terminer le travail transmis.

Cela est particulièrement important sur ARM64, où writel_relaxed() ne fournit pas l'ordre requis entre la mémoire ordinaire et MMIO.

Le changement a été testé avec un adaptateur Intel E810-XXV sous charge réseau soutenue. Le chemin ordonné a maintenu la synchronisation entre les complétions NIC et le suivi logiciel des files.

Pour HFTKernel, cela renforce le traitement TX soutenu sur le matériel Intel compatible et préserve la cohérence entre soumission des descripteurs, exécution matérielle et suivi des complétions.

Ordre correct des complétions mlx5 ICOSQ

Le pilote mlx5 met désormais à jour la notification doorbell de la file de complétion avant de publier le compteur consommateur ICOSQ.

Un dma_wmb() maintient l'ordre des deux opérations :

  1. L'espace CQ est libéré pour le périphérique.
  2. Le compteur consommateur logiciel avance.
  3. Le périphérique voit la capacité de complétion actualisée avant la soumission de tâches de contrôle internes supplémentaires.

Cela préserve le cycle de vie de la file de complétion et maintient l'alignement du traitement interne des files d'envoi mlx5 entre l'hôte et la NIC.

Cycle de vie Google GVE AF_XDP plus fiable

Google Virtual Ethernet DQO reçoit un ensemble coordonné d'améliorations du cycle de vie AF_XDP zero-copy.

Les tampons XSK sont désormais libérés lorsqu'un descripteur de complétion RX signale une erreur. Les tampons transmis à la NIC sont aussi rendus lorsque les anneaux RX sont arrêtés ou réinitialisés.

L'arrêt du pool XSK utilise désormais la bonne variante de verrouillage NAPI lorsque les opérations de gestion des files détiennent déjà le verrou netdevice. La reconfiguration continue ainsi sans tenter de reprendre le même verrou.

Les changements d'arrêt de file et de pool XSK couvrent des scénarios de production observés dans Google Cloud.

Pour HFTKernel Cloud, cela facilite une installation, une reconfiguration, un redémarrage et un retrait propres d'AF_XDP sur les interfaces GVE DQO.

Estimation plus précise du délai PCIe OCP PTP

Le pilote OCP PTP utilise désormais KTIME_MAX comme borne supérieure initiale de l'estimation du délai PCIe.

Le maximum non signé précédent devenait négatif en ktime_t, empêchant les délais réellement mesurés de le remplacer. Le calcul mis à jour utilise le bon domaine temporel signé et maintient un ajustement valide de la fenêtre d'horodatage.

Cela améliore la compensation du délai PCIe des cartes de temps OCP compatibles et renforce la relation entre la fenêtre d'horodatage de l'hôte et la lecture de l'horloge matérielle.

Pour HFTKernel, cela fournit une base temporelle matérielle plus fiable pour la synchronisation PTP, la corrélation des horodatages et la mesure de latency.

État cpuset plus cohérent pendant les changements de cycle de vie CPU

HFTKernel 7.2.11 inclut plusieurs corrections cpuset pertinentes pour le placement CPU automatisé.

Lors de la mise hors ligne d'un CPU, guarantee_active_cpus() tient désormais compte de l'intervalle entre les changements du masque CPU actif et la propagation des masques cpuset effectifs mis à jour.

Le mode cgroup est évalué sous cpuset_mutex, maintenant la synchronisation de l'état hiérarchique et des mises à jour des masques.

La vérification du mode v2 utilise aussi un indicateur stable dédié au lieu de lire un pointeur racine cgroup susceptible de changer.

Ensemble, ces changements renforcent l'état cpuset lors :

  • du branchement à chaud des CPU ;
  • des montages et réassociations cgroup ;
  • des changements de cycle de vie des services ;
  • de la gestion automatisée des partitions CPU.

Pour HFTKernel, cela assure une séparation fiable des cœurs de trading, des cœurs réseau, des CPU de service et des charges de services.

Traitement borné des extractions de flux Open vSwitch

Les extractions de flux Open vSwitch via netlink maintiennent désormais les moitiés basses désactivées pendant chaque rappel d'extraction borné.

Auparavant, les réactivations locales répétées des moitiés basses pouvaient faire traiter au thread d'extraction lui-même l'accumulation de softIRQ. Sur un CPU occupé par les paquets, cette accumulation pouvait se renouveler continuellement.

Le chemin mis à jour limite le rappel aux entrées de flux placées dans la réponse netlink actuelle. Le traitement softIRQ des paquets reste dans les chemins réseau normaux au lieu d'être absorbé par le thread de contrôle d'extraction.

Pour HFTKernel Cloud et les profils réseau virtualisés, cela établit une séparation plus nette entre charge du chemin de données et diagnostic du plan de contrôle.

Création prévisible des anneaux io_uring

Les anneaux SQ, CQ et de tampons fournis ne sont plus imputés à RLIMIT_MEMLOCK, rétablissant leur sémantique de création habituelle.

Cela évite aux services ordinaires non privilégiés une limite artificielle du nombre d'anneaux liée à une mémoire déjà contrôlée par les cycles de vie io_uring et memory-cgroup.

Le cas de reproduction amont avec des anneaux de 4,096 entrées est revenu de 21 anneaux aux 64 attendus sous la limite memlock par défaut de 8 MiB.

Pour les régions mémoire composées io_uring réellement imputées, le suivi inclut désormais chaque page allouée, y compris les pages de fin dues à l'arrondi à une puissance de deux hors de la région logique demandée.

Si l'allocation composée dépasse la limite, io_uring peut recourir à une allocation en lot de taille exacte.

Cette combinaison fournit :

  • une création prévisible de SQ et CQ ;
  • une création prévisible des anneaux de tampons fournis ;
  • un suivi précis des allocations composées épinglées ;
  • une meilleure utilisation de la mémoire près des limites configurées.

Suivi correct de la mémoire verrouillée remappée

MREMAP_DONTUNMAP conserve désormais un suivi cohérent de locked_vm dans deux cas supplémentaires.

Les VMA anonymes verrouillées susceptibles de fusionner avec elles-mêmes restent séparées pour que source et destination conservent leur état de verrouillage correct.

Les remappages partiels de VMA verrouillées scindent la plage source avant le déplacement des tables de pages, alignant le suivi sur les pages restant à la source et celles représentées par la destination.

Pour HFTKernel, cela renforce le suivi du cycle de vie mémoire des applications utilisant des jeux de travail verrouillés et des remappages avancés.

Analyse AF_PACKET, Virtio, VLAN et GSO plus fiable

Les chemins réseau virtuels et sockets de paquets appliquent désormais une séquence cohérente d'analyse des en-têtes.

Les paquets GSO avec étiquette VLAN envoyés par AF_PACKET SOCK_RAW sont analysés après application des métadonnées Virtio. Cela préserve les bonnes positions des en-têtes réseau et transport et évite une analyse redondante.

Les paquets GSO associés à Virtio sont toujours analysés lorsque les métadonnées de déport de somme de contrôle ne donnent pas la position du transport. Cela garantit que :

  • le protocole réseau est validé ;
  • l'en-tête de transport est présent dans les données linéaires ;
  • le déplacement de transport est initialisé ;
  • les options IPv4 et les extensions d'en-tête IPv6 sont correctement traitées.

Les déplacements d'analyse de flux sont aussi correctement traités pour les tampons dépassant 64 KiB, notamment BIG TCP et les grandes trames AF_PACKET PACKET_VNET_HDR. Le chemin d'analyse de flux BPF reçoit la même protection.

Pour HFTKernel, cela renforce la capture et la relecture de paquets, TUN/TAP, Virtio, la classification BPF et les passerelles virtuelles.

Réception TCP zero-copy renforcée avec mémoire de périphérique

La réception TCP zero-copy reconnaît désormais les fragments net_iov sans support de page avant de demander des indications de mappage de pages.

Cela couvre la mémoire de périphérique reposant sur DMA-BUF et les types net_iov io_uring.

Les données lisibles reposant sur des pages peuvent toujours être copiées ou mappées normalement. Lorsque le fragment suivant appartient à la mémoire d'un périphérique, le noyau renvoie la bonne indication de saut au lieu de le traiter comme une page ordinaire.

Cela renforce l'interaction entre réception TCP zero-copy, mémoire de périphérique, DMA-BUF et tampons réseau io_uring.

Configuration plus sûre de XDP et de la séparation en-tête/données TCP

Les périphériques réseau reconnaissent désormais les programmes XDP à tampon unique attachés via bpf_link pour décider si la séparation en-tête/données TCP peut être activée.

Le noyau préserve ainsi la compatibilité du programme XDP attaché avec la disposition des tampons de réception NIC, que le programme soit installé par l'ancien chemin ou par l'API BPF link.

Veth actualise aussi correctement la capacité de transmission XDP du pair après un changement GRO pendant que l'interface est inactive, alignant les chemins de redirection des conteneurs et espaces de noms sur la configuration active du pair.

Mappage IOMMU direct des ressources MMIO

Les ressources MMIO portant DMA_ATTR_MMIO évitent désormais les tampons intermédiaires SWIOTLB.

MMIO ne peut pas être copié via un tampon intermédiaire. Le chemin mis à jour passe directement au mappage IOMMU IOVA, y compris pour les ressources non alignées sur une page.

Pour HFTKernel Hardware, cela renforce le mappage des ressources des périphériques et accélérateurs derrière IOMMU et retire un chemin intermédiaire incompatible de la configuration MMIO.

Protection de l'invalidation TLB AMD

HFTKernel 7.2.11 détecte AMD TLBI Erratum #1718.

Sur les processeurs concernés, une séquence INVLPGB et TLBSYNC peut ne pas invalider l'entrée TLB visée. Lorsque le microcode mis à jour n'est pas disponible, le noyau active un contournement logiciel.

Cela renforce la correction des transitions d'espace d'adressage et des invalidations TLB sur les systèmes AMD compatibles.

TX et récupération PCIe Broadcom NetXtreme-E renforcés

Le pilote Broadcom bnxt_en mappe désormais toute la longueur complétée des paquets TX courts.

Cela aligne la longueur DMA sur la taille présentée au matériel, y compris les petites trames de contrôle transmises via VLAN et macvlan sur les adaptateurs NetXtreme-E compatibles.

La récupération PCIe rétablit aussi la configuration BAR de façon cohérente pour les réinitialisations fatales et non fatales. La visibilité MMIO, le bus mastering et le décodage mémoire sont restaurés dans un ordre contrôlé après récupération.

Outils de mesure inclus

HFTKernel 7.2.11 inclut :

cpujitter

Pour les interruptions d'exécution CPU, les interférences de l'ordonnanceur, l'activité IRQ et softIRQ et les queues de latency.

memjitter

Pour l'allocation, first-touch, les jeux de travail verrouillés et le comportement sous pression mémoire.

irqjitter

Pour l'analyse de l'activité IRQ et softIRQ.

Ces outils relient les changements du noyau au comportement de la pile applicative complète.

Résultat HFTKernel 7.2.11

HFTKernel 7.2.11 renforce le système d'exploitation autour des applications sensibles à la latency :

  • les tentatives mlx5 AF_XDP préservent la propriété UMEM sous pression des anneaux et des allocations ;
  • Google GVE gère les tampons AF_XDP de manière cohérente lors des erreurs et événements du cycle de vie des files ;
  • Intel ICE publie l'état de la file TX avant de notifier la NIC par doorbell ;
  • mlx5 ordonne les mises à jour d'espace de complétion avec l'avancement de la file d'envoi interne ;
  • les cartes OCP PTP maintiennent une compensation correcte du délai PCIe ;
  • l'état cpuset reste cohérent lors des changements du cycle de vie CPU et cgroup ;
  • Open vSwitch sépare l'extraction des flux d'une accumulation softIRQ non bornée ;
  • les anneaux io_uring conservent une création prévisible et un suivi mémoire précis ;
  • les chemins AF_PACKET, Virtio, GSO, BIG TCP, XDP et TCP zero-copy gagnent un traitement renforcé des tampons et en-têtes ;
  • l'invalidation TLB AMD et le mappage MMIO IOMMU reçoivent une protection propre au matériel.

Ensemble, ces changements offrent une base plus prévisible et mesurable pour le HFT, les données de marché, les passerelles d'exécution, le réseau cloud, le traitement des paquets et les infrastructures à horodatage matériel.

HFTKernel 7.2.10

Complétions de temporisateurs plus rapides, meilleure localité LLC et réseau zero-copy plus fiable

Base amont : Linux 7.2.10. Changements depuis Linux 7.2.9. Date de publication : 11 octobre 2026.

Complétions plus rapides des temporisateurs haute résolution

Le chemin de retour des temporisateurs haute résolution efface désormais TIF_HRTIMER_REARM avec le bon masque de bits.

Cela conserve la visibilité du travail de tâche mis en file depuis un rappel hrtimer pour la boucle de retour en espace utilisateur. Les applications interrogeant un anneau de complétion io_uring reçoivent rapidement les complétions des temporisateurs sans attendre un appel système, une interruption ou un réordonnancement ultérieur.

Dans la configuration amont QEMU à 2 vCPU avec HZ=1000, le délai médian de complétion du temporisateur est passé de 30 ms à 70 µs.

Pour HFTKernel, cela renforce les machines à états pilotées par temporisateurs, les délais d'attente, les E/S asynchrones, la supervision des connexions et les autres chemins de contrôle sensibles à la latency.

Ordonnancement tenant compte du cache renforcé

Linux 7.2.10 comprend un ensemble coordonné d'améliorations de l'ordonnanceur tenant compte du cache.

Les threads du noyau sont exclus du suivi des groupes de cache utilisateur, évitant qu'ils héritent des statistiques de cache applicatives.

Dans le chemin critique de l'ordonnanceur, l'accès aux groupes de cache passe directement par task_struct, avec une référence indépendante par tâche. Cela sépare leur durée de vie du remplacement de mm_struct pendant fork, exec et exit.

L'équilibrage actif conserve la politique migrate_llc_task, sélectionnant une tâche qui préfère réellement le LLC de destination au lieu d'éloigner une autre tâche de son domaine de cache préféré.

Le suivi des tâches exécutables correspond aussi exactement aux tâches admissibles à la migration, y compris les transitions de retrait différé de file.

Sur les processeurs asymétriques et hybrides, la capacité d'ordonnancement est prioritaire si déplacer une tâche vers son LLC préféré la placerait sur un CPU trop faible pour sa charge.

HFTKernel continue d'utiliser l'affinité explicite pour les threads de trading critiques. Ces améliorations renforcent les services de soutien, la surveillance, les processus de contrôle et les autres charges restant gérées par l'ordonnanceur.

Réception zero-copy io_uring plus déterministe

Le RECV_ZC multishot enregistre désormais l'arrêt d'un passage de réception dû à l'épuisement d'une ressource locale.

Si un progrès partiel a eu lieu, la requête est remise en file. Le passage suivant poursuit le traitement ou renvoie une complétion d'erreur explicite permettant à l'application de réarmer l'opération.

Cela remplace un état d'inactivité implicite par une transition déterministe et observable. Les données TCP non lues n'attendent plus un futur événement de socket sans rapport pour que la réception reprenne.

Pour HFTKernel, cela renforce l'ingestion zero-copy des données de marché, le traitement TCP rapide et les applications réseau io_uring.

Flux d'horodatage TX io_uring fiables

Les requêtes multishot SOCKET_URING_OP_TX_TIMESTAMP se terminent désormais par une complétion ENOBUFS visible lorsque la file de complétion n'a plus de place pour un horodatage.

Le CQE final atteint l'espace utilisateur par le chemin de débordement. Les horodatages déjà conservés dans la file d'erreurs du socket sont livrés lorsque l'application réarme la requête.

Cela donne aux consommateurs d'horodatages un cycle de vie clair :

  1. Recevoir les complétions d'horodatage.
  2. Détecter la saturation de la file de complétion.
  3. Vider la file.
  4. Réarmer la requête.
  5. Continuer avec les horodatages conservés.

Le chemin d'horodatage matériel de transmission devient ainsi plus explicite et plus facile à gérer.

Réseau Google GVE DQO renforcé

Le pilote Google Virtual Ethernet DQO traite désormais gso_type comme un masque de bits lors de la préparation des paquets TSO.

Les paquets TSO issus de TUN/TAP, des sockets de paquets et des machines virtuelles comportent souvent des indicateurs tels que SKB_GSO_DODGY, SKB_GSO_TCP_ECN ou SKB_GSO_TCP_FIXEDID. Ils sont désormais acceptés lorsque leur type sous-jacent de segmentation TCP est pris en charge.

Dans un test amont utilisant une instance GCE n4 DQO-QPL et un invité Cloud Hypervisor, un envoi de 64 MB depuis l'invité est passé d'un délai dépassé de 60 secondes à environ 0.9 MB/s à 0.19 seconde. Le compteur du périphérique tx_dropped est resté stable après le changement.

Cela renforce la virtualisation imbriquée, les équipements réseau cloud, les passerelles virtualisées et les charges invitées utilisant Google GVE DQO.

État RTT TCP plus précis

TCP actualise désormais TS.Recent lorsqu'un ACK plus ancien accepté transporte aussi de nouvelles données.

C'est important pour les connexions bidirectionnelles durables où le réordonnancement peut livrer des données utiles avec un acquittement plus ancien qu'un acquittement déjà traité.

Le récepteur renvoie désormais l'horodatage du paquet qui a comblé le trou de réception. L'émetteur calcule ainsi le RTT à partir de l'échange actuel sans inclure une longue période d'inactivité.

Dans le scénario amont avec 300 secondes d'inactivité, réordonnancement contrôlé et retransmission, le RTT lissé de l'émetteur est passé de 37.5 secondes à 15.5 ms.

Pour HFTKernel, cela favorise un comportement plus stable des connexions persistantes TCP, TLS, WebSocket, de données de marché et d'exécution.

Libération mémoire RCU plus propre

L'allocateur slab ne réveille plus kswapd lors de l'allocation de stockage interne depuis __kfree_rcu_sheaf().

kfree_rcu() peut s'exécuter lorsque l'ordonnanceur détient pi_lock. Retirer __GFP_KSWAPD_RECLAIM de ce chemin évite un réveil de récupération susceptible de revenir sur le même verrou d'ordonnanceur.

La gestion sheaf mise à jour exploite aussi mieux le stockage local de réserve lorsque l'attente active est indisponible.

Pour HFTKernel, cela supprime des tâches de fond inutiles d'un chemin mémoire sensible à l'ordonnanceur et renforce la libération RCU par lots.

Gestion du cycle de vie futex renforcée

Le redimensionnement du hachage privé futex publie désormais le nouveau pointeur avant d'enregistrer l'état de période de grâce RCU associé.

Les lecteurs de l'ancien hachage restent protégés jusqu'à la fin de la bonne période de grâce.

Cela renforce la synchronisation des applications multithreads utilisant des mutex fondés sur futex, des variables de condition et une coordination à l'exécution.

Nettoyage borné des objets BPF

Les objets mémoire BPF ajoutés pendant une période de grâce Tasks Trace RCU déjà active déclenchent désormais un cycle de nettoyage supplémentaire.

Les objets ne restent plus indéfiniment dans free_by_rcu_ttrace, et les créations et destructions répétées de maps ne produisent plus de rétention illimitée d'objets ni d'accumulation de workers de nettoyage.

Pour HFTKernel, cela améliore le cycle de vie de l'observabilité, du traçage, des politiques et de l'instrumentation réseau BPF.

Anneaux TX AF_PACKET plus sûrs

AF_PACKET arrête désormais un envoi bloquant PACKET_TX_RING avant que son nombre positif cumulé d'octets dépasse INT_MAX.

La trame restante attend l'appel d'envoi suivant, préservant la progression et un résultat positif valide même si l'espace utilisateur recycle continuellement les emplacements terminés.

Cela renforce les relectures prolongées de paquets, la génération de trafic, les tests réseau et la qualification des données de marché.

Recyclage page-pool plus fiable

Le recyclage en lot page-pool actualise ses statistiques tant que le verrou producteur protège encore le pool.

Les derniers tampons réseau en cours et la destruction du pool restent coordonnés même avec CONFIG_PAGE_POOL_STATS activé.

Cela assure un recyclage rapide et fiable des tampons réseau et une observabilité page-pool digne de confiance.

Meilleure configuration de l'horodatage matériel

Les opérations ethtool netlink TSCONFIG_GET et TSCONFIG_SET atteignent désormais les périphériques dont l'horodatage matériel est entièrement fourni par le PHY.

L'interface netlink est maintenant alignée sur le comportement ioctl établi des fournisseurs d'horodatage PHY.

Cela renforce la configuration et la découverte de l'horodatage matériel dans les architectures réseau compatibles.

Arrêt des horodatages mlx5 AF_XDP plus propre

Le pilote mlx5 gère désormais la complétion des descripteurs TX AF_XDP sans CQE pendant la destruction d'une file.

Lorsqu'aucun CQE n'est disponible, la fonction d'horodatage renvoie un résultat neutre au lieu de déréférencer une entrée de complétion indisponible.

Cela améliore le cycle de vie des files AF_XDP utilisant l'horodatage TX et le déport des sommes de contrôle.

Observabilité fprobe moins coûteuse

Les gestionnaires fprobe vérifient désormais si RCU observe avant d'agir au repos ou dans les états de quiescence étendue nohz_full.

Le chemin d'activation des sondes utilise rcu_sched_notrace, supprimant les anciens rcu_read_lock() et traitements lockdep à chaque activation tout en conservant une synchronisation sûre des périodes de grâce.

Pour HFTKernel, cela aligne mieux l'instrumentation du noyau sur les configurations CPU isolées et sans ticks.

Transitions d'état KVM SVM renforcées

Sur les hôtes AMD KVM, l'état de vidage TLB en attente est conservé lorsque VMRUN ne réussit pas.

Les exigences de vidage de tous les ASID sont suivies par CPU physique, conformément au périmètre de réutilisation des ASID. Les champs de contrôle ne sont actualisés qu'après une transition réussie.

Cela renforce la gestion de l'état TLB sur les hôtes de virtualisation AMD.

Parcours de la MMU fantôme KVM plus sûrs

KVM arrête désormais immédiatement le parcours des tables de pages fantômes si la racine actuelle est invalide ou fictive et soutenue par la page zéro.

Cela maintient un chemin MMU valide pendant la création concurrente de memslots et le traitement des défauts de page imbriqués.

Ordre correct de maintenance du cache SEV

Pendant la migration SEV au sein d'un hôte, la maintenance du cache de la VM source se termine avant que celle-ci perde son état SEV actif.

La mémoire ne peut pas revenir à l'allocateur de l'hôte avant l'écriture de l'état du cache de l'invité chiffré dans l'ordre requis.

Cela renforce la gestion des VM confidentielles dans le profil HFTKernel KVM Host.

PCI AtomicOps pour les périphériques en passthrough

Un invité en passthrough reconnaît désormais les PCI AtomicOps déjà activées par l'hyperviseur sur un point terminal, même lorsque le Root Port amont est masqué dans sa topologie.

Les accélérateurs et périphériques réseau compatibles peuvent ainsi utiliser les opérations atomiques dans ESXi, Hyper-V et des environnements similaires de passthrough.

Moins de travail dans x86 AES-GCM

L'implémentation x86 AES-GCM ne traite plus le dernier segment AAD comme un segment intermédiaire.

Cela supprime une copie supplémentaire de tampon temporaire et un appel assembleur supplémentaire sur le chemin du dernier segment.

L'amélioration est utile aux infrastructures utilisant l'API cryptographique du noyau pour le réseau chiffré, le stockage ou les services de sécurité.

Outils de mesure inclus

HFTKernel 7.2.10 inclut :

cpujitter

Pour les interruptions d'exécution CPU, les interférences de l'ordonnanceur, l'activité IRQ et softIRQ et les queues de latency.

memjitter

Pour l'allocation, first-touch, le jeu de travail et le comportement sous pression mémoire.

irqjitter

Pour l'analyse de l'activité IRQ et softIRQ.

Les métriques applicatives, la télémétrie de complétion des temporisateurs, l'état des complétions io_uring, les statistiques TCP, les horodatages matériels, les compteurs réseau et les événements KVM complètent la couche de mesure.

Résultat HFTKernel 7.2.10

HFTKernel 7.2.10 renforce le système d'exploitation autour des applications sensibles à la latency :

  • les complétions des temporisateurs haute résolution atteignent rapidement l'espace utilisateur ;
  • les charges gérées par l'ordonnanceur conservent une meilleure localité LLC ;
  • les réceptions zero-copy exposent explicitement les limites de ressources ;
  • les flux d'horodatage de transmission récupèrent proprement après saturation de CQ ;
  • Google GVE DQO traite efficacement le trafic TSO virtualisé ;
  • TCP maintient un état RTT précis après de longues périodes d'inactivité ;
  • la libération RCU génère moins de récupération mémoire en arrière-plan ;
  • les cycles de vie futex et BPF restent bornés et coordonnés ;
  • les chemins AF_PACKET et page-pool conservent une progression fiable ;
  • l'horodatage matériel fonctionne avec les fournisseurs PHY ;
  • fprobe s'intègre plus proprement à nohz_full ;
  • les chemins KVM, SEV et passthrough PCI reçoivent une gestion d'état renforcée.

Ensemble, ces changements rendent les plateformes cloud, physiques, de traitement des paquets et de virtualisation plus prévisibles, mesurables et contrôlables.

HFTKernel 7.2.9

Isolation CPU renforcée, anneaux de paquets plus sûrs et virtualisation plus propre

Base amont : Linux 7.2.9. Changements depuis Linux 7.2.8. Date de publication : 3 octobre 2026.

Partitionnement CPU plus fiable

La gestion cpuset cgroup v2 refuse désormais les configurations où une partition racine distante tente d'utiliser des CPU déjà attribués à une partition locale ancêtre.

Cela préserve la propriété exclusive des CPU et renforce la séparation des charges de trading, réseau, de maintenance et de services.

Pour HFTKernel, l'état des partitions CPU reste cohérent pendant la création, la reconfiguration et la suppression des services.

Complétion zero-copy AF_PACKET plus sûre

PACKET_TX_RING utilise désormais le mécanisme standard de complétion zero-copy.

Un emplacement d'anneau ne devient disponible qu'après libération ou copie de toutes les références aux données du paquet. La propriété des tampons reste ainsi explicite pendant tout le cycle TX.

Le changement renforce :

  • la relecture des données de marché ;
  • les générateurs de trafic ;
  • les sondes de latency fondées sur les paquets ;
  • les bancs de test AF_PACKET ;
  • les charges de qualification réseau.

Progression fiable des anneaux virtio-net

Virtio-net libère désormais les fragments zero-copy concernés avant de détacher les paquets de leur propriétaire lorsque NAPI TX est désactivé.

Cela maintient la progression des configurations PACKET_TX_RING bornées et rend les emplacements terminés à l'émetteur sans attendre une transmission supplémentaire.

La même amélioration du cycle de vie bénéficie à la virtualisation imbriquée avec vhost-net et virtio-net.

Comportement borné du temporisateur TPACKET_V3

TPACKET_V3 calcule désormais les délais de retrait de blocs avec une arithmétique prenant en charge sans risque les grands blocs d'anneaux de paquets.

Cela empêche un débordement de temporisateur de créer un temporisateur haute résolution se relançant continuellement en contexte softIRQ.

Pour les systèmes de capture et de relecture, les temporisateurs sont maîtrisés et un anneau ne peut plus monopoliser un CPU par un traitement softIRQ continu.

Transmission Google GVE DQO renforcée

Le pilote GVE DQO valide désormais plus tôt la géométrie TSO et GSO dans le chemin de transmission.

Les paquets dont le MSS est inférieur au minimum matériel passent par le chemin logiciel approprié avant d'atteindre le périphérique. Cela évite les abandons matériels silencieux et leurs retransmissions.

Le traitement UDP GSO utilise aussi la bonne longueur d'en-tête transport pour calculer les limites de segments et les besoins en descripteurs.

Ces changements améliorent la régularité des transmissions Google Cloud pour les charges TCP et UDP utilisant GVE DQO.

Gestion HugeTLB plus résiliente

Le déplacement des tables de pages HugeTLB pendant mremap() conserve désormais la bonne relation d'adresses entre les mappages source et destination.

Les pages gigantesques sans prise en charge de dissolution à l'exécution restent sur leur chemin de cycle de vie compatible, préservant la cohérence des listes libres et des états de pages.

Ces changements renforcent les jeux de travail HugeTLB explicitement réservés, notamment les configurations à pages de 1 GiB sur les systèmes x86 compatibles.

Ordonnancement mémoire anonyme renforcé

L'initialisation d'une VMA anonyme publie désormais le pointeur anon_vma avec l'ordre mémoire requis.

Tous les champs initialisés deviennent visibles avant qu'un autre CPU puisse utiliser la nouvelle structure.

Cela renforce les chemins concurrents de défauts de page, first-touch, mprotect() et VMA adjacentes, surtout sur les architectures à ordre faible comme ARM64.

Arrêt du writeback cgroup plus prévisible

Le nettoyage writeback des cgroups mémoire inactifs signale désormais les états de quiescence Tasks-RCU pendant les longues opérations de vidage.

Le chemin de vidage des inodes progresse aussi linéairement en reprenant à la position précédente au lieu de reparcourir le même début de liste.

Cela maintient la progression de BPF, ftrace et des autres utilisateurs Tasks-RCU pendant les suppressions massives de services ou conteneurs.

Contrôle DPLL plus précis

La synchronisation des références DPLL utilise désormais une recherche exacte par pin-ID.

Une requête utilisateur ne s'applique qu'à la broche de référence choisie et ne peut plus être redirigée vers une entrée voisine portant un autre identifiant.

Cela renforce le contrôle déterministe de la topologie des sources temporelles sur le matériel compatible.

Horodatage matériel PHY rétabli

Les périphériques réseau fournissant l'horodatage matériel par le PHY ne dépendent plus de rappels d'horodatage du pilote MAC inapplicables à leur architecture.

La configuration PTP atteint directement le chemin d'horodatage PHY, préservant le fonctionnement matériel sur les périphériques compatibles.

Initialisation AWS ENA plus propre

Le nettoyage de détection AWS ENA libère désormais les ressources PHC et de lecture MMIO dans le bon ordre.

L'enregistrement de l'horloge PTP, l'état PHC, les ressources MMIO reposant sur DMA et les données privées du pilote restent alignés pendant l'initialisation partielle et le nettoyage du périphérique.

Cela renforce la gestion du cycle de vie ENA dans le profil HFTKernel Cloud.

Coût des transitions KVM réduit

Les opérations de virtualisation imbriquée utilisent désormais des appels statiques dans plusieurs chemins L2 actifs.

Sur les hôtes Intel compatibles, KVM évite aussi de changer DS_AREA et la configuration PEBS lorsque PEBS invité est inactif. Le chemin concerné supprime deux ou quatre écritures MSR inutiles par aller-retour VMX.

Les processeurs avec isolation PEBS évitent trois écritures MSR PEBS supplémentaires à chaque transition VMX.

Ces améliorations rendent HFTKernel plus efficace comme hôte KVM pour les charges imbriquées et virtualisées sensibles à la performance.

Mesures Intel PEBS plus fiables

Intel PEBS gagne une classification plus précise des chargements et écritures, des contraintes de source de données et un décodage d'état snoop améliorés sur les microarchitectures récentes compatibles.

Cela améliore l'analyse matérielle :

  • de la latency mémoire ;
  • du comportement du cache ;
  • des blocages de chargement et d'écriture ;
  • des effets NUMA ;
  • des retards d'exécution rares.

Il en résulte une observabilité plus fiable pour l'ingénierie de performance et l'analyse de tail latency.

Orientation des files XPS plus cohérente

XPS refuse désormais les identifiants de classes de trafic hors de la configuration active des files.

Cela maintient la cohérence des cartes d'orientation après changement des classes de trafic et préserve des métadonnées valides de placement CPU-file TX.

Outils de mesure inclus

Chaque ensemble de paquets HFTKernel inclut :

cpujitter

Pour les interruptions d'exécution CPU, les interférences d'ordonnancement, l'activité IRQ et softIRQ et les queues de latency.

memjitter

Pour l'allocation, first-touch, le jeu de travail et le comportement sous pression mémoire.

irqjitter

Pour l'analyse de l'activité IRQ et softIRQ.

Les outils sont livrés dans des paquets natifs du système d'exploitation correspondant à la version HFTKernel et au profil de plateforme.

Résultat HFTKernel 7.2.9

HFTKernel 7.2.9 renforce le système autour des applications sensibles à la latency :

  • la propriété exclusive des CPU reste cohérente ;
  • la propriété et la complétion des anneaux de paquets sont explicites ;
  • les captures conservent un comportement borné des temporisateurs ;
  • les transitions HugeTLB et mémoire anonyme sont plus robustes ;
  • la suppression des cgroups produit moins d'interférences de fond prolongées ;
  • la configuration PTP et DPLL devient plus précise ;
  • la gestion du cycle de vie ENA est plus propre ;
  • les transitions KVM effectuent moins de travail inutile ;
  • les mesures PEBS fournissent des données de performance plus fiables.

Ensemble, ces changements rendent l'hôte plus prévisible, mesurable et contrôlable dans les déploiements cloud, physiques, de capture de paquets et de virtualisation.

HFTKernel 7.2.8

Récupération mémoire plus propre, capture de paquets renforcée et meilleurs diagnostics temporels

Base amont : Linux 7.2.8. Changements depuis 7.2.7. Date de publication amont : 25 septembre 2026.

Récupération mémoire plus prévisible

Linux 7.2.8 améliore la séparation entre les shrinkers globaux des systèmes de fichiers et la récupération par cgroup mémoire.

Les mécanismes d'objets en cache ignorant memcg restent dans la récupération globale, tandis que ceux des systèmes de fichiers compatibles memcg peuvent encore participer à la récupération par memcg. Cela évite des tâches globales répétées sur de nombreuses paires memcg-nœud NUMA, tout en restaurant la récupération utile par memcg, notamment celle du slab d'inodes XFS.

Pour HFTKernel, cela améliore l'isolation des services et réduit le bruit de fond sur les systèmes utilisant des conteneurs, cgroup v2 ou des limites mémoire par service.

Suivi de mémoire verrouillée plus précis

La version corrige le suivi locked_vm pour MREMAP_DONTUNMAP lorsque des VMA verrouillées sont remappées sans supprimer le mappage source.

Elle sécurise aussi les mises à jour NR_MLOCK dans les chemins où munlock(), les E/S directes, les folios du cache de pages et les complétions IRQ peuvent interagir sur un même CPU.

Pour HFTKernel, cela renforce le suivi des jeux de travail épinglés et verrouillés, courants dans les applications sensibles à la latency et les charges de mesure.

Comportement plus clair des grands mappages de mémoire gérée par pilote

Les grands mappages PFNMAP ignorent désormais les réglages THP génériques lorsqu'ils ne s'appliquent pas. L'historique amont précise que ces mappages ne sont pas de la mémoire THP récupérable normale et qu'un traitement incorrect dégradait réellement les performances des configurations concernées.

Pour HFTKernel, cela concerne les mappages spécialisés de périphériques, les mappages de type DAX et la mémoire gérée par pilote, pas la politique THP applicative par défaut.

Chemins AF_PACKET de capture et relecture renforcés

AF_PACKET reçoit deux corrections pratiques pour le traitement des paquets par anneaux.

TPACKET_V3 conserve désormais la taille validée de la zone privée sans la tronquer dans un champ interne plus petit. Les enregistrements de paquets ne chevauchent plus les métadonnées privées de l'anneau.

Le chemin d'erreur d'en-tête VNET libère désormais correctement la propriété RX, empêchant un paquet en échec de laisser un emplacement indisponible pour le paquet valide suivant.

Pour HFTKernel, cela bénéficie directement à la capture des données de marché, à la relecture des paquets, aux sondes de latency, aux générateurs de trafic et aux bancs réseau fondés sur AF_PACKET.

Comportement TCP et horodatage des sockets plus robustes

TCP exclut désormais les ACK trop anciens du chemin rapide et les soumet à la validation normale. Les mises à jour de l'état de connexion restent ainsi alignées sur la validation des ACK.

La configuration d'horodatage prend désormais le verrou du socket lors de la modification des indicateurs concernés, tout en préservant le cas courant sans verrou. Cela renforce la correction du cycle de vie des horodatages dans les systèmes à nombreux sockets.

Pour HFTKernel, ces changements améliorent la correction des connexions durables TCP, TLS, WebSocket, de contrôle et d'observabilité.

Meilleurs diagnostics PTP et PHC

Pour MACB/GEM, les horodatages système retournés autour d'une lecture PHC encadrent désormais correctement la lecture du registre matériel. L'historique amont indique que l'intervalle précédent pouvait être irréaliste par sa brièveté par rapport à la lecture ordonnée réelle, biaisant la synchronisation fondée sur le point médian.

Pour stmmac, phc_index reste désormais non défini lorsque l'horodatage matériel est pris en charge mais qu'aucune horloge PTP n'est encore enregistrée. Cela évite de signaler un indice PHC apparemment valide pour la mauvaise horloge.

Pour HFTKernel, cela améliore l'intégrité des diagnostics temporels et réduit le risque de découverte PHC trompeuse dans les configurations NIC compatibles.

Gestion du cycle de vie RDMA, EFA et IRQ renforcée

Le pilote AWS EFA garde désormais les ressources EQ et les files d'administration actives tant que leurs gestionnaires IRQ sont enregistrés. L'ordre d'initialisation et de destruction correspond aux ressources accessibles en contexte d'interruption.

Les chemins RDMA reçoivent aussi des améliorations de cycle de vie et d'ordre, notamment des barrières locales pour l'enregistrement mémoire Intel irdma et une gestion XArray sûre en contexte IRQ pour les tables QP et CQ erdma.

Pour HFTKernel Hardware et les environnements proches du cloud, cela renforce la fiabilité du cycle de vie RDMA piloté par interruptions.

Diagnostics et observabilité plus fiables

perf améliore le nettoyage des événements PMU invités médiés lorsque des modules sont déchargés avec des connexions perf actives.

Les métadonnées des groupes netlink sont désormais actualisées par publication sûre pour RCU et libération différée pour les lecteurs sans verrou.

drop_monitor sécurise la destruction des points de trace, des pointeurs par CPU et des temporisateurs, avec notamment timer_shutdown_sync() pour empêcher le réarmement pendant la destruction.

Pour HFTKernel, cela renforce la fiabilité des sessions diagnostiquant les pertes de paquets, le bruit d'ordonnancement et les rares événements de tail latency.

Outils de mesure inclus

cpujitter

Mesure le jitter d'exécution CPU, les interférences des interruptions et les queues de latency.

memjitter

Mesure la latency d'allocation, le comportement first-touch, les jeux de travail verrouillés et le comportement mémoire sous charge.

Utilisez les deux avec les mesures applicatives.

Validez la mise à jour par des tests A/B contrôlés avec la même chaîne de compilation, configuration du noyau, disposition CPU et IRQ et charge. Incluez des tests de capture de paquets, de diagnostic temporel et de cycle de vie des fonctions utilisées dans votre déploiement.

HFTKernel 7.2.7

Isolation CPU plus cohérente, chemins de contrôle allégés et mesures plus fiables

Base amont : Linux 7.2.7. Changements depuis 7.2.6. Date de publication amont : 21 septembre 2026.

Isolation CPU et suivi de l'ordonnanceur

La gestion cpuset cgroup v2 préserve les CPU isolés au démarrage dans son suivi d'isolation lorsqu'une partition isolée est libérée ou change d'état. cpuset.cpus.isolated reste aligné sur l'isolation des domaines au démarrage, permettant une automatisation fiable du placement pendant le cycle de vie des services.

EEVDF maintient désormais de manière cohérente les métadonnées de temps virtuel minimal et de tranches minimale/maximale lors des mises à jour de l'arbre de file, notamment en initialisant max_slice avant la mise en file. Cela soutient l'ordonnancement fair des threads applicatifs et de service.

Le suivi du repos moyen n'est actualisé que si un horodatage de repos valide est disponible, reliant le suivi de l'ordonnanceur aux périodes réelles de repos.

Moins de migrations RT et deadline inutiles

Les ordonnanceurs RT et deadline ignorent les tâches dont la migration est désactivée lorsqu'ils choisissent une tâche à déplacer vers un autre CPU. Ils peuvent choisir une tâche mobile ou revenir plus tôt, évitant des réveils répétés du CPU-stopper incapables de progresser. Cette amélioration concerne les chemins RT/DL correspondants.

Travail différé de console plus efficace

La sortie différée de console nbcon utilise du travail IRQ paresseux. Lorsque le tick local de l'ordonnanceur fonctionne, le travail peut y être traité sans demander une nouvelle interruption immédiate. Un CPU dont le tick est arrêté peut encore nécessiter une interruption, préservant la progression sans ticks.

Allocation des paquets de contrôle TCP plus prévisible

Les paquets de réinitialisation active TCP utilisent des indicateurs d'allocation atomique, évitant la récupération mémoire directe sous verrou de socket. Cela allège l'allocation dans les chemins concernés de fermeture et déconnexion, notamment la destruction des sockets des piles de stockage réseau.

Suivi des tampons de réception io_uring plus précis

Les réceptions utilisant MSG_TRUNC comptabilisent les octets réellement copiés dans les tampons fournis tout en conservant le résultat demandé de longueur complète. La consommation progressive reste alignée sur la région disponible, permettant une réutilisation fiable des tampons dans ce mode.

Diagnostics d'horodatage matériel cohérents

Le pilote mlx5 conserve les statistiques cumulées d'horodatage matériel lors des changements du nombre de canaux, des classes de trafic et des modes d'horodatage DMA ou de port. Leur persistance permet aussi au chemin de lecture d'éviter l'ancien mutex d'état. Cela renforce la télémétrie pendant les reconfigurations NIC.

Cycles de vie des pilotes réseau plus fiables

Azure MANA : la reconfiguration XDP conserve l'état précédent valide du programme si la préallocation des tampons de réception échoue.

Intel IDPF : le travail de modération dynamique des interruptions s'arrête avant la libération des vecteurs de file. Les en-têtes VLAN sont aussi pris en compte lors de l'analyse des paquets de réception regroupés par le matériel.

GRO et transfert : les paquets TCP agrégés matériellement restent compatibles avec fraglist GRO et la segmentation ultérieure. Cela concerne les configurations de transfert Linux combinant ces déports.

Observabilité des performances plus fiable

L'échantillonnage Intel PEBS coordonne l'arrêt du PMU et le vidage du tampon partagé pour empêcher les vidages simultanés. Cela améliore la fiabilité de l'échantillonnage matériel sur les systèmes Intel compatibles.

Les histogrammes de trace conservent les modificateurs de pourcentage et de graphique des valeurs. Leur configuration sélectionne et valide l'horloge de trace avant de publier le déclencheur, renforçant la reproductibilité des sessions diagnostiques.

Gestion du cycle de vie mémoire et E/S renforcée

SLUB coordonne les retours à la liste libre avec les mises à jour des listes partielles sous le verrou de nœud approprié, conservant un état cohérent de l'allocateur lors des opérations concurrentes.

Sur x86, les tables de pages créées en scindant de grands mappages du noyau suivent le chemin standard d'allocation des tables du noyau. Construction, suivi, libération différée et invalidation IOTLB restent coordonnés.

Pour les écritures asynchrones io_uring, le suivi des écritures du système de fichiers se termine dans le rappel réel de complétion des E/S sans attendre le traitement task-work ultérieur. Cela améliore la coordination avec le gel et l'arrêt du système de fichiers.

Outils de mesure inclus

cpujitter

Mesure le jitter d'exécution CPU et le comportement des queues de latency.

memjitter

Mesure l'allocation mémoire, first-touch, le jeu de travail et le comportement sous pression mémoire.

Utilisez les deux avec les mesures applicatives.

Validez la mise à jour par des tests A/B contrôlés avec la même chaîne de compilation, configuration du noyau, disposition CPU et IRQ et charge. Incluez des mesures en régime établi et des tests de cycle de vie des fonctions déployées.

HFTKernel 7.2.6

Gestion du temps plus cohérente, ressources mieux gérées et cycles de vie réseau renforcés

Base amont : Linux 7.2.6. Changements depuis 7.2.5. Date de publication amont : 14 septembre 2026.

Gestion du temps système plus cohérente

La gestion du temps inclut désormais dans ntp_error l'ajustement d'horodatage préservant la continuité lorsque le multiplicateur de fréquence de clocksource change. Le calcul d'erreur de régulation de l'horloge reste ainsi aligné sur l'ajustement, notamment lors de grandes corrections de fréquence issues d'une référence externe.

Gestion du placement CPU et mémoire plus efficace

Dans cgroup v2, la gestion du branchement à chaud cpuset évite les mises à jour redondantes des tâches lorsque les masques CPU et nœuds NUMA effectifs sont hérités d'un parent. Cela réduit les tâches inutiles de placement pendant les mises à jour concernées de topologie.

Moins de récupération mémoire inutile

Lorsqu'un cgroup mémoire est supprimé, le suivi de taille LRU est transféré à son parent au lieu de rester dupliqué dans l'enfant. LRU traditionnel évite de rescanner les listes vidées, tandis que MGLRU bénéficie d'un suivi plus précis du budget des nœuds fantômes. Cela améliore le suivi des ressources lors des redémarrages de services, renouvellements de conteneurs et pressions mémoire.

Cadencement des paquets FQ plus cohérent

FQ ne compense désormais que la dérive positive d'ordonnancement pour calculer les délais de cadencement. Avec le déport de cadencement activé, un retrait anticipé ne raccourcit plus l'intervalle suivant dans les chemins concernés à débit limité et sans EDT. La validation à l'exécution de quantum et initial_quantum maintient aussi la configuration FQ dans les limites prises en charge.

Gestion AF_XDP et des tampons DMA plus fiable

Le pilote virtio-net redimensionne désormais son tableau de tampons AF_XDP avec l'anneau RX. La capacité des tampons reste ainsi alignée sur la configuration des files lorsqu'une application AF_XDP est attachée.

Le code page-pool partagé coordonne aussi plus soigneusement la suppression des mappages DMA et le nettoyage des métadonnées lors de destructions et retours de pages concurrents, renforçant le cycle de vie des tampons réseau.

Configuration matérielle et réseau virtuel renforcée

Intel E810 PTP : le pilote ICE peut recourir à la file sideband lorsque l'interface de temporisateur PHY à faible latency dépasse son délai. Cela améliore la réinitialisation PTP après les mises à jour du micrologiciel et les réinitialisations associées tout en préservant le chemin normal à faible latency.

Azure MANA : l'allocation MSI-X respecte la capacité réelle de la table de vecteurs du périphérique, améliorant l'installation des ressources d'interruption sur les très grandes VM.

NVIDIA mlx5 : les changements d'état vport E-Switch préservent la vitesse TX maximale configurée, maintenant la cohérence du port virtuel pendant les transitions.

Diagnostics de latency plus fiables

Les diagnostics des temporisateurs haute résolution comptent désormais les nouvelles tentatives d'interruption qui récupèrent avec succès, améliorant la précision de nr_retries dans /proc/timer_list.

Intel Processor Trace reçoit une gestion arrêt/démarrage plus fiable. Le nouvel outil perf sched exige les échantillons de trace pertinents avant d'afficher un tableau de latency, rendant explicites les enregistrements incomplets.

Suivi E/S plus complet pendant le branchement à chaud CPU

Les statistiques de la couche bloc collectent et réinitialisent les échantillons de tous les CPU possibles, y compris ceux désactivés pendant une fenêtre. Cela préserve les échantillons de latency en attente pour les chemins de contrôle E/S qui les utilisent.

Outils de mesure inclus

cpujitter

Mesure le jitter d'exécution CPU, les interférences des interruptions et les queues de latency.

memjitter

Mesure la latency d'allocation, le comportement first-touch, les jeux de travail verrouillés et le comportement mémoire sous charge.

HFTKernel 7.2.6 offre une gestion du temps plus cohérente, une gestion des ressources allégée et des cycles de vie réseau renforcés.

HFTKernel 7.2.5

Mémoire, synchronisation et diagnostics de latency plus prévisibles

Fondé sur Linux 7.2.5. Changements par rapport à Linux 7.2.4.

Contrôle HugeTLB et NUMA plus fiable

L'allocation de pages HugeTLB gigantesques via CMA vérifie désormais le nœud NUMA préféré par rapport au nodemask autorisé, utilise les limites cpuset actuelles sans masque explicite et peut réessayer après un changement concurrent de cpuset. Cela améliore le placement des grands tampons préalloués, notamment les pages de 1 GiB sur x86 utilisant ce chemin.

La gestion du pool HugeTLB conserve max_huge_pages lors de la libération des pages excédentaires. Les pages migrées restent migrables et membres de la liste active, même au sein du même nœud NUMA. Les compteurs cgroup sont initialisés de manière cohérente indépendamment de CONFIG_DEBUG_VM, y compris les limites illimitées indiquées par max.

Synchronisation par héritage de priorité plus cohérente

Des fonctions dédiées d'ordonnancement PI-futex encadrent rt_mutex_wait_proxy_lock() sans appeler sched_submit_work() dans le chemin de verrou proxy. Cela améliore le suivi de synchronisation des applications utilisant des futex à héritage de priorité.

Sur PREEMPT_RT, la complétion PI-requeue évite un rcuwait_wake_up() redondant dans Q_REQUEUE_PI_LOCKED, maintenant la cohérence du transfert de verrou et des réveils. Ce second changement est propre à PREEMPT_RT.

Diagnostics BPF et ftrace plus fiables

bpf_get_stackid() protège la collecte de la chaîne d'appels et l'accès au tampon par CPU retourné contre la préemption. L'initialisation concurrente de ftrace_ops est synchronisée tout en préservant le chemin rapide des objets initialisés.

Les opérations de filtres de fonctions et les lectures des filtres/déclencheurs d'événements conservent les références requises aux instances de trace. Cela renforce le profilage automatisé et l'investigation des rares valeurs extrêmes de latency sur les systèmes PREEMPT.

Profilage matériel plus précis

La disponibilité d'Intel PMU AnyThread suit la capacité CPUID correspondante. Le filtrage Intel LBR limité à l'utilisateur vérifie les deux adresses de branchement, conservant les échantillons dans le périmètre demandé.

Le programme BPF étendu d'arguments d'appels système de perf trace utilise bpf_for, rendant les vérifications de fin de boucle plus robustes face aux changements de Clang. Cette amélioration nécessite une compilation perf actualisée.

Initialisation unique des sockets plus propre

DO_ONCE_SLEEPABLE() reporte la désactivation de clé statique sur une file de travail système, hors des verrous de l'appelant. Cela sépare les mises à jour globales des clés statiques du verrouillage des sockets dans des chemins comme __inet_hash_connect(). Le changement concerne l'initialisation unique, pas le traitement par paquet.

Gestion KVM de la mémoire et des temporisateurs renforcée

Le vieillissement sans verrou de Shadow-MMU réutilise la valeur de mappage inverse capturée pendant la vérification du verrou. Les mises à jour du bit Accessed de TDP-MMU utilisent LOCK CMPXCHG pour rester cohérentes avec les changements SPTE concurrents.

Les temporisateurs synthétiques Hyper-V émulés par KVM vérifient les conversions en unités de 100 nanosecondes et plafonnent les échéances à KTIME_MAX, conservant les expirations lointaines dans le futur. Ces changements concernent le noyau de l'hôte KVM. Pour un invité cloud, le bénéfice dépend de la mise à jour de l'hôte du fournisseur.

Stockage et politiques mémoire facultatives plus robustes

NVMe multipath coordonne la destruction des espaces de noms avec les lecteurs SRCU. NVMe/TCP vérifie tôt les C2HData entrants par rapport à la direction de commande, renforçant les chemins de stockage réseau concernés.

La priorisation DAMOS utilise une somme glissante des accès pour des décisions de schéma plus cohérentes. Avec THP tmpfs activé, MADV_HUGEPAGE transmet les indicateurs VMA actualisés à khugepaged. Ces améliorations concernent les configurations utilisant ces sous-systèmes et politiques.

Outils de mesure inclus

cpujitter

Mesure le jitter d'exécution CPU, les interférences des interruptions et les queues de latency.

memjitter

Mesure la latency d'allocation, le comportement first-touch, les jeux de travail verrouillés et le comportement mémoire sous charge.

Validez la charge par une comparaison A/B de 7.2.4 et 7.2.5 en conservant la même chaîne de compilation, configuration du noyau, disposition CPU/IRQ et charge.

HFTKernel 7.2.5 renforce le placement des grandes pages, la synchronisation par héritage de priorité et les diagnostics de latency, avec une gestion mémoire et temporelle plus cohérente pour les hôtes KVM.

HFTKernel 7.2.4

Moins de travail inutile du noyau. Une infrastructure plus prévisible.

Fondé sur Linux 7.2.4. Changements par rapport à Linux 7.2.3.

Épinglage mémoire à long terme plus efficace

Le suivi des références GUP des pages épinglées a été corrigé. Le chemin concerné peut désormais éviter des vidages locaux et globaux inutiles des tampons LRU internes.

Pour HFTKernel, cela réduit les tâches inutiles entre CPU lors de la préparation des tampons épinglés et contribue à minimiser le bruit système autour des cœurs de trading dédiés.

Récupération des systèmes de fichiers mieux bornée

JBD2 compte désormais chaque tampon de point de contrôle examiné dans le budget de balayage, y compris les tampons occupés. Il vérifie aussi le besoin de réordonnancement lorsqu'il ignore des tampons occupés.

Cela borne le travail d'un passage de shrinker et permet de libérer rapidement le verrou du journal lorsqu'un réordonnancement est demandé. Sur les nœuds ext4, le changement est utile quand l'activité du système de fichiers coïncide avec une pression mémoire.

Gestion mémoire mieux coordonnée

Les boucles de récupération et de migration de pages signalent explicitement les états de quiescence à RCU Tasks. Les périodes de grâce peuvent ainsi se terminer malgré un traitement mémoire prolongé sur les noyaux PREEMPT. Le changement de migration concerne particulièrement les hôtes KVM utilisant les rappels MMU notifier.

Avec vm.defrag_mode=1, les allocations non déplaçables suivent le chemin approprié de récupération et de compaction pageblock. La compaction de pageblocks entiers utilise aussi des règles de sélection mémoire plus adaptées, permettant à l'allocateur de mieux progresser dans ce mode.

SLUB remplit les sheaves réutilisables sans consommer les réserves d'urgence pfmemalloc, les préservant pour leurs usages prévus par le noyau.

Gestion des files TX réseau plus cohérente

La pile réseau commune améliore l'initialisation de trans_start à l'activation des files TX. Chaque file concernée reçoit la bonne référence temporelle watchdog, fiabilisant la surveillance de son état pendant l'activation de l'interface.

Le pilote Broadcom bnxt_en notifie désormais par doorbell les paquets déjà préparés, même si le dernier paquet d'une rafale échoue à la linéarisation. Le périphérique est informé des descripteurs TX en file sans attendre un autre appel de transmission.

Livraison des interruptions PCI plus fiable sous Hyper-V

Pendant le retrait à chaud d'un CPU, une interruption PCI MSI en attente peut désormais être renvoyée à son nouveau CPU cible via le domaine d'interruption parent.

Pour HFTKernel Cloud sous Hyper-V, cela améliore la fiabilité PCI lors des changements des vCPU actifs. Le changement cible précisément la réaffectation d'interruptions lorsqu'un CPU est désactivé.

Coût E/S des systèmes de fichiers réduit

Pour les petites réécritures tamponnées dans de grands folios déjà à jour, le traitement s'arrête après la plage demandée au lieu de parcourir les buffer heads restants. Cela réduit le travail CPU inutile, notamment dans le chemin ext4 concerné.

Dans dm-io, les requêtes DM_IO_BIO clonent le bio initial au lieu de reconstruire le vecteur de pages. L'itérateur et l'alignement d'origine sont préservés, simplifiant les E/S des configurations Device Mapper utilisant ce chemin.

Diagnostics de latency et jitter plus fiables

La collecte et la copie des chaînes d'appels BPF sont protégées contre la préemption lors de l'accès au tampon partagé par CPU. Cela fiabilise la collecte des piles sur les noyaux PREEMPT.

Les lectures de trace_pipe sont synchronisées avec le redimensionnement des sous-tampons de trace, renforçant l'observabilité des événements pendant la reconfiguration du traçage.

Gestion plus stricte des horloges auxiliaires

__do_adjtimex() vérifie désormais la réussite de la lecture de l'horloge auxiliaire. Si elle est indisponible, il renvoie -ENODEV au lieu d'utiliser une valeur temporelle non obtenue.

Cela améliore la gestion de l'état des horloges auxiliaires dans les configurations utilisant cette API temporelle.

Configuration Intel Speed Select plus fiable

Sur les plateformes Intel compatibles, la validation SST-CP est renforcée pour les plages de fréquence, la priorité proportionnelle et les identifiants CPU et CLOS.

Pour HFTKernel Hardware, cela améliore le contrôle des paramètres matériels de performance lors de la configuration des systèmes compatibles.

Outils de mesure inclus

cpujitter

Mesure le jitter d'exécution CPU et les queues de la distribution de latency.

memjitter

Analyse la latency mémoire, le comportement d'allocation, first-touch et les jeux de travail verrouillés.

Évaluez l'effet sur la charge cible à l'aide de tests A/B reproductibles, de métriques réseau et de distributions de latency applicative.

HFTKernel 7.2.4 vise à réduire le travail inutile du noyau, à rendre le service mémoire et périphériques plus prévisible et à fournir une base fiable de mesure.

HFTKernel 7.2.3

Traitement des paquets plus prévisible dans les déploiements Cloud et Hardware

HFTKernel a été mis à jour vers Linux Kernel 7.2.3.

HFTKernel 7.2.3 inclut les changements de la branche stable Linux 7.2.3 les plus pertinents pour le HFT, les données de marché, les systèmes d'exécution et l'infrastructure sensible à la latency.

Cette version vise principalement un cycle de vie des paquets plus fiable, un TX sans verrou prévisible, un TCP correct sur les réseaux asymétriques et des chemins d'infrastructure virtualisée renforcés.

AF_PACKET et capture de paquets

Le cycle de vie de AF_PACKET TX_RING reposant sur la mémoire vmalloc a été amélioré.

La mémoire de l'anneau TX reste active jusqu'à la fin de chaque skb associé. Les mises à jour d'horodatage et TP_STATUS_AVAILABLE se terminent avant la libération de la référence en attente, sans ajouter de verrou au chemin critique de complétion TX.

Cela est particulièrement utile aux systèmes HFTKernel servant à :

  • La capture des données de marché
  • La relecture de paquets
  • Les sondes de latency
  • Les générateurs de trafic
  • Les bancs de test réseau
  • Les systèmes de mesure fondés sur AF_PACKET

Le changement rend la complétion TX et la libération de mémoire d'anneau plus cohérentes sans ajouter de synchronisation au chemin principal de traitement des paquets.

Chemin de données VLAN plus stable

Les interfaces VLAN préservent désormais un hard_header_len stable, héritent correctement des marges requises en tête et en fin et maintiennent le bon alignement des en-têtes pour AF_PACKET SOCK_RAW.

Cela améliore la prévisibilité des chemins TX sans verrou utilisant :

  • Le déport matériel VLAN
  • Les interfaces réseau virtuelles
  • Les conteneurs et espaces de noms réseau
  • Le réseau cloud
  • La capture de paquets par sockets bruts

Pour HFTKernel, cela signifie des métadonnées et une disposition des tampons plus cohérentes lorsque l'état du déport VLAN change.

MSS TCP correct sur les réseaux asymétriques

Linux 7.2.3 calcule le MSS TCP annoncé à partir du MTU configuré de l'interface ou de la route, plutôt que du PMTU du chemin sortant découvert précédemment.

Cela concerne particulièrement les configurations cloud asymétriques, les répartiteurs DSR et les réseaux superposés où les trafics entrants et sortants peuvent emprunter des chemins aux MTU différents.

Le changement évite qu'un MTU sortant plus petit du réseau superposé limite inutilement la taille des segments TCP entrants pendant toute la connexion.

Le MSS issu de la route est aussi borné par TCP_MIN_MSS, rendant l'initialisation de la fenêtre TCP plus robuste en présence de métriques de route inhabituelles.

Pour HFTKernel, cela améliore la prévisibilité des connexions durables TCP, TLS et WebSocket des systèmes de données de marché et d'exécution.

Transition propre entre AVX2 et SSE

L'implémentation de recherche nftables PIPAPO AVX2 exécute désormais vzeroupper avant de revenir à du code pouvant utiliser SSE.

L'effacement des parties supérieures des registres YMM évite la pénalité documentée de transition AVX-to-SSE dans le code SSE suivant.

Cela concerne les systèmes où nftables et la recherche AVX2 PIPAPO restent actifs sur les cœurs d'infrastructure ou de service. Pour HFTKernel, une petite source supplémentaire, mais évitable, de surcoût CPU imprévisible disparaît.

Plan de contrôle XFRM et IPsec plus prévisible

Les états de maintien de connexion XFRM NAT sont désormais traités par lots de taille fixe, bornant la mémoire temporaire indépendamment du nombre total d'états.

Le verrouillage a aussi été remanié pour séparer la collecte des références du traitement des états.

Pour l'infrastructure cloud, cela apporte :

  • Une utilisation bornée de la mémoire temporaire
  • Un traitement plus robuste des grands ensembles d'états XFRM
  • Un comportement plus prévisible du plan de contrôle IPsec
  • Une interaction plus cohérente avec softirq et les chemins de destruction d'états

Ces changements sont hors du chemin critique principal du trading, mais renforcent la résilience opérationnelle des nœuds cloud et des réseaux superposés chiffrés.

Déport TLS zero-copy renforcé

Le déport TLS sur périphérique gère désormais plus fiablement la limite de fragments d'un enregistrement TLS ouvert.

Lorsque le tableau de fragments est plein, l'enregistrement est transmis même si l'application utilise MSG_MORE et les chemins zero-copy splice().

Cela renforce :

  • Le déport TLS sur NIC
  • TLS_TX_ZEROCOPY_RO
  • Les chemins d'envoi zero-copy
  • Les flux TCP chiffrés sous forte charge

Pour HFTKernel, le changement est utile aux nœuds d'infrastructure où la terminaison TLS ou le déport TLS du noyau est effectué directement par l'adaptateur réseau.

KVM et AMD SEV/SNP

KVM améliore la gestion AMD SEV et SEV-SNP :

  • Les mécanismes guest_memfd propres à SEV ne sont connectés que si SEV est activé
  • L'infrastructure d'appels statiques peut supprimer un CALL+RET inutile lorsque SEV n'est pas utilisé
  • Le suivi VMSA contrôlé par l'invité est plus robuste
  • Un vCPU revient correctement à l'état exécutable après AP_CREATE
  • La prise en charge de la mémoire adossée à des fichiers pour les invités chiffrés est rétablie
  • Les tampons temporaires de chiffrement sont alloués comme pages entières

Ces changements comptent surtout lorsque HFTKernel est hôte KVM ou utilise la virtualisation confidentielle AMD. Leur effet direct dans une VM cloud ordinaire dépend du noyau hôte du fournisseur.

NVMe/TCP et Soft RoCE

L'utilisation de page_frag_cache pendant la création concurrente d'espaces de noms NVMe/TCP est désormais sérialisée, améliorant le cycle de vie des tampons PDU pendant l'initialisation parallèle du stockage.

Soft RoCE actualise plus régulièrement les ressources du répondeur lorsque IB_QP_MAX_DEST_RD_ATOMIC change : les tableaux de remplacement ne sont installés qu'après l'arrêt de la tâche du répondeur.

Ces changements sont utiles aux infrastructures HFT utilisant le stockage réseau, le RDMA logiciel, des laboratoires ou la validation RDMA virtualisée. Ils ne modifient pas le chemin rapide principal du RDMA matériel.

Validation eBPF

L'autotest BPF sockmap est corrigé pour les paquets avec un skb non linéaire.

L'analyseur reste en lecture seule, tandis que les données requises du paquet sont explicitement linéarisées dans le programme de verdict avant l'accès direct.

Cela améliore les tests de régression des chemins BPF sockmap et renforce le processus de compilation et de qualification HFTKernel.

Évaluation de l'effet

Linux 7.2.3 ne publie pas de nouvelles mesures de latency médiane, p99, p99.9 ou p99.99 pour ces changements.

L'effet pratique de la version doit donc être vérifié par des mesures A/B contrôlées sur la charge cible.

HFTKernel 7.2.3 renforce les chemins réseau Linux où le cycle de vie des paquets, les métadonnées des tampons, le choix du chemin TCP et les tâches d'infrastructure de fond peuvent affecter la stabilité et la reproductibilité des systèmes sensibles à la latency.

Outils de mesure inclus

HFTKernel 7.2.3 inclut aussi cpujitter et memjitter comme outils de mesure natifs correspondant à la version.

cpujitter

mesure le jitter d'exécution CPU, les interférences IRQ et softirq et la tail latency extrême.

memjitter

mesure la latency d'allocation, first-touch, les jeux de travail verrouillés et la latency mémoire sous charge.

Les composants d'exécution et les outils de mesure restent alignés sur la même matrice immuable de versions Cloud et Hardware.

HFTKernel 7.2.3 renforce le cycle de vie des paquets, les métadonnées VLAN, le choix du MSS TCP, le déport TLS, les E/S virtualisées, KVM chiffré, le stockage et la validation pour une plateforme HFT plus stable et prévisible.

HFTKernel 7.2.2

Traitement des fragments GSO plus fiable dans le réseau cloud

HFTKernel a été mis à jour vers Linux Kernel 7.2.2.

Cette version ciblée renforce le traitement des paquets IPv4 et IPv6 fragmentés dans les réseaux virtualisés ou faisant intervenir l'espace utilisateur.

Chemin de données réseau

Lorsqu'un fragment IP entre dans la file de réassemblage partagée, le noyau réinitialise désormais son état GSO avec skb_gso_reset().

  • L'état GSO des fragments individuels n'est plus transmis au paquet réassemblé.
  • Le paquet réassemblé atteint la segmentation logicielle avec le bon état.
  • La correction commune couvre IPv4, IPv6, le suivi des connexions Netfilter et le réassemblage 6LoWPAN.
  • L'interaction entre réassemblage, GSO et skb_segment() est plus robuste.

Le changement se trouve dans le chemin commun inet_frag_queue_insert() et ne touche qu'un fichier du noyau.

Valeur pratique pour HFTKernel

La mise à jour concerne particulièrement les systèmes utilisant :

  • TUN/TAP
  • AF_PACKET avec PACKET_VNET_HDR
  • Virtio-net et KVM
  • Les machines virtuelles cloud
  • Les espaces de noms réseau
  • La capture et la relecture de paquets
  • Les générateurs de trafic et les bancs de test réseau
  • Les passerelles virtualisées de données de marché et d'exécution

Pour HFTKernel, cela apporte un chemin réseau plus résilient et un traitement plus fiable des combinaisons rares de fragmentation IP et de métadonnées GSO.

Validation amont

Les tests amont ont couvert quatre géométries différentes de paquets IPv4 et IPv6 fragmentés. Après correction, chaque datagramme de test a été livré entièrement et sans message du noyau.

Évaluation de l'effet

Cette amélioration vise la résilience opérationnelle plutôt que l'accélération du chemin réseau rapide ordinaire.

Le projet amont ne publie pas de nouvelles mesures de throughput, de latency médiane ou de tail latency pour Linux 7.2.2. La formulation correcte pour HFTKernel est :

HFTKernel 7.2.2 améliore la fiabilité des chemins GSO et de réassemblage de fragments dans les réseaux virtualisés ou faisant intervenir l'espace utilisateur.

Outils de mesure natifs inclus

HFTKernel 7.2.2 inclut aussi cpujitter et memjitter comme outils de mesure natifs.

cpujitter

mesure le jitter d'exécution CPU, les interférences IRQ et softirq et la tail latency extrême.

memjitter

analyse la latency d'allocation, first-touch, les jeux de travail verrouillés et le comportement mémoire sous charge.

HFTKernel 7.2.2 renforce les chemins réseau de l'infrastructure cloud, des VM et des systèmes de capture et relecture du trafic, rendant la plateforme Linux pour le HFT plus résiliente et prévisible.

HFTKernel 7.2

Isolation CPU plus propre, temps plus précis et meilleur contrôle de tail latency

HFTKernel a été mis à jour vers Linux Kernel 7.2.

Cette version renforce les chemins du noyau les plus importants pour le HFT, les données de marché, les passerelles d'exécution et les autres infrastructures sensibles à la latency.

Principales améliorations

  • Isolation CPU NO_HZ_FULL plus propre, avec moins d'activité de service sur les cœurs critiques pour la latency
  • Corrélation plus précise entre les chemins temporels PTP, PHC, TSC, KVMclock et Hyper-V
  • Ordonnancement tenant compte du cache et meilleure localité du cache de dernier niveau pour les charges liées
  • Correction futex renforcée et meilleure évolutivité ciblée de membarrier
  • Travail de tâches io_uring sans verrou moins coûteux et chemins réseau zero-copy renforcés
  • Améliorations NAPI, TCP et Azure MANA pour un chemin réseau plus stable
  • Améliorations NUMA, MGLRU, mémoire contiguë et /proc pour un comportement système plus prévisible
  • Observabilité IRQ et RTLA moins coûteuse pour repérer les événements rares de latency

Outils de mesure natifs inclus

HFTKernel 7.2 inclut cpujitter et memjitter en paquets natifs pour chaque cible Cloud et Hardware prise en charge.

cpujitter

mesure le jitter d'exécution CPU, les interférences IRQ et softirq et la tail latency extrême.

memjitter

analyse la latency d'allocation, first-touch, les jeux de travail verrouillés et les performances mémoire sous pression.

Ensemble, HFTKernel, cpujitter et memjitter fournissent les composants d'exécution optimisés et les outils de mesure nécessaires à la validation d'une infrastructure sensible à la latency.

HFTKernel 7.2 renforce l'isolation CPU, la précision temporelle, la localité du cache, le traitement réseau, le comportement mémoire et l'observabilité de la latency dans une plateforme HFT mesurable.

Principes des versions

Stabilité amont, politique adaptée à la charge et résultats mesurables

HFTKernel part d'une version stable précise de Linux, consigne la chaîne et l'identité de compilation, applique le profil Cloud ou Hardware choisi, intègre cpujitter et memjitter aux composants d'exécution et valide le résultat comme version immuable.

Base préciseCode source Linux stable vérifié et version du noyau figée.
Profil maîtriséPolitiques CPU, mémoire, réseau, temporelle et d'isolation adaptées à la plateforme.
Paquets natifsEnsembles DEB, RPM ou TGZ pour la matrice de production prise en charge.
Livraison mesuréecpujitter et memjitter fournissent des éléments reproductibles sur les queues de distribution.

Planification du déploiement

Évaluez la version selon votre topologie CPU, NIC, mémoire et temporelle.

Le choix des paquets n'est que la première étape. Le résultat en production dépend des paramètres de démarrage, de l'affinité à l'exécution, du placement des files, de la conception PTP/PHC, de la politique mémoire et d'un plan de mesure contrôlé.