Nouveautés de Linux 6.18-rc3 : modifications du noyau et contexte

  • SMB Direct mène la version 6.18-rc3 avec des améliorations de robustesse sur le client et le serveur.
  • XFS, io_uring, réseau et DRM reçoivent tous des correctifs pratiques et bien distribués.
  • La carte des versions place la version 6.17 comme stable et la version 6.12/6.6 comme LTS clé.

Linux 6.18-rc3

Le troisième candidat au lancement du futur 6.18 arrive Sans tambour ni trompette, et avec ce calme si apprécié par l'écosystème du noyau. Selon Linus Torvalds lui-même, les chiffres sont modérés et le cycle progresse normalement ; autrement dit, Linux 6.18-rc3 peaufine, corrige et ajuste sans révolutions, en se concentrant sur les correctifs répartis dans l’ensemble de l’arbre.

Dans sa brève note, Torvalds souligne que la majeure partie de ce lot est constituée des correctifs SMB Direct, côté client et serveur, ainsi que de quelques correctifs d'optimisation. Le reste est distribué comme d'habitude : environ la moitié concerne les pilotes (ajoutant également les liaisons DeviceTree) et Les autres sont des correctifs divers : XFS, réseau, io_uring, DRM, Rust Binder et compagnie. Si vous souhaitez en savoir plus, vous trouverez ci-dessous un bref historique des modifications, analysées par sous-système.

Principales nouvelles fonctionnalités de Linux 6.18-rc3

Le bloc SMB Direct se distingue dans cette analyse hebdomadaire. Le client et le serveur SMB ajustent les crédits et les files d'attente pour éviter les régressions et les pénuries de ressources. Plusieurs éléments du sous-système placent la barre plus haut en garantissant que Les structures d'envoi/vidange réservent suffisamment d'espace et que les états de déconnexion réveillent tous les threads en attente de manière robuste.

De plus, des correctifs sont intégrés à XFS pour éviter les boucles occupées dans le collecteur de segments, mettre en cache les zones ouvertes dans i_private, renforcer la gestion des options de montage obsolètes et corriger les sections sensibles de la vérification et du blocage des liensLes modifications XFS dans cette rc3 se concentrent sur la stabilité et des diagnostics clairs pour les paramètres hérités.

L'autre moitié du gâteau est le mélange habituel de pilotes et de plateformes : de DRM/AMD et DRM/Xe à Rockchip, en passant par les réseaux mlx5/mlx5e, les PHY Realtek et Micrel, UFS/Qualcomm, USB/xHCI DbC et bien d'autres. Il s'agit d'une rc3 « de plomberie Â», dans laquelle La valeur est dans la somme de petites corrections qui empêchent les plantages, les fuites de mémoire ou les décalages de temps.

PME et PME Direct : privilégier la robustesse

El journal abrégé met en lumière les efforts déployés par SMB Direct. Parmi les points les plus pertinents :

  • Le client et le serveur SMB ajustent l'espace réservé aux requêtes de travail, évitant ainsi les débordements et garantissant la sécurité du drainage des QP (ib_drain_qp). Les compteurs sont introduits et consommés. Crédits d'expédition sur les chemins critiques.
  • Le serveur simplifie la gestion des listes de frères et sÅ“urs sur les chemins d'envoi (flush/send_done) et fait en sorte que la déconnexion RDMA réveille tous les threads dès le premier essai.
  • Les traces dans smb3_rw_credits sont renforcées, les inclusions sont réorganisées afin que les structures soient disponibles dans les points de trace et Les types signés dans les structures de crédit TCP sont fixes.

Globalement, les modifications apportées à SMB Direct visent à garantir que les transferts RDMA sous charge sont fluides, se comportent de manière prévisible et gèrent les états d'erreur sans laisser de threads en suspens. Ces ajustements, bien que subtils, faire la différence dans les environnements haute performance.

Systèmes de fichiers et stockage

La section de systèmes de fichiers et blocs comprend plusieurs pièces remarquables :

  • XFS : éviter les boucles occupées, mettre en cache les zones, interdire __GFP_NOFAIL dans l'initialisation du contexte FS, améliorer les messages pour les options obsolètes et réparer les serrures et les compteurs de secteurs.
  • Btrfs : correctifs dans ref-verify (IS_ERR vs NULL), libération de fs_info partiellement initialisé en cas de plantage et un correctif dans btrfs send pour éviter la duplication des opérations rmdir avec les extrefs.
  • EROFS : Renforcement de la gestion des extensions codées de manière malveillante pour éviter les boucles et consolider les recherches rétrospectives sur les sous-pages corrompues.
  • Couche de blocage : appliquez l’alignement LBA lors de l’utilisation des informations de protection (PI) pour maintenir l’intégrité de bas niveau.

On observe également une activité dans SCSI/UFS/PHY (liaisons pour les nouveaux compatibles), StorvSC pour privilégier les canaux ayant une affinité avec le processeur émettant des E/S, et des ajustements de pilotes comme qla4xxx. Ces éléments, ensemble, renforcer la stabilité et les performances des E/S dans des cas réels.

Réseaux : mlx5/mlx5e, liaison, HSR et plus

Sur le net, l'image est variée, avec un accent sur les conducteurs de haut rendement et des coins peu fréquentés :

  • mlx5/mlx5e : Masques de registre PPHCR dans PCAM, saut des requêtes si le périphérique ne prend pas en charge le registre, et corrections de RX lors de la génération de skbs à partir de xdp_buffs non linéaires dans les files d'attente héritées et en mode striding. Également : Corrections dans IPsec sur les appareils MPV et devcom renvoie NULL en cas d'erreur.
  • Liaison : le réseau esclave est mis à jour en mode diffusion et les éventuelles pertes ou duplications dans les notifications homologues sont corrigées.
  • HSR : empêche la création d'appareils avec des esclaves d'autres réseaux, fermant ainsi un chemin de configuration incohérent.
  • Gro et gro_cells : les hwtstamps sont nettoyés sur les chemins de réutilisation skbs et un déséquilibre de verrouillage est corrigé dans gro_cells_receive.
  • Autre : virtio-net met à zéro les champs de hachage inutilisés ; hibmcge sélectionne FIXED_PHY ; dlink utilise dev_kfree_skb_any ; stmmac/rk corrige la fonction de sélection d'horloge ; enetc corrige les blocages de verrouillage MDIO et une valeur TRUESIZE.

Dans son ensemble, la pile réseau reçoit ce filet de correctifs qui évitent les surprises sous charge et prennent en charge les détails des chemins de données qui, en cas de défaillance, se traduire par de latence, des pertes ou des blocages.

Graphiques et affichage : DRM/AMD, DRM/Xe, Rockchip et QR Panic

L'espace DRM est également en mouvement, avec changements de sécurité et de stabilité:

  • Affichage DRM/AMD : utilisez GFP_NOWAIT dans un contexte d'interruption, augmentez le lien maximum et évitez les accès NULL dans link→enc ; également, un correctif de pointeur nul sur des chemins spécifiques.
  • DRM/Xe : conserver les indicateurs de VM lors de la recréation et du fractionnement des VM pour madvise et masquer la réinitialisation automatique de madvise derrière un indicateur VM_BIND, supprimant ainsi les bords dangereux.
  • Rockchip : masque SCLIN correct pour RK3228 dans dw_hdmi.
  • drm/panic : plusieurs améliorations du « mode panique » avec logo et QR : éviter les chevauchements avec le logo, assurer des marges verticales positives, empêcher les divisions par zéro lorsque la largeur de l'écran est inférieure à la largeur de la police et ne pas croiser les pages avec des pixels 24 bits.
  • Intel i915 : Empêcher la fuite d'objet panique lors de l'allocation de sa structure.

Même Panthor (GPU) a été modifié pour empêcher les paniques du noyau de démapper partiellement une région VA, un bug gênant qui se manifestait dans des scénarios de mémoire fragmentée. Ces changements, bien que subtils, éviter les plantages sur les vrais ordinateurs.

Liant antirouille et liant classique

Rust Binder poursuit son développement avec plusieurs ajustements : suppression d'un avertissement concernant les mappages orphelins, renvoi de la notification freeze_notif_done en cas d'états inattendus, blocage de la suppression d'un FreezeListener en cas de doublons en attente, et notification uniquement en cas de gel du processus. Parallèlement, le Binder classique supprime une vérification « invalid inc weak Â» qui n'est plus pertinente. Côté chaîne d'outils, objtool reconnaît une fonction Rust supplémentaire comme « noreturn » et un avertissement clippy dans Rust Binder est nettoyé.

io_uring, sqpoll et zc rx

Dans io_uring, il y a plusieurs ajustements chirurgicaux : une mauvaise utilisation de Unlike() dans io_waitid_prep() est corrigée, une annotation __must_hold est ajustée, la validation automatique des tampons pour les commandes multishot uring_cmd est corrigée et La comptabilité CPU de sqpoll est réévaluée Nous avons laissé getrusage() de côté et mis à jour stime de manière plus intelligente. De plus, une entrée pour zcrx a été ajoutée dans MAINTAINERS.

Architectures et ACPI : RISC-V, arm64 et x86

Les architectures Elles sont variées et spécifiques :

  • RISC-V : pgprot_dmacoherent() est défini pour les périphériques non cohérents, les détails des processeurs désactivés ne sont pas imprimés dans DT, les IRQ IPI sont enregistrées avec des noms uniques, MAX_POSSIBLE_PHYSMEM_BITS est défini pour zsmalloc et Les macros héritées inutiles sont supprimées. Des utilisations non initialisées dans hwprobe et une clé initialisée tardivement dans le vDSO ont également été corrigées.
  • arm64 : Dans MTE, un avertissement est supprimé si la page a déjà été balisée dans copy_highpage().
  • x86 : Ajuster le message RETBLEED pour Intel, corriger la vérification de révision Entrysign pour Zen1/Naples et le code mort est nettoyé dans les mesures d'atténuation.
  • ACPI/properties : ordre des arguments corrigé dans acpi_node_get_property_reference() et suppression des avertissements lorsque IOMMU_API est désactivé dans RIMT.

Il corrige également des anomalies, comme pcibios_align_resource() dans MIPS Malta pour verrouiller les plages d'E/S, et les ressources clavier qui empêchaient l'enregistrement du i8042. Ce sont de petites modifications qui éviter les scénarios de blocage ou les initialisations fragiles.

Pilotes et bus : SPI, série, hwmon, GPIO, PCI/ASPM et autres

Ce rc apporte un bon tas de corrections dans les pilotes :

  • SPI : le dirmap buggé d'Airoha renvoie désormais un échec, ajoute la prise en charge du double/quadruple dans exec_op, revient en mode non-DMA si quelque chose ne va pas et corrige les flashs multi-plans par LUN ; NXP FSPI réinitialise l'horloge lorsque cela est nécessaire, et limite la fréquence selon la source, en plus d'ajouter un délai après le verrouillage de la DLL ; Intel SPI ajoute la prise en charge des densités de 128 M et de nouvelles plates-formes (Arrow Lake-H, Wildcat Lake).
  • Série et TTY : 8250_dw gère les erreurs lors de la réinitialisation ; 8250_mtk active l'horloge en bauds et la transmet au PM d'exécution ; sc16is7xx efface les bauds activés inutiles ; sh-sci corrige le dépassement FIFO.
  • PCI/ASPM : sur les plates-formes DeviceTree, seuls les L0 et L1 sont activés, une décision prudente pour éviter les états non validés.
  • GPIO : ACPI atténue la gravité des erreurs de rebond ; gpio-regmap ajoute le paramètre fixed_direction_output ; les modules IDIO-16 définissent
    adresses maximales valides et adresses de lignes fixes.
  • Hwmon et pmbus : fuites de référence corrigées vers les nÅ“uds enfants et coefficients de modèle Max/ISL mis à jour, ainsi que des détails sur le pilote de ventilateur GPD.

En parallèle, des modules compatibles DT sont ajoutés à SPI Cadence (ZynqMP/Versal-Net), Rockchip RK3506 et UFS QMP pour Kaanapali, en plus de nouveaux ID d'option (Telit FN920C04 ECM, Quectel RG255C, UNISOC UIS7720). ajuste le support pour le matériel nouvellement arrivé.

Mémoire, dalle et mm/damon

La zone mémoire reçoit également de l'attention : les courses avec des conditions de confusion obj_exts et NULL sont évitées dans slab ; mm/mremap prend correctement en compte l'ancien mappage après un DONTUNMAP ; THP empêche la consommation de poison lors du fractionnement de pages énormes ; DAMON nettoie les fuites ops_filter et centralise la logique des cibles de quotasDans hugetlbfs, les assertions de verrouillage sont déplacées après les premiers retours dans huge_pmd_unshare().

Sécurité, traçage et Kconfig

Des pièces petites mais importantes :

  • lib/crypto : Poly1305 restaure les dépendances avec !KMSAN, évitant ainsi les configurations conflictuelles.
  • include/trace : correction d'un assistant de comptage en vol sur les démarrages échoués ; ajout de points de trace SMB3 pour les crédits de lecture/écriture.
  • Divers Kconfig : l'aide de CONFIG_XFS_RT est améliorée et les tests/statistiques sont conditionnés à DEBUG_FS. Corrections de dépendances dans QCOMTEE et d'autres plateformes.

Ces modifications discrètes préviennent les problèmes de configuration du noyau et facilitent le diagnostic des dysfonctionnements. La somme de ces améliorations de la qualité de vie entraîne moins de perte de temps.

Cette analyse de la version 6.18-rc3 met clairement l'accent sur la robustesse plutôt que sur les performances. Du bloc SMB Direct aux ajustements XFS, en passant par la multitude de pilotes et de correctifs pour le réseau, les graphiques et la mémoire, tout indique un noyau plus fiable. L'ajout de la cartographie des versions (avec 6.17 comme version stable la plus récente et 6.12/6.6 comme version LTS de référence) nous permet d'obtenir une image cohérente de l'état actuel : Itération constante, support à long terme là où cela compte et un chemin de migration que chaque équipe peut tracer sereinement, sachant quelles branches sont sûres et lesquelles en sont encore à leurs balbutiements.

Linux 6.18-rc2
Article connexe:
Linux 6.18-rc2 arrive en force avec des correctifs clés pour les graphiques, Rust et AMD Zen