Uma correção está a caminho do kernel Linux 6.4 da linha principal e também marcada para back-porting para a série de kernel estável existente para corrigir relatórios de topologia x86 para sistemas híbridos Intel. O bug de topologia dentro do kernel torna-se mais pronunciado para laptops Meteor Lake, onde atualmente os laptops de teste internos da Intel podem relatar os sistemas com 11 soquetes de CPU, em vez do número adequado de núcleos, todos contidos em um soquete de CPU.
Embora os designs de CPU híbridos da Intel sejam comuns desde o final de 2021, o kernel do Linux até agora não tratou adequadamente a variável”smp_num_siblings”que, por sua vez, é propagada para o espaço do usuário e pode acabar relatando informações incorretas. No caso de uma futura plataforma Intel Meteor Lake P, o kernel do Linux até este ponto com o comando lscpu comum relataria a existência de 11 soquetes de CPU para o sistema, cada um com um único núcleo. Na realidade, é um laptop de soquete único com 16 núcleos no total.
Além de as informações erradas serem propagadas para o espaço do usuário para fins informativos, essa manipulação inadequada de smp_num_siblings pode acabar causando um impacto nas decisões do escalonador do kernel do Linux. Como o engenheiro da Intel, Zhang Rui, comentou:”Espera-se que isso também faça com que o agendador faça coisas bastante instáveis”.
Ele explicou ainda mais sobre este patch:
“Tradicionalmente , todas as CPUs em um sistema têm números idênticos de irmãos SMT. Isso muda com os processadores híbridos, onde algumas CPUs lógicas têm um irmão e outras não.
Hoje, o código de inicialização da CPU define a variável global smp_num_siblings quando cada thread da CPU é ativado up. O último thread a inicializar irá sobrescrevê-lo com o número de irmãos daquele * thread. Esse último thread a inicializar irá”ganhar”. Se o thread for um Pcore, smp_num_siblings==2. Se for um Ecore, smp_num_siblings==1.
smp_num_siblings descreve se o *sistema* suporta SMT. Ele deve especificar o número máximo de encadeamentos SMT entre todos os núcleos.
Certifique-se de que smp_num_siblings representa o máximo de todo o sistema número de irmãos aumentando sempre o seu valor. Nunca permita que ela diminua.
Na plataforma MeteorLake-P, isso corrige um problema de que as CPUs Ecore não são atualizadas em nenhum mapa de irmãs de cpu porque o sistema é tratado como um sistema UP ao testar as CPUs Ecore.”
blockquote>
Aquele patch foi obtido ontem pela ramificação x86/urgente do TIP. Por sua vez, ele será submetido ao kernel do Linux 6.4 provavelmente no fim de semana como uma correção urgente. O patch também está marcado para retroportar para o Linux existente versões estáveis do kernel para garantir que a contagem de irmãos SMP seja relatada corretamente nas plataformas híbridas da Intel.