O desenvolvedor Linus Torvalds não se convenceu da utilidade e deve excluir getrandom() no vDSO para Linux 6.11.
Embora houvesse planos de adicionar getrandom() no vDSO com a próxima janela de mesclagem do Linux 6.11 para acelerar o acesso à geração de números aleatórios no espaço do usuário, Linus Torvalds não está convencido do trabalho e pretende rejeitar qualquer solicitação pull com ele para o Linux 6.11.
Linus Torvalds deve excluir getrandom() no vDSO para Linux 6.11
Este trabalho getrandom() no vDSO passou por 20+ rodadas de revisão nos últimos 2+ anos, mas Linus Torvalds ainda não está satisfeito com seu design ou mesmo com a necessidade. Torvalds tirou algum tempo de seu Dia da Independência dos EUA para discutir os méritos dos patches na lista de discussão do kernel Linux.
Torvalds começou as coisas escrevendo:
“Ninguém me explicou o que mudou desde o seu último vdso getrandom, e eu não estou planejando puxá-lo a menos que essa falha fundamental seja corrigida.
Por que isso é tão crítico que precisa de um vdso?
Por que o espaço do usuário não está apenas fazendo isso sozinho?
O que há de tão mágico nisso tudo?
Isso tudo me parece totalmente inútil ainda, porque está otimizando algo com o qual ninguém parece se importar, adicionando nova infraestrutura de VM, novas chamadas de sistema mágico, yadda yadda.
Eu estava muito cético da última vez, e absolutamente nada mudou. Nem um pio sobre por que agora de repente é tão importante novamente.
Não acrescentamos coisas “só porque podemos”. Precisamos ter uma boa razão para isso. E eu ainda não vejo o motivo, e não vi ninguém sequer tentando explicar o motivo.”
E então ele respondeu a si mesmo acrescentando:
“IOW, eu quero ver usuários reais canalizando e dizendo “isso é um problema, aqui está minha carga real que gasta 10% do tempo em getrandom(), e isso corrige isso”.
Não estou nem um pouco interessado em microbenchmarks ou teóricos “se os usuários precisam de números aleatórios de alto desempenho”.
Eu preciso de um usuário real ao vivo que diga “Eu não posso simplesmente usar rdrand e minha própria mistura de chacha no topo” e explique por que ter uma chachacha SSE2 no código do kernel exposta como um vdso é tão crítico, e um buffer mágico mantido pelo kernel.”
Torvalds também acrescentou em uma terceira mensagem:
“Uma nota final: a razão pela qual sou tão negativo sobre tudo isso é que o subsistema de números aleatórios tem uma história absolutamente horrenda de duas questões conflitantes principais: as pessoas que querem números aleatórios utilizáveis razoáveis de um lado e, em seguida, as pessoas que discutem o que a palavra “entropia” significa do outro lado.
E honestamente, eu não quero o kernel preso ainda mais no meio desse pântano. Eu suspeito fortemente que uma razão pela qual as pessoas da glibc gostariam disso é exatamente a mesma razão: elas não querem ficar presas na mesma sala acolchoada com os loucos também, então eles adoram o conceito de “problema de outra pessoa”.
Então, não. Eu não acho que “libc people want this” seja um argumento para o kernel fazer isso. Muito pelo contrário. É uma coisa de “passar a batata quente”. É por isso que eu realmente quero que esses usuários reais se levantem e digam “não podemos usar rdrand e rdtsc e nossa própria mistura”.”
Depois de algumas idas e vindas com Jason Donenfeld como o principal desenvolvedor dos patches, Torvalds comentou:
“Jason. Isso cheira. É BS.
Christ, vamos fazer um acordo: fazer um patch de cinco linhas que adiciona o número de geração aos dados do vdso e, basicamente, documentá-lo como um sinalizador “o kernel acha que você precisa resemear seus buffers usando getrandom”.
E se acontecer no futuro que há então alguma razão importante para que isso não funcione, eu vou pegar a coisa da linha 1000+, ok?
Acordo?”
Dados os comentários de Torvalds, parece que esses patches vDSO aleatórios não serão aplicados n próximo ciclo do Linux 6.11.