Mesmo sem ser dotado de ufanismo no estilo Galvão Bueno de narrar ações de brasileiros, sempre fico feliz quando tenho oportunidade de noticiar os produtos dos desenvolvedores daqui, e é o caso de hoje, com a nova syscall criada pelo Arnaldo Carvalho de Melo (mais conhecido como acme), co-fundador da saudosa Conectiva e atualmente desenvolvedor na Red Hat, onde se ocupa, entre outros temas interessantes, da eficiência de transmissão (aumento do throughput, redução da latência, etc.) em redes de alta velocidade.
A nova syscall é a recvmmsg, e permite realizar em uma única chamada uma operação bastante comum (e mais custosa, se realizada da forma tradicional, com loops e polls): receber de uma vez só todas as mensagens que já estão em buffer, ou todas as que chegarem em um timeout dado. O LWN tem mais detalhes técnicos, para os interessados.
Faz tempo que não programo interfaces que tratem diretamente com a recepção de filas de mensagens, mas para mim era comum escrever (ou recorrer via bibliotecas de funções) rotinas para fazer esta mesma operação, com múltiplas chamadas e verificações sendo realizadas na aplicação. Fazer uma só chamada e deixar o kernel se virar, me devolvendo uma estrutura pronta e verificada, seria bem mais simples e eficiente.
Para quem usa conexões do dia-a-dia dos desktops, faz pouca diferença, pois a CPU é muito mais rápida do que a conexão de rede. Mas para quem vive em uma realidade que exige fazer testes com 700.000 transações em rede por segundo, como é o caso do acme (cujo micro de desenvolvimento tem 4 portas Gigabit Ethernet), todo ganho de desempenho conta.
Aproveitei a conversa para perguntar a ele sobre como outros interessados em contribuir para o desenvolvimento do kernel podem se envolver (aproveitando seu envolvmento no Kernel Janitors, um dos primeiros projetos de apoio a quem está iniciando neste campo), e ele indicou o kernelnewbies.org – que tal uma visita para ver se você se encaixa por lá?
Saiba mais (lwn.net).
0sem comentários ainda