FERRAMENTAS LINUX: Como Implementar as Melhorias no Desempenho do Linux com getrandom() na vDSO

segunda-feira, 10 de junho de 2024

Como Implementar as Melhorias no Desempenho do Linux com getrandom() na vDSO

 

Nos últimos dois anos, uma proposta interessante tem sido debatida no contexto do Linux: a adição da função getrandom() à vDSO (Virtual Dynamically-linked Shared Object), com o intuito de melhorar o desempenho na obtenção de números aleatórios em espaço de usuário. 

Esta iniciativa, liderada por Jason Donenfeld, conhecido por seu trabalho no WireGuard, visa oferecer números aleatórios criptograficamente seguros com maior rapidez para o espaço de usuário.

Apesar da aparente simplicidade, a implementação dessa melhoria enfrentou desafios contínuos e acaloradas discussões. No último envio das correções v16 para  getrandom() na vDSO, Donenfeld resumiu o estado atual como um retorno após um breve hiato. 




Embora muitos aspectos tenham sido acordados, como o caso de uso, a implementação e semântica da vDSO, sua integração com a libc, código de teste e documentação, entre outros, permaneceu um problema persistente. Isso se deveu à necessidade de novas semânticas de mm (memória virtual) que não foram bem recebidas pela comunidade.




Recentemente, foi sugerido o uso de _install_special_mapping() em vez do trabalho com VM_DROPPABLE, o que implicaria em alterações significativas em diversos códigos essenciais. Apesar das tentativas de implementação, ficou claro que as semânticas desejadas não eram possíveis sem modificações extensas. No entanto, a remoção do componente de decodificação de instruções x86 simplificou o processo, tornando a proposta mais palatável.




A esperança reside na revisão e discussão contínuas das atualizações dos patches. Recentemente, os patches foram atualizados no branch vdso do random.git, o que sugere que essa série de patches para melhorar o desempenho do getrandom() pode finalmente estar pronta para integrar o kernel Linux 6.11. É um alívio ver que há luz no fim do túnel após dois anos de trabalho árduo.





Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário