FERRAMENTAS LINUX: O FUTEX2 começa a classificar o reconhecimento NUMA

quinta-feira, 14 de julho de 2022

O FUTEX2 começa a classificar o reconhecimento NUMA

 

Confira !!

Fundido no ano passado para o Linux 5.16 foi a chamada do sistema FUTEX2 para melhorar a interface FUTEX no Linux e com a motivação original para essas melhorias aguardarem vários futexes para que o Wine/Proton possa corresponder melhor ao comportamento do Microsoft Windows para uma experiência de jogo Linux mais otimizada. Além do benefício de desempenho/eficiência do FUTEX2, outras melhorias também foram comentadas enquanto estamos começando a ver ação em uma delas: a conscientização do NUMA.

O foco principal no trabalho original do FUTEX2 foi com "futex_waitv" para atender às necessidades do Wine/Proton combinando melhor o comportamento WaitForMultipleObjects do Windows com emulação mais eficiente. Voltando aos tempos de revisão do patch, outros recursos do FUTEX2 mencionados foram futexes de tamanho variável, reconhecimento de NUMA e outros aprimoramentos na interface original do FUTEX. Enviado hoje por André Almeida de Igalia foi um pedido de comentários sobre o aspecto de conscientização do NUMA para o FUTEX2.

André Almeida resumiu assim:

* O problema

futex tem uma única tabela de hash global para armazenar informações de waiters atuais a serem consultadas por wakers. Essa tabela de hash é armazenada em um único nó em máquinas não uniformes. Isso significa que um processo executado em outros nós terá algum overhead usando futex, já que precisará acessar a tabela em um nó diferente.

* Uma solução

Para máquinas NUMA, seria alocada uma tabela por nó. Os processos, então, seriam capazes de usar a tabela local para evitar o compartilhamento de dados com outros nós.

Almeida propôs uma interface para o FUTEX2 para lidar com esse aspecto de conscientização do NUMA. Atualmente ele está procurando comentários/feedback de desenvolvedores upstream sobre o design para ver se vale a pena seguir em frente.





Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário