Fundido no ano passado para o Linux O ciclo 5.16 foi a chamada de sistema futex_waitv() do FUTEX2 para aguardar vários futexes para melhor corresponder ao comportamento do Microsoft Windows. Esta iniciativa FUTEX2 foi conduzida como um esforço para melhorar ainda mais o desempenho/eficiência de jogos Linux, particularmente para o Steam Play da Valve. Originalmente, havia outros objetivos com o FUTEX2 e agora estamos vendo outro deles sendo trabalhado: conscientização do NUMA.

Para se tornar um mainline mais cedo, o FUTEX2 fez um simples empurrão inicial com futex_waitv e removeu alguns dos extras, como reconhecimento de NUMA e futexes de tamanho variável, dos planos de mesclagem iniciais. Mas nos meses desde que futex_waitv() foi mesclado e alguns ciclos de kernel desde então, não houve pressa para terminar os recursos restantes do FUTEX2.

Em julho, André Almeida, da Igalia, começou a analisar o gerenciamento de conscientização do NUMA para o FUTEX2 e, esta semana, apresentou-o na Linux Plumbers Conference. Essa consciência NUMA é para superar o defeito atual do FUTEX de que toda a tabela de hash de memória do espaço do kernel está dentro de um único nó de memória e levando a latência extra para cada operação do FUTEX que acontece fora do nó onde há a tabela de hash.

A adição proposta é poder adicionar uma dica NUMA se ela residir no nó atual, caso contrário pode especificar um nó específico.

Aqueles que desejam saber mais sobre o esforço de conscientização do NUMA para o FUTEX2 podem ver o apresentação de slides do LPC 2022 e/ou o LKML de julho delineando a mesma interface proposta.

Categories: IT Info