4.9. Noyau


Version du noyau dans RHEL 9.1

Red Hat Enterprise Linux 9.1 est distribué avec la version 5.14.0-162 du noyau.

(BZ#2125549)

La consommation de mémoire du site list_lru a été optimisée

La structure de données interne du noyau, list_lru, suit l'état \N "Least Recently Used" (le moins récemment utilisé) des inodes du noyau et des entrées de répertoire pour les fichiers. Auparavant, le nombre de structures allouées list_lru était directement proportionnel au nombre de points de montage et au nombre de mémoires présentes cgroups. Ces deux chiffres augmentaient avec le nombre de conteneurs en cours d'exécution, ce qui entraînait une consommation de mémoire de O(n^2)n est le nombre de conteneurs en cours d'exécution. Cette mise à jour optimise la consommation de mémoire de list_lru dans le système à O(n). Par conséquent, les applications des utilisateurs disposent désormais de suffisamment de mémoire, en particulier sur les systèmes où un grand nombre de conteneurs sont en cours d'exécution.

(BZ#2013413)

BPF rebasé sur la version 5.16 du noyau Linux

Le filtre de paquets Berkeley (BPF) a été rebasé sur la version 5.16 du noyau Linux avec de nombreuses corrections de bogues et améliorations. Les changements les plus notables sont les suivants :

  • Rationalisation de la gestion interne des sections du programme BPF et de l'API bpf_program__set_attach_target() dans la bibliothèque userspace libbpf.

    L'API bpf_program__set_attach_target() définit les objectifs de rattachement basés sur le BTF pour les programmes basés sur le FBP.

  • Ajout de la prise en charge du type BTF_KIND_TAG, qui permet de baliser les déclarations.
  • Ajout de la prise en charge de l'aide bpf_get_branch_snapshot(), qui permet au programme de traçage de capturer les derniers enregistrements de branche (LBR) à partir du matériel.
  • Ajout de la prise en charge des anciens événements kprobe dans la bibliothèque de l'espace utilisateur libbpf, qui permet la création d'événements de points de contrôle kprobe par l'intermédiaire de l'interface existante.
  • Ajout de la possibilité d'accéder aux horodatages matériels par le biais de structures spécifiques à BPF avec la fonction d'aide __sk_buff.
  • Ajout de la prise en charge d'une interface par lots pour l'allocation de tampons RX dans le pool de tampons AF_XDP, avec la prise en charge des pilotes pour i40e et ice.
  • Ajout du support de l'ancienne version de uprobe dans la bibliothèque de l'espace utilisateur de libbpf pour compléter l'ancienne version de kprobe récemment fusionnée.
  • Ajout de l'aide bpf_trace_vprintk() comme aide variadique printk.
  • Ajout de l'option libbpf pour une gestion plus stricte des noms de sections de programmes BPF dans le cadre de l'effort libbpf 1.0.
  • Ajout du support libbpf pour localiser les cartes spécialisées, telles que perf RB et supprimer en interne les identifiants de type BTF lors de leur création.
  • Ajout du type de carte bloomfilter BPF pour tester l'existence d'un élément dans un ensemble.
  • Ajout de la prise en charge des appels de fonctions de modules du noyau à partir de BPF.
  • Ajout de la prise en charge de ksym sans type et faible dans le squelette léger.
  • Ajout de la prise en charge du type BTF_KIND_DECL_TAG.

Pour plus d'informations sur la liste complète des fonctionnalités BPF disponibles dans le noyau en cours d'exécution, utilisez la commande bpftool feature.

(BZ#2069045)

Les données BTF se trouvent désormais dans le module du noyau

BPF Type Format (BTF) est le format de métadonnées qui encode les informations de débogage relatives au programme et à la carte BPF. Auparavant, les données BTF pour les modules du noyau étaient stockées dans le paquetage kernel-debuginfo. Par conséquent, il était nécessaire d'installer le paquetage kernel-debuginfo correspondant afin d'utiliser le BTF pour les modules du noyau. Avec cette mise à jour, les données BTF sont maintenant situées directement dans le module du noyau. Par conséquent, vous n'avez pas besoin d'installer d'autres paquets pour que BTF fonctionne.

(BZ#2097188)

L'arborescence des sources de kernel-rt a été mise à jour vers l'arborescence RHEL 9.1

Les sources de kernel-rt ont été mises à jour pour utiliser la dernière arborescence des sources du noyau Red Hat Enterprise Linux. Le jeu de correctifs en temps réel a également été mis à jour vers la dernière version en amont, v5.15-rt. Ces mises à jour apportent un certain nombre de corrections de bogues et d'améliorations.

(BZ#2061574)

Programmation dynamique préemptive activée sur les architectures ARM, AMD et Intel 64 bits

RHEL 9 offre la fonction de planification dynamique sur les architectures ARM, AMD et Intel 64 bits. Cette amélioration permet de modifier le mode de préemption du noyau au démarrage ou au moment de l'exécution plutôt qu'au moment de la compilation. Le fichier /sys/kernel/debug/sched/preempt contient la configuration actuelle et permet de modifier runtime.

En utilisant l'option DYNAMIC_PREEMPT, vous pouvez définir la variable preempt= au démarrage sur none, voluntary ou full, la préemption voluntary étant la valeur par défaut. Grâce à la gestion dynamique de la préemption, vous pouvez remplacer le modèle de préemption par défaut afin d'améliorer la latence de l'ordonnancement.

(BZ#2065226)

stalld repassé à la version 1.17

Le programme stalld, qui fournit le démon stall, est un mécanisme permettant d'éviter l'état de famine des threads du système d'exploitation dans un système Linux. Cette version surveille les threads pour l'état de famine. L'état de famine survient lorsqu'un thread se trouve dans la file d'attente d'exécution du processeur pendant une durée supérieure au seuil de famine.

Cette version stalld comprend de nombreuses améliorations et corrections de bogues par rapport à la version précédente. Le changement le plus notable est la possibilité de détecter les tâches mourantes exécutables.

Lorsque stalld détecte un thread affamé, le programme change la classe d'ordonnancement du thread pour la politique SCHED_DEADLINE, qui donne au thread une petite tranche de temps pour que l'unité centrale spécifiée l'exécute. Lorsque timeslice est utilisé, le thread revient à sa politique d'ordonnancement d'origine et stalld continue à surveiller les états du thread.

(BZ#2107275)

Le paquet tpm2-tools a été rebasé sur la version tpm2-tools-5.2-1

Le paquetage tpm2-tools a été rebasé vers la version tpm2-tools-5.2-1. Cette mise à jour apporte de nombreuses améliorations significatives et des corrections de bogues. Les changements les plus notables sont les suivants :

  • Prise en charge de l'émission de clés publiques lors de la création d'objets primaires à l'aide des outils tpm2_createprimary et tpm2_create.
  • Prise en charge de l'outil tpm2_print pour l'impression des formats de sortie des clés publiques. tpm2_print décode une structure de données Trusted Platform Module (TPM) et imprime les éléments inclus.
  • L'outil tpm2_eventlog prend en charge la lecture des journaux de plus de 64 Ko.
  • Ajout de l'outil tpm2_sessionconfig qui permet d'afficher et de configurer les attributs de la session.

Pour plus d'informations sur les changements notables, voir le fichier /usr/share/doc/tpm2-tools/Changelog.md.

(BZ#2090748)

Les appareils Intel E800 prennent désormais en charge les protocoles iWARP et RoCE

Avec cette amélioration, vous pouvez désormais utiliser les paramètres enable_iwarp et enable_roce devlink pour activer et désactiver la prise en charge des protocoles iWARP ou RoCE. Grâce à cette fonctionnalité obligatoire, vous pouvez configurer l'appareil avec l'un des protocoles. Les appareils Intel E800 ne supportent pas les deux protocoles simultanément sur le même port.

Pour activer ou désactiver le protocole iWARP pour un appareil E800 spécifique, il faut d'abord obtenir l'emplacement PCI de la carte :

$ lspci | awk '/E810/ {print $1}'
44:00.0
44:00.1
$

Ensuite, activez ou désactivez le protocole. Vous pouvez utiliser pci/0000:44:00.0 pour le premier port, et pci/0000:44:00.1 pour le second port de la carte comme argument à la commande devlink

$ devlink dev param set pci/0000:44:00.0 name enable_iwarp value true cmode runtime
$ devlink dev param set pci/0000:44:00.0 name enable_iwarp value false cmode runtime

Pour activer ou désactiver le protocole RoCE pour un périphérique E800 spécifique, obtenez l'emplacement PCI de la carte comme indiqué ci-dessus. Utilisez ensuite l'une des commandes suivantes :

$ devlink dev param set pci/0000:44:00.0 name enable_roce value true cmode runtime
$ devlink dev param set pci/0000:44:00.0 name enable_roce value false cmode runtime

(BZ#2096127)

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.