У 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, щоб зберегти дані, до яких звертається datapath на початку.
  • Додано підтримку масового видалення записів мосту MDB і моніторинг портів блокування TC.
  • Покращення верифікатора, включаючи логіку обмежень журналювання BPF, покращення журналювання та підтримку глобальних аргументів аплету користувача BPF.
  • Початкова реалізація метаданих TX для AF_XDP із підтримкою в драйверах mlx5 і stmmac.
  • Виправлені помилки kCFI у всіх формах непрямих викликів BPF.
  • Підтримка параметрів uid/gid під час монтування bpffs і додаткових розширень для верифікатора.
  • Автоматична генерація документації сімейства 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.
  • Представлення радіо IMC Networks Bluetooth.
  • Оновлення для високошвидкісних NIC, вбудованих NIC, комутаторів центрів обробки даних, вбудованих комутаторів і Ethernet PHY.
  • Підтримка покращень і доповнень для різних контролерів WiFi і Bluetooth.
  • Видалення різних драйверів Wi-Fi, включаючи драйвери libertas, Atmel at76c50x, HostAP, zd1201, Orinoco, Aviator/Raytheon, Planet WL3501 і USB 802.11b RNDIS.

нарешті, якщо ти є цікаво дізнатися про це більше, Ви можете перевірити подробиці за наступним посиланням.