Linus Torvalds reclama de alguns dos códigos Bcachefs para kernel Linux 6.9

O desenvolvedor Linus Torvalds reclama de alguns dos códigos Bcachefs para kernel Linux 6.9. Desde que o sistema de arquivos Bcachefs foi upstream no kernel Linux 6.7, ele tem andado bem ao longo da fada. Mas hoje as atualizações de recursos do Bcachefs foram enviadas para a janela de mesclagem do Linux 6.9 e Linus Torvalds não está feliz com parte do código proposto.

Linus Torvalds reclama de alguns dos códigos Bcachefs para kernel Linux 6.9

O código Bcachefs enviado para Linux 6.9 inclui algum trabalho de preparação para uma interface de espaço do usuário para subvolumes ambulantes, melhorias na verificação da estrutura de diretórios, pipelining de diário aprimorado para melhor desempenho, melhorias no caminho de descarte que são mais eficientes e outras otimizações. A solicitação pull de alterações do Bcachefs para Linux 6.9 é resumida pelo mantenedor Kent Overstreet como:

bcachefs updates for 6.9

  • Subvolume children btree; Isso é necessário para fornecer uma interface de espaço de usuário para subvolumes ambulantes, que virão mais tarde
  • Muitas melhorias na verificação
    da estrutura de diretórios
  • Melhoria no pipelining de diários, melhorando significativamente o desempenho em cargas de trabalho de gravação de alta ioprofundidade – Melhorias no caminho de descarte: o caminho de descarte é mais eficiente, e não libera mais o diário desnecessariamente
  • Caminho de gravação em buffer agora pode evitar tomar o bloqueio
    de inode – Retire vários códigos de biblioteca para uso no XFS: estatísticas de tempo, mean_and_variance, darray, eytzinger, thread_with_file
  • novo auxiliar mm: memalloc_flags_{salvar|restaurar}
  • mempool agora faz kvmalloc mempools

Mas o código que esfrega Linus Torvalds da maneira errada são os patches movendo alguns elementos do código Bcachefs para algum código do tipo biblioteca para que ele possa ser facilmente reutilizado por outros sistemas de arquivos — XFS era o sistema de arquivos expresso interessado em potencialmente reutilizar algumas funções do Bcachefs.

Linus Torvalds respondeu a esse pedido de puxada do Bcachefs com:

A coisa “fazer o código bcachefs aleatório ser uma função de biblioteca” que eu olhei, decidi que não faz sentido, e acabei significando que não estou puxando isso sem muito mais explicação (e, honestamente, não acho que as explicações se sustentariam). Esse “stdio_redirect_printf()” e coisas darray_char são apenas interfaces horrendas sem explicações. As interfaces são nojentas. Mantenha-o em seu próprio código onde ele pertence, não tente torná-lo uma coisa genérica de biblioteca. E se você faz faz disso uma coisa de biblioteca, ela precisa ser (a) muito mais explicada (b) ter nomenclatura muito mais sã, e menos interfaces nojentas e completamente sem sentido (“DARRAY()”).

E não, encontrar um outro sistema de arquivos para compartilhar esse tipo de código não é suficiente para tentar afirmar que é uma interface sã e uma nomeação sã. Mas o principal problema é a matemática insana.

E caramba, falamos sobre o lixo idiota de “média e variação” há muito tempo. Estava errado naquela época, está ainda errado. Você não explicou por que ele não poderia usar o muito mais simples MAD (desvio absoluto mediano) em vez de usar variância. Essa má decisão resulta diretamente nesse uso inútil de matemática excessivamente complexa de 128 bits.

Eu o chamei de insanamente super-projetado naquela época, e até onde eu posso dizer, absolutamente NADA mudou além de alguns pequenos detalhes de nome de tipo.

Contanto que você tenha feito uma espécie de coisa só de bcachefs, eu não me importo.

Mas agora você está tentando empurrar esse lixo como algum tipo de código de biblioteca genérico que outros usariam, e isso imediatamente significa que eu mente me importo com interfaces insanamente superprojetadas.

O time_stats material de outra forma parece leask como uma interface sã com nomes e usos, mas o uso dessa infraestrutura horrenda afunda.

Depois que Overstreet argumentou seu caso, Torvalds acrescentou:

“O código para a versão ponderada literalmente não muda. O valor da variância é diferente, mas a diferença entre MAD e desvio padrão é basicamente apenas um fator constante (que será diferente para distribuições diferentes, mas e daí? Qualquer caso particular terá uma distribuição particular).

Então, por que um fator constante faria qualquer diferença para qualquer ponderação exponencial? De qualquer forma, sinta-se livre para manter seu código em bcachefs.

E talvez o xfs até queira copiar esse código. Eu não me importo, parece estúpido, mas isso é uma escolha de sistema de arquivos. Mas se estamos fazendo dela uma biblioteca de kernel genérica, ela precisa ser sã. Não fazer com que as pessoas façam raízes quadradas de 64 bits e divisões de 128 bits apenas por um elemento estatístico aleatório.”

Então, como está agora, Linus Torvalds não está aceitando este pedido de pull do Bcachefs para o kernel Linux 6.9 devido ao código de biblioteca genérico proposto. Veremos se uma nova solicitação pull virá nos próximos dias com esses patches descartados ou retrabalhados para satisfazer o criador do Linux.

Share This Article
Follow:
Jornalista com pós graduações em Economia, Jornalismo Digital e Radiodifusão. Nas horas não muito vagas, professor, fotógrafo, apaixonado por rádio e natureza.
Sair da versão mobile