Enquanto a janela de mesclagem do Kernel Linux 6.4 ficou fechada no fim de semana, no dia 06, o último dia completo do período, Jens Axboe enviou o suporte ao pipe FMODE_NOWAIT como o que ele descreveu como uma grande melhoria de desempenho e eficiência.
Com uma encarnação anterior do suporte FMODE_NOWAIT para os patches de pipes , Axboe explicou:
"Uma coisa que sempre foi um pouco mais lenta do que eu gostaria com io_uring é lidar com pipes. Eles não suportam IOCB_NOWAIT e, portanto, precisamos puntá-los para io-wq para manipulação. Esta série adiciona suporte para FMODE_NOWAIT para os pipes ."
Mas onde as coisas realmente ficam loucas é a escala do ganho de desempenho/eficiência disso:
"Curioso para saber a diferença que isso faz, escrevi um pequeno benchmark que simplesmente abre 128 canais e depois faz 256 rodadas de leitura e gravação para eles. Isso foi executado 10 vezes, descartando a primeira execução, pois é sempre um pouco mais lento. Antes do patch:
Avg: 262,52 msec
Stdev: 2,12 msec
Min: 261,07 msec
Max 267,91 msec
e após o patch:
Avg: 24,14 msec
Stdev: 9,61 msec
Min: 17,84 msec
Max: 43,75 msec
ou cerca de uma melhoria de 10x no desempenho (e eficiência ).
Corri os patches através do ltp pipe e testes de emenda, sem regressões observadas. Observando os rastreamentos io_uring, podemos ver que não temos mais nenhum rastreamento io_uring_queue_async_work() após o patch, onde anteriormente tudo era feito via io-wq."
Mais tarde, ele acrescentou nessa série de patches:
"O teste acima foi para um tubo vazio quando a leitura é emitida, se o teste for alterado para ter dados quando, então parecerá ainda melhor:
Antes:
Avg: 249,24 msec
Stdev: 0,20 msec
Min: 248,96 msec
Max: 249,53 msec
Após:
Avg: 10,86 mseg
Stdev: 0,91 mseg
Min: 10,02 mseg
Max: 12,67 mseg
ou cerca de uma melhoria de 23x."
Os patches definidos para mesclagem no Linux 6.4 definem o suporte FMODE_NOWAIT para pipes, mas o desativam se estiver usando splice/vmsplice no pipe. Este pull request é o que está pendente agora para o suporte do canal FMODE_NOWAIT.
Fonte
Até a próxima !!
Nenhum comentário:
Postar um comentário