No Linux 6.8, patches que aceleram o TCP já foram implementados

Tux, o mascote do Kernel Linux

O kernel do Linux é a espinha dorsal dos sistemas operacionais (SO) Linux e é a interface fundamental entre o hardware de um computador e seus processos.

A versão do kernel do Linux 6.7 foi lançado há apenas algumas semanas (no início de janeiro) e desde então O trabalho no desenvolvimento do Linux 6.8 foi lançado e atualmente ele já está em seu segundo CR e até agora, houve uma variedade de melhorias em diferentes áreas, com foco em redes, protocolos principais, BPF, APIs de driver, suporte para novo hardware e atualizações de driver.

Y entre as mudanças mais importantes que foram divulgados, um deles se destaca e é aquele As melhorias impulsionadas pela pilha TCP foram implementadas, como resulta em melhorias substanciais no desempenho, especialmente em cenários que envolvem múltiplas conexões TCP paralelas. Essas melhorias levaram a uma aceleração que pode chegar a 40%.

La Otimização focada na reorganização dos campos dentro de estruturas de pilha de rede, como meias, netdev, netns e mibs. Esses ajustes, implementados por motivos históricos, permitiram maior eficiência no gerenciamento do cache do processador. Em particular, a utilização de linhas de cache durante a transferência de dados foi minimizada e o acesso a variáveis ​​relevantes foi otimizado.

Atualmente, estruturas com muitas variáveis ​​na pilha de rede são organizadas cronologicamente, logicamente e, às vezes, por linha de acesso ao cache.

Esta série de patches tenta reorganizar a pilha principal da rede para minimizar o consumo da linha de cache durante a fase de transferência de dados. Especificamente, examinamos a pilha TCP/IP e a velocidade do TCP.

Como resultado dessas revisões, Um aumento significativo na velocidade do TCP foi observado, especialmente quando se trata de lidar com um grande número de conexões TCP simultâneas. Esta melhoria é especialmente notável em ambientes onde as operações de rede são intensivas e o gerenciamento eficiente das conexões TCP é crucial.

Do Outras mudanças e melhoriaseu se destaque:

  • Adicionada introspecção baseada em netlink para expor estatísticas de uso de memória e reciclagem.
  • Refatorando o tratamento de SYN-Cookie TCP para compatibilidade futura com eBPF.
  • Redução da sobrecarga de análise do cabeçalho de extensão no GRO.
  • Reorganiza os membros da estrutura nftables para manter os dados acessados ​​pelo datapath no início.
  • Introduzido suporte para exclusão em massa de entradas de ponte MDB e monitoramento de portas de bloqueio de TC.
  • Melhorias no verificador, incluindo lógica de limites de registro do BPF, melhorias no registro e suporte para argumentos globais do miniaplicativo do usuário do BPF.
  • Implementação inicial de metadados TX para AF_XDP com suporte em drivers mlx5 e stmmac.
  • Corrigidos bugs de kCFI em todas as formas de chamadas indiretas de BPF.
  • Suporte para opções uid/gid ao montar bpffs e extensões adicionais no verificador.
  • Geração automática de documentação da família Netlink a partir de especificações YAML e correções adicionais nas descrições dos módulos.
  • Prevenção de liberação incorreta de páginas pertencentes a um pool de páginas.
  • Abstrações em Rust para drivers de rede PHY e introdução de enfileiramento e suporte NAPI na interface netdev Netlink.
  • Filtragem de notificações para devlink e melhorias na validação PHY.
  • Expondo o valor de deslocamento de frequência fracionária e convertendo manipuladores antigos em retornos de chamada de remoção de plataforma que retornam nulos.
  • Adicionado suporte para leitura/gravação de pacotes PHY MMD.
  • Adicionado suporte para vários dispositivos Ethernet, incluindo dispositivos Octeon CN10K, Broadcom 5760X P7, Qualcomm SM8550 SoC e Texas Instrument DP83TG720S PHY.
  • Introdução do rádio Bluetooth da IMC Networks.
  • Atualizações para NICs de alta velocidade, NICs incorporadas, switches de data center, switches incorporados e Ethernet PHYs.
  • Melhorias e adições de suporte para vários controladores WiFi e Bluetooth.
  • Remoção de vários drivers WiFi, incluindo libertas, Atmel at76c50x, HostAP, zd1201, Orinoco, Aviator/Raytheon, Planet WL3501 e drivers USB 802.11b RNDIS.

finalmente se você está interessado em saber mais sobre isso, você pode verificar o detalhes no link a seguir.