Quanto à vulnerabilidade de segurança "Spectre", o "Retpoline" foi introduzido para ser uma solução para mitigar o risco. No entanto, li um post que mencionava:
Se você construir o kernel sem
CONFIG_RETPOLINE
, não poderá criar módulos com retpoline e esperar que eles carreguem - porque os símbolos de conversão não são exportados.Se você construir o kernel com o retpoline, você pode carregar com sucesso os módulos que não são construídos com o retpoline. ( Fonte )
Existe uma maneira fácil e comum/genérica/unificada de verificar se o kernel está habilitado para "Retpoline" ou não? Eu quero fazer isso para que meu instalador possa usar a compilação adequada do módulo do kernel a ser instalado.
Se você estiver usando kernels principais ou os kernels da maioria das principais distribuições, a melhor maneira de verificar o suporte completo ao retpoline ( ou seja , o kernel foi configurado com
CONFIG_RETPOLINE
, e foi construído com um compilador compatível com retpoline) é procurar por “Full generic retpoline ” em/sys/devices/system/cpu/vulnerabilities/spectre_v2
. No meu sistema:Se você deseja testes mais abrangentes, para detectar retpolines em kernels sem o
spectre_v2
arquivo systree, verifique comospectre-meltdown-checker
as coisas funcionam.A resposta de Stephen Kitt é mais abrangente neste caso específico, porque o suporte retpoline também precisa de uma nova versão do compilador.
Mas, em geral, a maioria das distribuições tem o arquivo de configuração do kernel disponível em um dos seguintes locais:
/boot/config-4.xx.xx-...
/proc/config.gz
Então você pode simplesmente
zgrep CONFIG_RETPOLINE /boot/config* /proc/config.gz