FERRAMENTAS LINUX: O Google finalmente começa a sua dança de código aberto em torno da segmentação de espaço de usuário do Linux

quinta-feira, 23 de julho de 2020

O Google finalmente começa a sua dança de código aberto em torno da segmentação de espaço de usuário do Linux




Confira !!



Em 2013, houve uma apresentação na Linux Plumbers Conference sobre o trabalho do Google em threads no nível do usuário e como eles estavam trabalhando na nova funcionalidade do kernel para usar threads regulares de forma cooperativa e criar vários recursos a partir disso. Avançando hoje, essa funcionalidade está sendo usada internamente no Google para uma gama de serviços para serviços sensíveis à latência e maior controle sobre a programação do espaço do usuário. Agora, finalmente, em 2020, eles estão trabalhando para o código aberto desse trabalho.

Após uma solicitação inicial de comentários no final de junho, o Google enviou uma solicitação para que a nova funcionalidade "FUTEX_SWAP" seja inserida no Linux 5.9. Peter Oskolkov, do Google, explicou:
Esse conjunto de patches é o primeiro passo para a fonte aberta deste trabalho. Conforme explicado no pdf e no vídeo vinculados, a API SwitchTo tem três operações principais: espera, retomada e troca (= opção). Portanto, esse patchset adiciona uma operação FUTEX_SWAP que, além de FUTEX_WAIT e FUTEX_WAKE, fornecerá uma base sobre a qual as bibliotecas de encadeamento de espaço do usuário podem ser construídas.

Outro caso de uso comum para FUTEX_SWAP é a passagem de mensagens à la RPC entre tarefas: a tarefa / encadeamento T1 prepara uma mensagem, acorda T2 para trabalhar nela e aguarda os resultados; quando o T2 é concluído, ele ativa o T1 e aguarda a chegada de mais trabalho. Atualmente, a maneira mais simples de implementar isso é

a. T1: futex-wake T2, futex-wait
b. T2: acorda, faz o que foi acordado fazer
c. T2: futex-wake T1, futex-wait

Com o FUTEX_SWAP, as etapas a e c acima podem ser reduzidas a uma operação futex que é executada 5 a 10 vezes mais rápido.

Uma melhoria de velocidade de 5 a 10x com o FUTEX_SWAP certamente parece atraente, assim como as informações compartilhadas no LPC 2013 por meio do vídeo abaixo e dos slides em PDF .





Embora o FUTEX_SWAP possa ser homenageado no ciclo Kernel Linux 5.9, este é apenas o começo e provavelmente haverá mais alguns ciclos antes que todo esse trabalho do Google seja finalmente de código aberto e mainstream. Mais detalhes através desta série de patches .


Fonte

Até a próxima !

Nenhum comentário:

Postar um comentário