Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

Chapitre 9. Noyau

Les paramètres de noyau SHMMAX et SHMALL retrouvent leurs valeurs par défaut

Auparavant, les valeurs des paramètres kernel.shmmax et kernel.shmall, qui étaient définies dans le fichier /usr/lib/sysctl.d/00-system.conf, étaient trop basses. Par conséquent, certaines applications, comme SAP, ne pouvaient pas fonctionner correctement. Les remplacements inconvenables ont été supprimés et des valeurs de noyau par défaut suffisament hautes sont maintenant utilisées.

Les « Transparent huge pages » ne causent plus de corruption de mémoire

Les « Transparent huge pages » n'étaient pas synchronisées correctement pendant les opérations de lecture et d'écriture. Sous certaines circonstances, ceci causait une corruption de la mémoire lorsque les « Transparent huge pages » étaient activées. Des barrière de mémoire ont été ajoutés à la gestion « Transparent huge page » afin que ces corruptions de mémoire ne se produisent plus.

Rebasement SCSI LIO

La cible du noyau SCSI, LIO, a été rebasée à partir de Linux-4.0.stable. Ceci inclut de nombreux correctifs de bogues, critiques à iSER, mais inclut également l'ajout de la prise en charge des commandes XCOPY, WRITE SAME, et ATS, ainsi que la prise en charge de l'intégrité des données DIF.

makedumpfile prend désormais en charge le nouveau format sadump représentant jusqu'à 16 To de mémoire physique

La commande makedumpfile prend désormais en charge le nouveau format sadump qui peut représenter plus de 16 To d'espace de mémoire physique. Ceci permet aux utilisateurs de makedumpfile de lire des fichiers de vidage de plus de 16 To, générés par sadump sur certains nouveaux modèles de serveur.

Supprimer ou mettre à niveau le noyau n'affichera plus d'avertissement

Auparavant, le script weak-modules, qui était utilisé par kmod pour gérer des liens symboliques de modules compatibles kABI, supprimait le répertoire /lib/modules/<version>/weak-updates lors de la suppression des fichiers associés à un noyau. Ce répertoire appartient au paquet kernel et sa suppression causait une incohérence entre le système de fichiers et l'état auquel rpm s'attendait. Cela entraînait l'affichage d'un avertissement chaque fois qu'un noyau était mis à niveau ou supprimé.
Le script a été mis à jour pour supprimer le contenu du répertoire weak-updates mais laisse le répertoire, et les avertissements ne sont plus affichés.

Nouveau paquet : libevdev

Libevdev est une bibliothèque de bas niveau pour l'interface du périphérique d'événements d'entrées du noyau Linux. Celle-ci fournit des interfaces sûres pour interroger les capacités de périphérique et les événements de processus des périphériques. Les versions actuelles de xorg-x11-drv-evdev et xorg-x11-drv-synaptics requièrent cette bibliothèque en tant que dépendance.

Tuned peut désormais être exécuté en mode no-daemon

Auparavant, Tuned pouvait uniquement être exécuté en tant que démon, ce qui pouvait affecter les performances des systèmes de petite taille, à cause de l'empreinte mémoire du démon Tuned. Avec cette mise à jour, un mode no-daemon (« one shot »), qui ne requiert pas de mémoire résidente, a été ajouté à Tuned. Le mode no-daemon est désactivé car de nombreuses fonctionnalités de Tuned ne sont pas incluses dans ce mode.

Nouveau paquet : tuned-profiles-realtime

Le paquet tuned-profiles-realtime a été ajouté à Red Hat Enterprise Linux Server et à Red Hat Enterprise Linux pour Real Time. Il contient un profil realtime utilisé par l'utilitaire tuned pour effectuer une isolation CPU et des réglages IRQ. Lorsque le profil est activé, il lit une section variable, qui spécifie les CPU devant être isolés et déplace tous les fils d'exécution qui pourraient être retirés de ces cœurs de CPU.

Planification d'E/S à multiples files d'attente (« Multiqueue I/O scheduling ») avec blk-mq

Red Hat Enterprise Linux 7.2 inclut un nouveau mécanisme de planification des E/S à multiples files d'attente pour les périphériques bloc, appelés blk-mq. Ce mécanisme améliore les performances en autorisant certains pilotes de périphérique à mapper les requêtes d'E/S avec de multiples files d'attente de matériel ou de logiciel. L'amélioration des performances vient de la réduction de la contention de verrouillage présente lorsque de multiples fils d'exécution effectuent des E/S sur un seul périphérique. De plus récents périphériques, comme NVMe (« Non-Volatile Memory Express »), sont mieux positionnés pour tirer profit de cette fonctionnalité grâce à leur prise en charge des multiples files d'attente de soumission de matériel et d'achèvement, et à leurs performances à basse latence. Comme toujours, les améliorations des performances dépendront du matériel utilisé et de la charge de travail.
La fonctionnalité blk-mq est actuellement implémentée et est activée par défaut sur les pilotes suivants : virtio-blk, mtip32xx, nvme, et rbd.
Une fonctionnalité liée, scsi-mq, permet aux pilotes de périphérique SCSI (« Small Computer System Interface ») d'utiliser une infrastructure blk-mq. La fonctionnalité scsi-mq est offerte en tant qu'aperçu technologique sur Red Hat Enterprise Linux 7.2. Pour activer scsi-mq, veuillez spécifier scsi_mod.use_blk_mq=y sur la ligne de commande du noyau. La valeur par défaut est n (désactivé).
La cible multivoies du mappeur de périphériques (« DM »), qui utilise un DM basé sur requêtes, peut également être configuré pour utiliser l'infrastructure blk-mq si l'option du noyau dm_mod.use_blk_mq=y est spécifiée. La valeur par défaut est n (désactivé).
Il pourrait être bénéfique de paramétrer dm_mod.use_blk_mq=y si les périphériques SCSI sous-jacents utilisent également blk-mq, car cela réduira la charge de verrouillage sur la couche DM.
Pour déterminer si DM multipath utilise blk-mq sur un système, affichez le fichier /sys/block/dm-X/dm/use_blk_mq avec cat, où dm-X est remplacé par le périphérique DM multipath en question. Ce fichier est uniquement accessible en lecture et reflète ce que la valeur globale dans /sys/module/dm_mod/parameters/use_blk_mq était au moment où le périphérique DM multipathe basé requête a été créé.

Les messages d'erreur SCSI peuvent désormais être interprétés confortablement

De précédents changements apportés à la fonction printk() ont provoqué la journalisation des messages d'erreur SCSI (« Small Computer System Interface ») à travers de multiples lignes. Par conséquent, si de multiples erreurs se produisent à travers différents périphériques, il peut être difficile d'interpréter ces messages d'erreur correctement. Cette mise à jour change le code de journalisation d'erreurs SCSI de manière à journaliser les messages d'erreur à l'aide de l'option dev_printk(), qui associe chaque message d'erreur avec le périphérique qui a généré l'erreur.

Mise à jour du sous-système et des pilotes libATA

Cette mise à jour d'amélioration fournit de nombreux correctifs de bogues et améliorations du sous-système et des pilotes libATA.

FCoE et DCB ont été mis à niveau

Les composants de noyau FCoE (« Fibre Channel over Ethernet ») et DCB (« Data Center Bridging ») ont été mis à niveau avec leurs versions en amont les plus récentes, fournissant ainsi de nombreux correctifs de bogues et de nombreuses améliorations comparé à leurs versions précédentes.

perf rebasé sur la version 4.1

Les paquets perf ont été mis à niveau à la version 4.1, qui fournit de nombreux correctifs de performance et de stabilité et d'améliorations comparé à la version précédente. Plus particulièrement, ce rebasement ajoute les fonctionnalités Intel Cache QoS Monitoring et AMD IBS Ops et fournit la prise en charge d'Intel Xeon v4, mais aussi la prise en charge des modules de noyau compressé, d'événements paramétrisés et de la spécification de la longueur des points d'arrêt. En outre, un certain nombre d'options on été ajoutées à l'outil perf, comme les options --system-wide, top -z, top -w, trace --filter-pids, et trace --event.

Prise en charge de TPM 2.0

Cette mise à jour ajouter la prise en charge niveau pilote des périphériques TPM (« Trusted Platform Module » conforme à la version 2.0.

Désormais, Turbostat fournit une sortie correcte

Auparavant, l'outil turbostat détectait si le système offrait la prise en charge de périphériques MSR en lisant le fichier /dev/cpu/0/msr pour le cpu0 au lieu du cpu. Par conséquent, la désactivation d'un CPU causait aux CPU d'être supprimés de la sortie de turbostat. Ce bogue a été corrigé, et l'exécution de la commande turbostat ls retourne désormais une sortie correcte.

Prise en charge du processeur Intel Xeon v5

Cette amélioration ajoute la prise en charge du processeur Intel Xeon v5 à l'outil turbostat.

l'outil zswap utilise l'API zpool

Auparavant, l'outil zswap utilisait directement zbud, un pool de stockage qui stocke des pages compressées à un niveau de 2:1 (lorsque plein). Cette mise à jour présente l'API zpool qui fournit accès aux pools zbud ou zsmalloc : zsmalloc stocke les pages compressées à une densité potentiellement plus élevée, résultant ainsi en davantage de mémoire réclamée pour des pages hautement compressibles. Avec cette mise à jour, zsmalloc a été promu aux pilotes /mm afin que zpool puisse fonctionner comme prévu.

La longueur du fichier /proc/pid/cmdline est désormais illimitée

La limite de longueur du fichier /proc/pid/cmdline pour la commande ps était auparavant codée de manière permanente dans le noyau avec un maximum de 4096 caractères. Cette mise à jour rend la longueur de /proc/pid/cmdline illimitée, ce qui est particulièrement utile pour répertorier les processus avec de longs arguments de ligne de commande.

La prise en charge de dma_rmb et dma_wmb est désormais offerte

Cette mise à jour présente deux nouvelles primitives pour synchroniser les écritures et lectures cohérentes de mémoire du cache, dma_wmb() et dma_rmb(). Cette fonctionnalité sera disponible pour une utilisation appropriée dans les pilotes.