- Patch no Kernel Linux 7.0-rc1 otimiza a randomização da pilha para reduzir latência em chamadas de sistema.
- Testes em instâncias ARM Graviton3 mostraram redução de quase 60% na latência de cauda (p99.9).
- A solução utiliza um gerador PRNG por CPU para substituir métodos custosos de entropia de hardware.
- Mudança estrutural move o estado do kstack para o nível da tarefa (per-task), fechando brechas de segurança.
- As melhorias estarão disponíveis para usuários finais na versão estável do Kernel Linux 7.0.
O desenvolvedor Ryan Roberts, da ARM, enviou uma série de patches que corrige falhas funcionais e otimiza drasticamente o desempenho da randomização do deslocamento da pilha do kernel (kstack offset randomization). A mudança impacta o Kernel Linux 7.0-rc1, trazendo uma estrutura mais robusta para mitigar ataques que exploram o layout previsível da pilha sem comprometer a agilidade do processador.
O que isso significa na prática
A randomização da pilha é uma camada de segurança que altera o local onde os dados são armazenados temporariamente, dificultando a vida de invasores que tentam prever onde injetar código malicioso. Antes, o método usado para escolher esses locais era pesado e causava lentidão em cada interação básica entre o software e o hardware (as chamadas de sistema). Com o novo patch, o Kernel Linux 7.0-rc1 utiliza um gerador matemático mais veloz que mantém a barreira de segurança, mas elimina o “pedágio” de desempenho que afetava especialmente grandes servidores em nuvem.
Essa otimização de performance não ignora a segurança; ela se soma a outros esforços de blindagem do ciclo 7.0, como o novo escudo anti-hacker para arquitetura RISC-V, reforçando a proteção do núcleo em diversas frentes.
Detalhes da implementação
A nova lógica técnica substitui o uso de contadores de ciclos de hardware e chamadas custosas ao subsistema de entropia por um gerador de números pseudoaleatórios (PRNG) por CPU, semeado durante o boot. O patch também move o armazenamento do deslocamento da pilha para uma base por tarefa (per-task). Isso corrige uma vulnerabilidade crítica: antes, a migração de um processo entre diferentes núcleos de CPU poderia tornar o sistema previsível para um atacante. Agora, o valor acompanha a tarefa, independentemente do núcleo onde ela é executada.
| Benchmark (Syscall) | Arquitetura | Ganho de Latência Média | Melhoria em Latência de Cauda (p99.9) |
| getpid | arm64 (Graviton3) | -9.50% | -59.52% |
| getppid | arm64 (Graviton3) | -9.52% | -59.50% |
| getpid | x86_64 (Sapphire Rapids) | -17.65% | -28.52% |
| invalid syscall | x86_64 (Sapphire Rapids) | -18.56% | -25.04% |
Curiosidades e bastidores da discussão
Durante os debates na LKML, houve questionamentos sobre a força do novo PRNG em comparação aos métodos baseados em hardware. Ryan Roberts e Mark Rutland esclareceram que, como existem apenas 64 posições possíveis para a pilha (6 bits de entropia), a segurança já é limitada por natureza. O consenso técnico entre figuras como Dave Hansen e Kees Cook foi de que o ganho massivo de performance — chegando a quase 60% em latência de cauda no ARM — justifica a mudança, tornando o Kernel Linux 7.0-rc1 muito mais equilibrado para uso em larga escala.
Quando isso chega no meu PC?
A mudança já faz parte do ciclo de desenvolvimento do Kernel Linux 7.0-rc1. Isso significa que a versão estável deve chegar aos usuários finais em cerca de dois meses. Usuários de distribuições de atualização rápida (rolling release), como Arch Linux ou Fedora, serão os primeiros a notar a melhoria. Já para quem opera infraestruturas em nuvem com processadores ARM64, o impacto positivo na eficiência das syscalls será um diferencial competitivo imediato após a atualização da distro.
Além da agilidade nas chamadas de sistema, vale lembrar que o Kernel Linux 7.0 também traz o agendamento ciente de cache, outra melhoria vital para a performance em processadores modernos que acompanhamos recentemente aqui no SempreUpdate.
