O desenvolvedor Aiden Hecker enviou uma nova série de patches para o kernel Linux com o objetivo de corrigir o gerenciamento de desempenho dos processadores híbridos AMD Ryzen AI. Baseada em testes de hardware com o Ryzen AI 7 350, a proposta tenta resolver uma falha de escalonamento do sistema operacional, que atualmente trata núcleos clássicos de alto desempenho (Zen 5) e núcleos densos (Zen 5c) como se tivessem a exata mesma capacidade de processamento.
Os resultados preliminares apresentados pelo autor indicam ganhos expressivos em cargas de trabalho específicas após a separação de capacidades. No entanto, o código ainda não possui validação independente e já recebeu críticas arquitetônicas severas de desenvolvedores da própria AMD na lista de e-mails do kernel.
O problema de escalonamento nos processadores híbridos da AMD
O Ryzen AI 7 350, pertencente à família “Krackan Point”, é um processador heterogêneo. O silício intercala quatro núcleos físicos Zen 5, que atingem frequências de até 5.09 GHz, e quatro núcleos físicos Zen 5c, limitados a 3.51 GHz. Todos dividem o mesmo complexo (CCX) com 16 MiB de cache L3.
Na versão principal (mainline) do Linux, os drivers amd-pstate e amd_hfi não ativam a escala de capacidade híbrida para essa arquitetura. Como resultado direto dessa omissão, o sistema operacional atribui um valor estático e uniforme de 1024 para todos os 16 núcleos lógicos do chip.
Na prática, isso significa que o escalonador de tarefas do Linux não compreende a diferença de força bruta entre os núcleos. Ele pode encaminhar um processamento crítico para um núcleo Zen 5c acreditando que obterá o mesmo desempenho de um núcleo Zen 5. Segundo as medições de Hecker no Fedora 45, essa distribuição gera uma penalidade de latência de 42,7% em tarefas específicas executadas nos núcleos menores.
Ao aplicar seus patches para diferenciar os núcleos, Hecker relatou que a latência média em um teste de estresse com 16 threads caiu de 75,77 ms para 34,66 ms.
A solução proposta e as alterações no SMT
O envio de Hecker é dividido em duas frentes. O primeiro patch modifica o driver amd-pstate para registrar a diferença física entre os núcleos e avisar ao sistema operacional que existe uma assimetria de capacidade (capacity scaling).
O segundo patch foca no SMT (Simultaneous Multithreading). A implementação atual do Linux confere a mesma prioridade de uso tanto para a thread principal quanto para a thread secundária de um núcleo. A sugestão de Hecker foi reduzir matematicamente a pontuação da thread secundária para 7/8 do valor da principal. O objetivo declarado era forçar o escalonador do Linux a sempre preencher os núcleos físicos ociosos primeiro, preservando a prioridade dos núcleos Zen 5 clássicos antes de recorrer aos núcleos densos ou virtuais.
Críticas à implementação e exigência de ajustes

Apesar de identificar um problema real no hardware híbrido, a solução apresentada no código encontrou resistência técnica. K Prateek Nayak, engenheiro de software da AMD, analisou os patches e apontou falhas na lógica de implementação.
Nayak criticou duramente a decisão de misturar o ranking de núcleos preferenciais (CPPC) com a capacidade de processamento assimétrica. O engenheiro orientou que a capacidade de um núcleo deve ser definida exclusivamente pela sua maior frequência operacional, utilizando a função nativa amd_get_effective_highest_perf(), e não por pontuações de preferência do ACPI.
A intervenção nas prioridades do SMT também foi rejeitada. Segundo Nayak, o ajuste manual de pontuação (IPCC) para esconder threads secundárias é desnecessário. Se a capacidade assimétrica do processador estiver configurada corretamente, o próprio agendador nativo do Linux já possui inteligência suficiente para procurar núcleos ociosos que acomodem a carga de trabalho.
Outro erro apontado na revisão foi o momento em que o código define essas capacidades. Como a diferença física entre um núcleo Zen 5 e um núcleo Zen 5c não sofre alterações durante o uso, Nayak explicou que a identificação deve ocorrer durante a inicialização do computador (boot). O método de Hecker forçava uma reconstrução dos domínios de escalonamento com a máquina já em operação, um processo redundante para uma característica imutável do hardware.
O conjunto de patches encontra-se na versão 2 (v2) e precisará ser reescrito para incorporar as correções exigidas antes de qualquer chance de inclusão no kernel mainline. Até que uma solução estável seja aceita, os processadores Ryzen AI com arquitetura híbrida continuarão operando com gerenciamento simétrico no Linux.
