O Linux x86/x86_64 O kernel há muito tempo honra o parâmetro de kernel”clearcpuid=”para desabilitar alguns recursos CPUID de serem usados ​​pelo kernel ou prontamente anunciados. No entanto, não foi muito intuitivo de usar, pois dependia da passagem dos números de bits para os recursos específicos. Com o Linux 5.19, é muito mais fácil lidar com isso, permitindo que a string CPUID de/proc/cpuinfo seja passada se desejar recursos específicos da CPUID desativados.

De forma bastante irritante, até agora, se quiser desabilitar alguns recursos CPUID do uso pelo kernel do Linux, você precisava ver o arquivo de cabeçalho cpufeatures.h dentro da área x86 do kernel e encontrar o número de bits para o determinado(s) recurso(s) que você deseja desabilitar. Como, por exemplo, desabilitar o AVX significava definir clearcpuid=156. Pior ainda, alguns dos números de bits não são estáveis ​​nas versões do kernel Linux.

Com o Linux 5.19, o parâmetro clearcpuid=kernel pode ser definido como strings da saída de sinalizadores em/proc/cpuinfo. Então, em vez de precisar lembrar números como clearcpuid=156, você pode simplesmente fazer clearcpuid=avx. Vários sinalizadores CPUID podem continuar a ser especificados delimitando-os com vírgulas.
Esta é uma melhoria há muito esperada para uma melhoria de usabilidade do kernel para administradores e aqueles que depuram o comportamento do kernel em seus sistemas. Os números de bits ainda podem ser usados, se desejado, enquanto para Linux 5.19+ os nomes dos bits de recursos são um jogo justo. É importante notar que o uso de clearcpuid=para limpar bits CPUID não se destina ao uso em produção. O software do espaço do usuário que chama CPUID diretamente ou apenas diretamente usando qualquer instrução relevante continuará a funcionar, clearcpuid=é apenas evitar o uso pelo kernel do Linux e removê-lo da saída/proc/cpuinfo também. O Linux 5.19 também está tratando o kernel como corrompido quando o clearcpuid está em uso.

Esta alteração foi enviada como parte das atualizações x86/cpu para Linux 5.19. Esse pull também elimina os parâmetros do kernel nosep, nosmep, noexec e noclflush, deixando de ser relevante por ter essas opções dedicadas.

Categories: IT Info