A linha principal em 2017 foi a chamada statx() para relatar informações e estatísticas aprimoradas de arquivos, como finalmente relatar o tempo de criação de um arquivo, números de versão de dados e outros atributos. O Statx continuou evoluindo desde sua introdução no Linux 4.11 e agora, para o Linux 6.1, espera-se que ofereça suporte ao relatório de informações de alinhamento de E/S direta.

Durante meses, houve trabalho para estender o statx para relatar informações de alinhamento de E/S como uma forma de o espaço do usuário descobrir esses detalhes de uma maneira muito mais fácil. Com o Linux 6.1, esses bits de atributo de alinhamento de E/S direta (DIO) estão prontos para a linha principal.

O engenheiro do Google Eric Biggers enviou este pull request para Linus Torvalds com o Adição de STATX_DIOALIGN. Biggers resume isso elegantemente como:

Faça statx() suportar relatar informações de alinhamento de E/S direta (DIO). Isso fornece uma interface genérica para programas de espaço do usuário para determinar se um arquivo suporta DIO e, em caso afirmativo, com quais restrições de alinhamento. Especificamente, STATX_DIOALIGN funciona em dispositivos de bloco e em arquivos regulares quando o sistema de arquivos que o contém implementou suporte.

Uma interface como essa é solicitada há anos, já que as condições para o suporte de DIO no Linux se tornaram cada vez mais complexas ao longo do tempo. Hoje, os requisitos de alinhamento e suporte de DIO podem ser afetados por vários recursos do sistema de arquivos, como suporte a vários dispositivos, diário de dados, dados em linha, criptografia, veracidade, compactação, desabilitação de ponto de verificação, modo estruturado em log, etc. 0 relaxou a regra tradicional de DIO que precisa ser alinhada ao tamanho do bloco lógico do dispositivo de bloco; agora os buffers do usuário (mas não os deslocamentos de arquivo) só precisam ser alinhados ao alinhamento DMA.

A abordagem de aprimorar o ioctl específico do XFS XFS_IOC_DIOINFO foi descartada em favor da criação de uma nova interface limpa com statx().

Assim, outra adição notável a caminho para Linux 6.1.

Categories: IT Info