Linux Kernel 7.0 получава оптимизация на бързодействието, особено видима при AMD Zen 2

0
22
Linxu Kernel ядро

В ядрото на Linux беше приета нова оптимизация за подсистемата epoll, който е ключов компонент за ефективно управление на входно‑изходни операции. Промяната е част от подготовката за Linux Kernel 7.0 и цели да намали изчислителните разходи при работа с файлови дескриптори.

Автор на оптимизацията е Ерик Дюмазе от Google, който от години допринася с подобрения в мрежовия стек на Linux. Той адаптира функцията epoll_put_uevent() към механизма за „scoped user access“, която е сравнително нова функционалност, появила се в ядрото с версия 6.19. Този подход позволява да се избегнат две отделни извиквания на функции и един stac/clac цикъл, който е особено тежък за по-старите процесори.

Резултатите от тестовете са показателни: при синтетично мрежово натоварване на AMD Zen 2 се наблюдава около 1.5% увеличение на обработените пакети в секунда. Макар стойността да изглежда скромна, тя е постигната с минимална промяна в кода и няма никакви странични недостатъци.

Кой ще усети подобрението

Оптимизацията не е специфична за Zen 2, но именно по-старите поколения процесори печелят най-много, тъй като при тях разходът от speculation barrier инструкциите е по-висок. Това означава, че:

  • Zen 2 и по-старите AMD архитектури вероятно ще видят най-осезаем ефект.
  • По-новите поколения процесори също могат да се възползват, макар и в по-малка степен.
  • Сървърни среди с голям мрежов трафик ще усетят подобрението най-бързо.

Пачът вече е част от основното дърво на ядрото и ще бъде включен в Linux Kernel 7.0‑rc3. Това е поредният пример как малки, добре насочени промени могат да донесат реални ползи за производителността, без да усложняват кода.

Прочетете още:  Linux Kernel 7.0 идва с подобрения при Rust + LTO ядрени билдове