В Linux 6.8 уже реализованы патчи, ускоряющие TCP

Такс, талисман ядра Linux

Ядро Linux является основой операционных систем (ОС) Linux и основным интерфейсом между аппаратным обеспечением компьютера и его процессами.

Версия ядра Linux 6.7 был выпущен всего несколько недель назад (в начале января) и с тех пор Начаты работы по разработке Linux 6.8. и в настоящее время он уже находится на втором CR и до сих пор наблюдалось множество улучшений в различных областяхс упором на сети, основные протоколы, BPF, API-интерфейсы драйверов, поддержку нового оборудования и обновления драйверов.

Y среди наиболее важных изменений которые были обнародованы, один из них выделяется, и это то, что Реализованы улучшения, обусловленные стеком TCP. как приводит к существенному улучшению производительности, особенно в сценариях, включающих несколько параллельных TCP-соединений. Эти улучшения привели к ускорению, которое может достигать 40%.





La Оптимизация направлена ​​на реорганизацию полей в структурах сетевого стека, таких как Socks, netdev, netns и mibs. Эти изменения, внесенные по историческим причинам, позволили повысить эффективность управления кэшем процессора. В частности, было сведено к минимуму использование строк кэша при передаче данных и оптимизирован доступ к соответствующим переменным.





В настоящее время структуры со многими переменными в сетевом стеке организованы хронологически, логически, а иногда и с помощью доступа к строке кэша.

Эта серия патчей пытается реорганизовать основной сетевой стек, чтобы минимизировать потребление строк кэша на этапе передачи данных. В частности, мы рассмотрим стек TCP/IP и скорость TCP.

В результате этих обзоров Наблюдалось значительное увеличение скорости TCP, особенно когда речь идет об обработке большого количества одновременных TCP-соединений. Это улучшение особенно заметно в средах, где сетевые операции интенсивны и эффективное управление TCP-соединениями имеет решающее значение.

Из Другие изменения и улучшениякоторые выделяются:





  • Добавлен самоанализ на основе сетевых ссылок для выявления статистики использования и переработки памяти.
  • Рефакторинг обработки TCP SYN-Cookie для будущей совместимости с eBPF.
  • Уменьшены накладные расходы на анализ заголовка расширения в GRO.
  • Реорганизует элементы структуры nftables, чтобы сохранить данные, к которым осуществляется доступ по пути данных в начале.
  • Введена поддержка массового удаления записей моста MDB и мониторинга портов блокировки TC.
  • Улучшения средства проверки, включая логику ограничений ведения журнала BPF, улучшения ведения журнала и поддержку глобальных аргументов пользовательского апплета BPF.
  • Первоначальная реализация метаданных TX для AF_XDP с поддержкой драйверов mlx5 и stmmac.
  • Исправлены ошибки kCFI во всех формах непрямых вызовов BPF.
  • Поддержка параметров uid/gid при монтировании bpff и дополнительных расширений верификатора.
  • Автоматическое создание документации семейства Netlink на основе спецификаций YAML и дополнительные исправления в описаниях модулей.
  • Предотвращение некорректного освобождения страниц, принадлежащих пулу страниц.
  • Абстракции в Rust для сетевых PHY-драйверов и введение поддержки очередей и NAPI в интерфейсе netdev Netlink.
  • Фильтрация уведомлений для devlink и улучшения проверки PHY.
  • Предоставление значения дробного смещения частоты и преобразование старых обработчиков в обратные вызовы удаления платформы, которые возвращают void.
  • Добавлена ​​поддержка чтения/записи пакетов PHY MMD.
  • Добавлена ​​поддержка различных устройств Ethernet, включая устройства Octeon CN10K, Broadcom 5760X P7, Qualcomm SM8550 SoC и Texas Instrument DP83TG720S PHY.
  • Представление радио Bluetooth IMC Networks.
  • Обновления для высокоскоростных сетевых карт, встроенных сетевых карт, коммутаторов центров обработки данных, встроенных коммутаторов и физических физических устройств Ethernet.
  • Поддержка улучшений и дополнений для различных контроллеров Wi-Fi и Bluetooth.
  • Удаление различных драйверов Wi-Fi, включая драйверы libertas, Atmel at76c50x, HostAP, zd1201, Orinoco, Aviator/Raytheon, Planet WL3501 и USB 802.11b RNDIS.

наконец, если вы интересно узнать об этом больше, вы можете проверить подробности по следующей ссылке.




2024-01-30T08:35:35
GNU / Linux