FERRAMENTAS LINUX: Os Patches "RFC" do Maple Tree são enviados como uma nova estrutura de dados para ajudar no desempenho do Linux

sábado, 12 de dezembro de 2020

Os Patches "RFC" do Maple Tree são enviados como uma nova estrutura de dados para ajudar no desempenho do Linux

 

Confira !!

Durante o ano passado houve um trabalho na nova estrutura de dados "Maple Tree" liderada pela Oracle para o kernel Linux e esta semana marcou o envio de patches no formulário de "solicitação de comentários" (RFC) com o objetivo ainda de ajudar o desempenho do kernel.

O Maple Tree equivale a uma estrutura de dados que funciona bem em CPUs modernas e de maneira segura por RCU para armazenar faixas de índice que mapeiam para um único ponteiro. Liam Howlett, da Oracle, resume a estrutura de dados do Maple Tree como "uma árvore B baseada em intervalo RCU-safe, projetada para usar o cache do processador moderno com eficiência. Há vários lugares no kernel em que uma árvore baseada em intervalos não sobreposta seria benéfica, especialmente uma com uma interface simples. O primeiro usuário coberto neste conjunto de patches é o vm_area_struct rbtree no mm_struct com o objetivo de longo prazo de reduzir a contenção do mmap_sem. A árvore tem um fator de ramificação de 10 para nós não-folha e 16 para nós folha. Com o aumento do fator de ramificação, ele é significativamente menor do que o rbtree, por isso tem menos perdas de cache. "

Este código ainda é um trabalho em andamento com algumas regressões conhecidas e ainda não oferece suporte a compilações de kernel de 32 bits ou MMU. Mas mesmo do jeito que está agora, há benchmarks de escala onde o uso do Maple Tree pode ajudar em 1 ~ 17% ou no micro-benchmark malloc1-threads onde pode ajudar o desempenho em 29 ~ 71%.

Portanto, o desempenho parece bom até agora para o Maple Tree e quanto ao plano geral, Liam explicou: " O objetivo de longo prazo da árvore de bordo é reduzir a contenção de mmap_sem removendo usuários que causam contenção um por um. Isso pode levar ao bloqueio sendo completamente removido em algum ponto. O objetivo secundário é fornecer ao kernel uma árvore RCU rápida com uma interface simples e limpar o código mm removendo a integração da árvore dentro do código e das próprias estruturas. "

Os detalhes sobre a implementação do Maple Tree na forma atual podem ser vistos na série de patches RFC .

De LPC2019 também está esta apresentação (PDF) de Howlett repassando o estado do Maple Tree naquele ponto inicial. Há também uma apresentação do Maple Tree do ano passado por Matthew Wilcox que está incorporada abaixo do OSS NA 19.


Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário