ARM MPAM no Kernel Linux 7.0-rc1: O novo aliado para a performance de máquinas virtuais

ARM MPAM chega ao Kernel Linux 7.0-rc1 para otimizar cache em ambientes de virtualização!

Escrito por
Emanuel Negromonte
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre...
  • O patch habilita o ARM MPAM no Kernel Linux 7.0-rc1, resolvendo a disputa por cache entre processos e máquinas virtuais simultâneas.
  • Administradores podem agora limitar o uso de banda de memória, impedindo que tarefas secundárias prejudiquem aplicações críticas.
  • A solução foi enviada pela Arm Ltd, integrando o hardware ARM64 à interface resctrl, garantindo paridade com recursos da Intel e AMD.
  • Sob o capô, o patch implementa o registro MPAMSM_EL1 e emula CDP para separar controles de busca de instruções e acesso a dados.
  • O recurso está disponível no ciclo do Kernel Linux 7.0-rc1 e deve chegar às distribuições Linux de servidor até o final de 2026.

Ben Horgan, da Arm Ltd, enviou uma série de patches que finalmente tornam o recurso MPAM (Memory System Resource Partitioning and Monitoring) utilizável através da interface resctrl no Kernel Linux 7.0-rc1. A mudança permite que o sistema operacional monitore e limite o uso de cache e banda de memória em processadores ARM64, trazendo paridade com recursos já existentes em arquiteturas Intel e AMD.

O patch foca na integração entre o hardware ARM e o subsistema de controle de recursos do kernel, incluindo o suporte necessário para o KVM. Isso significa que hipervisores agora podem gerenciar como as máquinas virtuais consomem recursos críticos do sistema, garantindo maior isolamento e previsibilidade de desempenho. A palavra-chave Kernel Linux 7.0-rc1 marca este ciclo como o ponto de maturidade para a virtualização em larga escala na arquitetura.

Vale lembrar que, como acompanhamos recentemente no SempreUpdate, a integração do MPAM é um marco para ecossistemas ARM64, pois permite que administradores utilizem as mesmas ferramentas de gestão já consagradas em chips Intel e AMD.

O que isso significa na prática

Imagine que você tem um servidor rodando várias máquinas virtuais ou containers simultâneos. Se uma dessas aplicações começa a usar todo o cache do processador ou a largura de banda da memória, todas as outras ficam lentas. O suporte ao MPAM permite que o administrador do sistema “fatie” esses recursos. Na prática, você pode definir que um banco de dados tenha prioridade total no cache L3, enquanto um processo de backup em segundo plano receba apenas uma fração mínima da banda de memória, evitando que ele atrapalhe as tarefas principais.

Detalhes da implementação

A implementação utiliza a interface resctrl como o mecanismo de controle para o usuário. O patch introduz o registro MPAMSM_EL1, que define as configurações de etiquetas para unidades de computação em modo streaming. A mudança impacta diretamente o processo de alternância de contexto do Kernel Linux 7.0-rc1, garantindo que as etiquetas de partição (PARTID) e os grupos de monitoramento de desempenho (PMG) sejam restaurados corretamente quando um processo volta a ser executado pela CPU.

Um dos avanços técnicos é a emulação de CDP (Code Data Prioritization). Como o hardware ARM rotula o tráfego de busca de instruções de forma diferente do tráfego de dados, o driver agora consegue emular o comportamento do Intel RDT, permitindo controles independentes para código e dados no cache.

O código também introduz uma estrutura de quirks para lidar com comportamentos específicos de fabricantes. No caso do hardware NVIDIA T241, o patch corrige um problema onde os contadores de largura de banda reportavam transações em vez de bytes, aplicando uma escala de 64 para garantir a precisão exigida pela especificação.

Curiosidades e bastidores da discussão

Os e-mails na LKML revelam que esta quarta versão do patch (v4) passou por uma redução de escopo técnica. A emulação de ABMC (contadores de banda atribuíveis) foi removida temporariamente. O motivo técnico foi a necessidade de alterações mais profundas no subsistema resctrl para evitar a quebra da compatibilidade com ferramentas de espaço de usuário (ABI).

James Morse, um dos principais colaboradores, explicou que o código de integração funciona escolhendo quais recursos de hardware expor baseando-se na topologia do processador. Houve uma discussão específica sobre como o sistema deve se comportar em plataformas que possuem apenas monitores de recursos, mas não possuem controles de limite ativos. O patch foi ajustado para permitir que o sistema de monitoramento funcione mesmo quando não há componentes de controle de cache L3 disponíveis, simulando a existência de um controlador para manter a interface resctrl operacional.

Quando isso chega no meu PC?

Considerando que os patches estão na versão v4 e o ciclo do Kernel Linux 7.0-rc1 acaba de começar, a expectativa é que a funcionalidade seja estabilizada durante este ciclo de desenvolvimento. Para o usuário final, isso significa que distribuições focadas em servidores e estações de trabalho ARM64, como Ubuntu Server, Fedora e Red Hat, devem disponibilizar o recurso em suas versões de final de 2026. O ganho será sentido principalmente em ambientes de nuvem e virtualização pesada.

Compartilhe este artigo
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre GNU/Linux, Software Livre e Código Aberto, dedica-se a descomplicar o universo tecnológico para entusiastas e profissionais. Seu foco é em notícias, tutoriais e análises aprofundadas, promovendo o conhecimento e a liberdade digital no Brasil.