A intenção do campo "bugs" em /proc/cpuinfo
é descrita na mensagem de commit que o introduziu :
x86/cpufeature
: Add bug flags to/proc/cpuinfo
Dump the flags which denote we have detected and/or have applied bug workarounds to the CPU we're executing on, in a similar manner to the feature flags.
The advantage is that those are not accumulating over time like the CPU features.
Anteriormente, os bugs de hardware detectados pelo kernel eram listados como separar características ( por exemplo o infame F00F bug, que possui sua própria entrada f00f_bug
em /proc/cpuinfo
em sistemas x86 de 32 bits). A entrada "bugs" foi introduzida para mantê-las em um único recurso em andamento, no mesmo estilo das flags de CPU x86 .
No que diz respeito às entradas na prática, como você pode ver na mensagem, tudo o que é garantido é que o kernel detectou um bug de hardware. Você precisará procurar em outro lugar (mensagens de inicialização ou entradas específicas de /proc
ou /sys
entradas, como os arquivos em /sys/devices/system/cpu/vulnerabilities/
) para determinar se os problemas foram resolvidos.
A utilidade das entradas de "bugs" é limitada de duas maneiras. A primeira é que os negativos verdadeiros não podem ser distinguidos dos desconhecidos: se o campo não especificar “cpu_meltdown”, você não pode saber (apenas do campo) se isso significa que o kernel não sabe sobre o Meltdown, ou que sua CPU não é afetada pelo Meltdown. A segunda é que a detecção pode ser simplista demais; ele erra por precaução, então pode relatar que sua CPU está vulnerável quando não está. Como a "detecção" é orientada pela tabela, sua precisão depende de qual versão do kernel você está executando.
No caso de erros de Meltdown e Spectre, o processo de detecção que alimenta os valores em /proc/cpuinfo
funciona da seguinte forma , em x86:
- se a CPU não realiza nenhuma especulação (classe 486, alguns Pentium-class, alguns Atoms), não é sinalizado como afetado por Meltdown ou Specter;
- todas as CPUs restantes são sinalizadas como afetadas pelas variantes 1 e 2 do Specter (independentemente da revisão do microcódigo, etc.);
- se a CPU não está listado como não suscetível a bypass especulativo de loja , se o microcódigo não disser atenuar o SSB, e se a CPU não reivindicar a atenuação do SSB, ele será sinalizado como afetado pelo SSB;
- se a CPU não está listado como não suscetível ao Meltdown (AMD), e se o seu microcódigo não pretende mitigar o Meltdown, ele é sinalizado como afetado pelo Meltdown.