Вышел 21-строчный патч для ядра Linux, ускоряющий прохождение теста per_thread_ops на 2.6%

В конце октября 2024 года разработчик Джош Пуамбёф (Josh Poimboeuf) из компании Red Hat опубликовал 21-строчный патч для ядра Linux, ускоряющий прохождение теста per_thread_ops на 2.6%, оценивающего число операций, которые могут быть выполнены в одном потоке.

В патче используется маскирование указателей для снижения числа медленных вызовов barrier_nospec() в 64-битной функции copy_from_user(), применяемой для копирования данных в ядро из пространства пользователя.

Линус Торвальдс перенёс данную оптимизацию в состав Linux 6.12-rc6.

«Barrior_nospec() в 64-битной функции copy_from_user() работает медленно. Вместо этого используйте pointer masking, чтобы заставить user pointer установить все единицы для недопустимого адреса. Kernel test robot сообщает об улучшении на 2,6% в тесте per_thread_ops», — уточнил Торвальдс.

Ранее вышел патч для новой версии ядра Linux 6.13 со значительной оптимизацией реализации алгоритма нахождения контрольной суммы CRC32C. Исходный код реализации CRC32C уменьшен примерно в 10 раз (с 4546 до 418 байт). При выключенной защите retpoline от атак класса Spectre прирост производительности при использовании новой реализации алгоритма CRC32C достигает 11.8% на процессорах AMD Zen 2, 6.4% — Intel Emerald Rapids и 4.8% Intel Haswell. При включении retpoline прирост производительности более заметен и достигает 66.8% на системах с процессорами Intel Emerald Rapids, 35.0% — Intel Haswell и 29.5% — AMD Zen 2.

Источник: habr.com

0 0 голоса
Рейтинг новости
3322
0
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии