AMD alcança a Intel no controle de recursos do data center: Linux ganha suporte para o poderoso ABMC

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 Kernel Linux está prestes a ganhar suporte para uma nova e poderosa funcionalidade de hardware dos processadores AMD: os Assignable Bandwidth Monitoring Counters (ABMC). Também conhecido como “QoS RMID Pinning”, o recurso chega numa série madura de patches (v18) assinada por Babu Moger (AMD) e expande o que o resctrl consegue medir — com muito mais previsibilidade, granularidade e controle. Em outras palavras: administradores finalmente terão um jeito confiável de acompanhar a largura de banda de memória ao longo do tempo, sem “apagões” aleatórios nas métricas.

Por que isso é importante? Até aqui, medir MBM (Memory Bandwidth Monitoring) dependia de como o hardware distribuía RMIDs pelos poucos contadores disponíveis. Com múltiplos processos disputando os mesmos contadores, um monitoramento podia ser “desalojado” e os números, zerados — exasperante para quem investiga gargalos que aparecem de forma intermitente. O ABMC resolve isso permitindo “fixar” (pin) um contador de hardware em um RMID+evento específico, garantindo um fluxo contínuo de dados. Pense assim: antes você tentava assistir a vários jogos zapeando entre canais; agora você tem uma câmera dedicada para cada jogador que importa para a sua análise.

Resolvendo a imprevisibilidade do monitoramento de memória

Na prática, o ABMC permite ao Linux atribuir um contador físico a um par RMID + evento (por exemplo, mbm_total_bytes ou mbm_local_bytes) e manter esse vínculo até que o operador decida desfazê-lo. O suporte no kernel expõe uma capacidade detectável via CPUID em CPUs AMD recentes (o pacote traz a leitura detalhada da folha Fn8000_0020), além de uma série de controles no resctrl para verificar quantos contadores existem por domínio (por exemplo, por LLC/L3) e quantos ainda estão livres para atribuição.

Essa mudança é um passo estratégico para a AMD no data center e no HPC: ela aproxima o ecossistema AMD ABMC Linux das facilidades que a Intel oferece há anos com RDT (CMT/MBM), hoje expostas ao usuário justamente via resctrl. Para quem opera clusters heterogêneos, isso significa menos assimetria entre plataformas e uma trilha mais simples de observabilidade e capacidade de troubleshooting.

Como usar o ABMC no Linux: uma nova interface no resctrl

A nova série reestrutura a experiência do usuário no resctrl com arquivos e diretórios de fácil descoberta. O nome do modo de atribuição de contadores consolidou-se como mbm_event, e há indicadores claros de quantos contadores existem e quantos estão disponíveis em cada domínio. Você também pode atribuir/desatribuir de forma explícita — por grupo — usando uma sintaxe simples. Veja um “tour” rápido:

1) Verifique se o modo de atribuição está ativo

# Montar o resctrl (se ainda não estiver montado)
mount -t resctrl resctrl /sys/fs/resctrl/

# Listar modos de monitoramento MBM; colchetes marcam o modo ativo
cat /sys/fs/resctrl/info/L3_MON/mbm_assign_mode
# Saída típica:
# [mbm_event]
# default

Esse [mbm_event] indica que o sistema suporta e está usando o modo com contadores atribuíveis.

2) Quantos contadores existem e quantos estão livres?

# Máximo de contadores por domínio (total)
cat /sys/fs/resctrl/info/L3_MON/num_mbm_cntrs
# Ex.: 0=32;1=32

# Contadores ainda disponíveis para atribuição por domínio
cat /sys/fs/resctrl/info/L3_MON/available_mbm_cntrs
# Ex.: 0=30;1=30

Os números variam conforme a CPU e a topologia; o formato domínio=valor facilita automatizações.

3) (Opcional) Atribuição automática ao criar grupos

# Habilitar auto-atribuição ao criar grupos via mkdir
echo 1 > /sys/fs/resctrl/info/L3_MON/mbm_assign_on_mkdir

Ótimo para ambientes com orchestrators que criam/destroem grupos com frequência.

4) Listar e modificar as atribuições de um grupo

A listagem (e a escrita) acontece por grupo no arquivo mbm_L3_assignments. No grupo padrão:

# Listar estados de atribuição do grupo padrão
cat /sys/fs/resctrl/mbm_L3_assignments
# Ex.: 
# mbm_total_bytes:0=e;1=e
# mbm_local_bytes:0=e;1=e

# Desatribuir o contador do evento mbm_total_bytes apenas no domínio 0
echo "mbm_total_bytes:0=_" > /sys/fs/resctrl/mbm_L3_assignments

# Atribuir contador para todos os domínios em modo exclusivo
echo "mbm_total_bytes:*=e" > /sys/fs/resctrl/mbm_L3_assignments

Na sintaxe acima, _ significa “desatribuir” e e significa “atribuir em modo exclusivo”. O mesmo arquivo existe em CTRL_MON e em MON groups (subgrupos de monitoramento).

5) Afinar o que cada evento mede

Além da atribuição, o kernel introduz configurações por evento em event_configs/…/event_filter. É aqui que você define quais tipos de transação de memória contam para cada evento — por exemplo, local_reads, remote_reads ou acessos a “memória lenta”.

# Ver filtros de transação por evento
cat /sys/fs/resctrl/info/L3_MON/event_configs/mbm_total_bytes/event_filter
cat /sys/fs/resctrl/info/L3_MON/event_configs/mbm_local_bytes/event_filter

Isso permite adaptar a coleta ao seu cenário (NUMA, memória CXL, tiers lentos), evitando métricas “poluídas”.

Um passo a mais na paridade de recursos — e de ecossistema

Há também um cuidado arquitetural: a interface proposta para atribuição de contadores foi discutida com mantenedores de Intel e Arm para permanecer genérica o bastante e, no futuro, acomodar tecnologias como MPAM no mundo Arm — sem reinventar a roda de user space. Essa convergência é valiosa para quem opera plataformas mistas e quer políticas de QoS e observabilidade consistentes.

Vale notar: no momento da publicação, a série v18 ainda está em revisão pública e passando por ajustes finos de interface (nomes, exemplos, documentação). O fato de ter chegado a essa “idade” de versão mostra a exigência técnica — e também a maturidade do que deve aterrissar no kernel. Se você é mantenedor de SREs, performance ou observabilidade em AMD, é hora de planejar os testes de integração no seu parque.

Compartilhe este artigo