News - Informatique

x86_64-v1, v2, v3 et v4 : les processeurs PC 64bits les plus anciens deviennent obsolètes

| Informatique | 6 Commentaires
Un petit message affiché au démarrage d'une Rocky Linux 9.5 qui m'a poussé à me renseigner. Mon processeur est-il déjà considéré comme obsolète ? Il y a déjà plein d'infos sur la toile à ce sujet, notamment depuis 2022, mais je n'étais pas au courant. :D On sait que les différentes versions de Windows "modernes" réclament des processeurs plus ou moins récents pour fonctionner, et bien c'est aussi le cas avec certaines distributions Linux.


Sources :

Citation :
Red Hat will upgrade the instruction set architecture (ISA) baseline to the x86-64-v3 microarchitecture level in RHEL 10 and x86-64-v1 and x86-64-v2 x86-64 microarchitecture level of CPUs will be marked deprecated in RHEL 8 and RHEL 9 and unsupported in RHEL 10.




Tout est sur Wikipedia, en gros : la simple distinction 32bits (i386/i686) VS 64bits ne suffira plus à l'avenir pour la famille de CPU PC 64 bits (EM64T & AMD64). Il va falloir distinguer au sein même de la famille des x86_64 lesquels sont encore compatibles avec certaines distributions Linux. En fait courant 2020, les processeurs AMD et Intel 64 bits (depuis l'Athlon 64 et les Pentium 4 Prescott, les chaudières d'antan quoi) ont été découpés en 4 "levels" (micro-architectures).

Donc tout dépend de comment est compilée votre distribution Linux (noyau, bibliothèques et autres programmes). Certaines distributions vont peut-être faire le choix de compiler pour du v3 uniquement, ceci afin d'exploiter ces nouvelles instructions qui ont été embarquées au fur et à mesure au sein des processeurs. Les réactions sont mitigées quant au gain de performances apporté (lien 2). RedHat a fait ce choix qui va mettre ainsi les plus vieux processeurs 64bits d'avant 2013 (Haswell) au rebus. Exit les anciens Ivy/Sandy Bridge. Dans la future RHEL 10, distribution mère d'autres distributions comme AlmaLinux, Rocky Linux ou encore Oracle Linux, les processeurs classés en v1 & v2 ne seront plus pris en charge. Cela n'a rien à voir avec les différentes failles trouvées sur les CPU. Linux Torvals est contre cela, sauf que dans le monde professionnel ben comme d'habitude beaucoup de gens se plieront aux décisions de Red Hat.
Il existe un petit script awk pour savoir à quel niveau votre CPU est situé, selon ses flags (commandes lscpu ou cat /proc/cpuinfo).
Code BASH :
#!/usr/bin/awk -f
BEGIN {
    while (!/flags/) if (getline < "/proc/cpuinfo" != 1) exit 1
    if (/lm/&&/cmov/&&/cx8/&&/fpu/&&/fxsr/&&/mmx/&&/syscall/&&/sse2/) level = 1
    if (level == 1 && /cx16/&&/lahf/&&/popcnt/&&/sse4_1/&&/sse4_2/&&/ssse3/) level = 2
    if (level == 2 && /avx/&&/avx2/&&/bmi1/&&/bmi2/&&/f16c/&&/fma/&&/abm/&&/movbe/&&/xsave/) level = 3
    if (level == 3 && /avx512f/&&/avx512bw/&&/avx512cd/&&/avx512dq/&&/avx512vl/) level = 4
    if (level > 0) { print "CPU supports x86-64-v" level; exit level + 1 }
    exit 1
}

Perso pour quelques unes de mes machines :
Machine CPU Generation Level
Dell Optiplex 380 Core 2 Duo E8600 Penryn / Wolfdale v1
IBM X3400 M3 Xeon E5540 Nehalem-EP v2
IBM X3100 M4 Xeon E3-1220v2 Ivy Bridge v2
Dell Optiplex 3050 Micro i5-7500T Kaby Lake v3
Dell PowerEdge T440 Xeon Silver 4116 Skylake-SP v4
PC NAS Assemblé i3-12100 Alder Lake v3

Citation :
On any x86_64 Linux distribution, all x86_64 feature levels supported by a CPU can be verified using command: ld.so --help The result will be visible at the end of command's output:

Cela n’empêche pas l'installation de distributions Linux qui ne font pas ce choix et compilent toujours en mode baseline v1 comme Debian, Ubuntu ou Fedora.
Attention, le message peut s'afficher à tort dans des VM comme VirtualBox, cela provient de l'hyperviseur qui "rapporte" mal au noyau Linux de la VM les fonctions du processeur. Voir ce lien KVM/QEMU.