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.
Até a próxima !!
Nenhum comentário:
Postar um comentário