FERRAMENTAS LINUX: O ZFS no Linux descobriu uma maneira de restaurar o suporte ao SIMD no kernel Linux 5.0+

quinta-feira, 18 de julho de 2019

O ZFS no Linux descobriu uma maneira de restaurar o suporte ao SIMD no kernel Linux 5.0+



Confira !!



Aqueles que rodam o ZFS On Linux (ZoL) em versões LTS posteriores ao 5.0 (e anteriores ao 5.0) viram grandes sucessos no desempenho de criptografia do ZFS em particular. Isso ocorreu devido ao upstream quebrar uma interface usada pelo ZFS no Linux e, reconhecidamente, não se importar com o ZoL, por ser um usuário fora da árvore. Mas agora vários lançamentos de kernel depois, uma solução alternativa foi inventada.

Algumas distribuições do Linux recorreram à reversão do patch do kernel que parou de exportar as funções de início / restauração do FPU do kernel usadas pelo ZoL para tocar em algoritmos baseados em vetor (SSE / AVX). Mas agora o próprio ZFS On Linux descobriu uma solução para restaurar o referido suporte ao SIMD nessas versões recentes do kernel.

Com este envio do ZoL Na semana passada, a compatibilidade do SIMD deveria estar funcionando agora nos kernels recentes e, assim, restaurar o melhor desempenho.
Restaure a otimização do SIMD para 4.19.38 LTS, 4.14.120 LTS e 5.0 e kernels mais recentes. Isso é realizado aproveitando o fato de que, por definição, os encadeamentos dedicados do kernel nunca precisam se preocupar em salvar e restaurar o estado do FPU do usuário. Portanto, eles podem usar o FPU desde que possamos garantir que as tarefas do usuário sempre restaurem seu estado de FPU antes que o contexto retorne ao espaço do usuário. 
Para os kernels Linux 5.0 e 5.1, a desativação da preempção e as interrupções locais são suficientes para permitir o uso da FPU. Todos os threads não kernel restaurarão o estado FPU do usuário preservado. 
Para o kernel Linux 5.2 e os últimos kernels, a restauração do estado do FPU do usuário será ignorada se o kernel determinar que os registros não foram alterados. Portanto, para esses kernels, precisamos executar a etapa adicional de salvar e restaurar os registros da FPU. A invalidação do rastreamento global per-cpu do estado do FPU forçaria uma restauração, mas essa funcionalidade é privada para a implementação do FPU x86 principal e não está disponível. 
Na prática, restringir o SIMD aos encadeamentos do kernel não é uma restrição importante para o ZFS. A grande maioria das operações do SIMD já é executada pelo pipeline de IO. Os casos restantes são relativamente pouco frequentes e podem ser manipulados pelo código genérico sem impacto significativo.

Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário