В ядро Linux 6.15 приняты значительные оптимизации сетевой подсистемы и ExFAT

В состав кодовой базы ядра Linux, на основе которой формируется выпуск 6.15, принят набор изменений с оптимизациями, в ряде ситуаций значительно повышающих производительность сетевых операций:

  • Оптимизация GRO (Generic Receive Offload), объединяющая нескольких мелких пакетов в один большой, теперь задействована при переключении обработки пакета на другой CPU (для балансировки нагрузки) при использовании подсистемы XDP (eXpress Data Path), позволяющей обрабатывать пакеты на уровне сетевого драйвера на стадии до их передачи сетевому стеку. Прирост производительности обработки TCP-потоков от применения оптимизации может достигать двух раз.
  • В условиях сильной нагрузки производительность функции connect() повышена до двух раз за счёт замены spin-блокировки на механизм синхронизации RCU (Read-Copy-Update) при поиске записей с информацией о сторонах соединения (исходные и целевые IP-адреса и порты). Дополнительно проведена оптимизация хэширования, обеспечившая прирост производительности ещё на 229%.
  • Ускорена реализация MPTCP (Multipath TCP), расширения протокола TCP для организации доставки пакетов одновременно по нескольким маршрутам через разные сетевые интерфейсы, привязанные к разным IP-адресам. MPTCP в режиме с одним потоком ускорен на 29%.
  • В netfilter при наличии сокета прекращено выполнение операций поиска маршрутов в FIB (Forwarding Information Base). Благодаря данной оптимизации производительность возросла на 20%.
  • Производительность UDP в условиях флуда (flood) увеличена на 10%, за счет исключения лишних операций со структурой sk_tsflags при получении пакетов.

Кроме того, в находящееся в разработке ядро Linux 6.15 принято изменение для драйвера файловой системы exFAT, ускоряющее операции удаление файлов. Ранее драйвер exFAT по отдельности посылал накопителям запросы “discard” на каждый освобождаемый кластер удаляемого файла. Оптимизированная версия группирует запросы, в результате чего время удаления тестового файла, размером 80Гб, сократилось с 286 секунд до 1.6 секунды.

Release. Ссылка here.