Vous avez probablement entendu parler de Meltdown et Vulnérabilités Spectre qui a affecté de nombreux processeurs modernes, y compris certains processeurs d'Intel, AMD, System Z, Power et ARM. Heureusement, les développeurs du noyau ont publié des correctifs de sécurité pour résoudre les problèmes de Meltdown/Spectre. Dans les versions récentes du noyau, les correctifs sont implémentés par défaut. Même si les correctifs de sécurité aident à atténuer les vulnérabilités, ils ont également eu un impact sur les performances du système. Oui, les atténuations entraîneront une baisse des performances. Si vous êtes sûr que vos systèmes sont bien protégés et que vous voulez chaque once de performance que vous pouvez tirer de votre système personnel, ce guide est pour vous. Ce bref guide explique comment accélérer le fonctionnement du système Linux sur les processeurs Intel en désactivant les atténuations Spectre et Meltdown.
Un mot d'avertissement
Avant de mettre en œuvre la solution suivante, je dois vous avertir - CELA EST TRÈS NON SÉCURISÉ et NON RECOMMANDÉ . Cela désactivera toutes les atténuations Spectre et Meltdown sur les processeurs Intel et laissera vos systèmes Linux ouverts à tous les risques de sécurité. À moins que vous ne sachiez clairement ce que vous faites, ne le faites pas. Vous êtes prévenu !
Si vous ne vous souciez tout simplement pas de la sécurité, continuez et désactivez les mesures d'atténuation comme décrit ci-dessous.
Faire fonctionner le système Linux plus rapidement sur les processeurs Intel
Modifiez votre fichier GRUB à l'aide de votre éditeur de texte préféré.
Sur Debian , Ubuntu :
$ sudo nano /etc/default/grub
Si vous utilisez Linux Kernel version 5.1.13 et plus récente, ajoutez/modifiez le paramètre Kernel suivant comme ci-dessous :
GRUB_CMDLINE_LINUX="mitigations=off"
Cela désactivera toutes les atténuations facultatives du processeur. Cela améliore les performances du système, mais peut également exposer les utilisateurs à plusieurs vulnérabilités du processeur.
Si vous utilisez des versions du noyau antérieures à 5.1.13, ajoutez/modifiez plutôt ce qui suit :
GRUB_CMDLINE_LINUX="noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx=on tsx_async_abort=off mitigations=off"
Paramètres du noyau pour désactiver toutes les atténuations Spectre et Meltdown
Ce sont les paramètres du noyau que vous pouvez utiliser pour désactiver toutes les atténuations Spectre/Meltdown qui ralentissent votre système Linux.
Sachez ce que fait chaque indicateur :
- noibrs - Désactivez la spéculation restreinte de branche indirecte dans le microcode.
- noibpb - Désactiver les barrières de prédiction de branche indirecte.
- pas d'avis - C'est la même chose que pti=off. Table des pages de contrôle Isolement des espaces d'adressage utilisateur et noyau. La désactivation de cette fonctionnalité supprime le durcissement, mais améliore les performances des appels système et des interruptions.
- nospectre_v2 - Désactivez toutes les atténuations pour la vulnérabilité Spectre variante 2 (prédiction de branche indirecte). Le système peut permettre des fuites de données avec cette option, qui équivaut à spectre_v2=off.
- nospectre_v1 - Désactiver les atténuations pour Spectre Variant 1 (contournement de la vérification des limites). Avec cette option, des fuites de données sont possibles dans le système.
- l1tf=off - Contrôlez l'atténuation de la vulnérabilité L1TF sur les processeurs concernés. La protection contre l'inversion PTE du noyau est activée sans condition et ne peut pas être désactivée. Désactive les atténuations de l'hyperviseur et n'émet aucun avertissement. Il supprime également la taille d'échange et la restriction de la limite de RAM disponible sur l'hyperviseur et le bare metal.
- nospec_store_bypass_disable - Désactivez toutes les mesures d'atténuation pour la vulnérabilité de contournement de magasin spéculatif.
- no_stf_barrier - Désactiver la barrière de transfert de magasin (PPC uniquement).
- mds=off - Contrôlez l'atténuation de la vulnérabilité d'échantillonnage de données micro-architecturales (MDS).
- tsx=on - Activer la prise en charge d'Intel TSX (Transactional Synchronization Extensions).
- tsx_async_abort=off - Désactiver l'atténuation TAA (TSX Async Abort).
- mitigations=off - Désactiver toutes les mesures d'atténuation.
Pour plus de détails sur chaque drapeau, effectuez une recherche rapide sur Google.
Après avoir ajouté le ou les paramètres du noyau, mettez à jour la configuration GRUB à l'aide de la commande :
$ sudo update-grub
Enfin, redémarrez le système :
$ sudo reboot
Sur les systèmes basés sur RPM comme CentOS et RHEL , éditez /etc/sysconfig/grub fichier :
$ sudo /etc/sysconfig/grub
Ajoutez les paramètres ci-dessus dans GRUB_CMDLINE_LINUX. Et puis mettez à jour la configuration GRUB à l'aide de la commande :
$ sudo grub2-mkconfig
Redémarrez enfin :
$ sudo reboot
Dans certains systèmes Linux, vous devrez peut-être ajouter ces paramètres de noyau dans "GRUB_CMDLINE_LINUX_DEFAULT="..." .
Nous avons maintenant désactivé toutes les atténuations Spectre et Meltdown. Cela augmentera un peu les performances de votre système, mais cela peut également exposer les utilisateurs à plusieurs vulnérabilités du processeur.
Vérifier si les atténuations Spectre/Meltdown sont désactivées
Nous pouvons utiliser "spectre-meltdown-checker" outil qui vous aide à identifier les vulnérabilités Spectre et Meltdown sous Linux. Il est disponible dans les dépôts officiels de certaines distributions Linux.
Sur Debian, Ubuntu :
$ sudo apt install spectre-meltdown-checker
Sur CentOS, RHEL :
$ sudo yum install epel-release
$ sudo yum install spectre-meltdown-checker
Sur Fedora :
$ sudo dnf install $ sudo apt install spectre-meltdown-checker
Après avoir installé spectre-meltdown-checker, exécutez-le en tant qu'utilisateur root ou avec les privilèges sudo pour vérifier si les atténuations Spectre et Meltdown sont désactivées :
Vous devriez voir un message comme ci-dessous.
[...] > STATUS: VULNERABLE (Vulnerable: __user pointer sanitization and usercopy barriers only; no swapgs barriers) [...] > STATUS: VULNERABLE (IBRS+IBPB or retpoline+IBPB is needed to mitigate the vulnerability) [...] > STATUS: VULNERABLE (PTI is needed to mitigate the vulnerability)
Alternativement, vous pouvez vérifier les vulnérabilités Spectre/Meltdown comme ci-dessous.
$ ls /sys/devices/system/cpu/vulnerabilities/
Exemple de résultat :
itlb_multihit l1tf mds meltdown spec_store_bypass spectre_v1 spectre_v2 tsx_async_abort
Et..
$ grep . /sys/devices/system/cpu/vulnerabilities/*
Exemple de résultat :
/sys/devices/system/cpu/vulnerabilities/itlb_multihit:KVM: Vulnerable /sys/devices/system/cpu/vulnerabilities/l1tf:Mitigation: PTE Inversion /sys/devices/system/cpu/vulnerabilities/mds:Vulnerable; SMT Host state unknown /sys/devices/system/cpu/vulnerabilities/meltdown:Vulnerable /sys/devices/system/cpu/vulnerabilities/spec_store_bypass:Vulnerable /sys/devices/system/cpu/vulnerabilities/spectre_v1:Vulnerable: __user pointer sanitization and usercopy barriers only; no swapgs barriers /sys/devices/system/cpu/vulnerabilities/spectre_v2:Vulnerable, STIBP: disabled /sys/devices/system/cpu/vulnerabilities/tsx_async_abort:Not affected
vérifier les vulnérabilités Spectre et Meltdown
Exécutez quelques benchmarks et vérifiez les performances que vous gagnerez, puis décidez s'il vaut la peine de tout désactiver.
Comme je l'ai déjà averti, cette astuce est une option utile et judicieuse pour les ordinateurs domestiques ou mono-utilisateur. Mais non recommandé pour les systèmes de production.