FERRAMENTAS LINUX: Otimização do Kernel Linux: Remoção do Sentinel Sysctl Bloat

terça-feira, 7 de maio de 2024

Otimização do Kernel Linux: Remoção do Sentinel Sysctl Bloat

 


Ao longo do último ano, houve um grande esforço no código sysctl do kernel Linux para eliminar cerca de 64 bytes de inchaço por array em todo o kernel. Isso foi alcançado removendo a última entrada “sentinela” sysctl no final de cada array. 

Essa mudança não só reduz o tempo de construção do kernel, mas também é uma melhoria significativa. Com o Linux 6.10, a limpeza do sentinel sysctl em diferentes subsistemas está prestes a acontecer.

Limpeza do Sentinel Sysctl

A remoção do último elemento vazio em cada array sysctl está finalmente acontecendo. Por exemplo, a remoção do sentinel sysctl no subsistema de rede foi enfileirada na semana passada.

Por que a Remoção do Sentinel Sysctl é Importante?

Ao remover os elementos sentinel sysctl, evitamos o inchaço do kernel à medida que os arrays ctl_table são movidos para fora do kernel/sysctl.c em seus próprios subsistemas respectivos. Esse movimento começou há muito tempo para evitar conflitos de mesclagem; a remoção do bit sentinel veio depois que Mathew Wilcox sugeriu para evitar o inchaço do kernel por um elemento à medida que os arrays se moviam. Este conjunto de patches reduzirá o tamanho do tempo de construção geral do kernel e o inchaço da memória em tempo de execução em cerca de 64 bytes por array ctl_table declarado.

Economia no vmlinux

Após a remoção, um total de 64 bytes por sentinel é economizado. Eu medi no x86_64 para dar uma ideia das economias agregadas. As economias reais dependerão da configuração individual do kernel. Por exemplo, a configuração “yesall” economiza 3976 bytes, enquanto uma configuração reduzida economiza 1263 bytes.

Economia na memória alocada

Nenhuma economia neste conjunto, mas ocorrerá quando as alocações supérfluas forem removidas do proc_sysctl.c. Eu incluo aqui para contexto. A economia estimada durante a inicialização para a configuração é de 6272 bytes.

É bom ver este trabalho de limpeza do sentinel sysctl culminando após o esforço prolongado ao longo do último ano.





Fonte 

Até a próxima !!

Nenhum comentário:

Postar um comentário