The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

В ядре Linux на 12% ускорена обработка входящих UDP-пакетов

12.02.2026 15:32 (MSK)

В кодовую базу, на основе которой формируется ядро Linux 7.0, принят набор изменений, при проведении стресс-тестирования в 100-гигабитной сети позволивших повысить производительность обработки входящих UDP-пакетов на 12%. Оптимизация реализована путём ручного инлайнинга 2 функций. Отмечается, что функция timecounter_cyc2time() может вызываться на каждый входящий пакет, поскольку современные протоколы требуют учёта времени поступления пакета. Из-за этого на нагруженном сервере функция timecounter_cyc2time() может вызываться более 100 млн раз в секунду.

В данной ситуации автоматические применяемые компилятором оптимизации, такие как FDO (Feedback Directed Optimization), LTO (Link Time Optimization) и PGO (Profile Guided Optimization), не смогли обнаружить горячий сегмент кода и проигнорировали его, судя по всему из-за того, что драйверы сетевых карт поставляются в форме отдельных модулей. Однако ручное inline-развёртывание функции дало значительный выигрыш в производительности.

  1. Главная ссылка к новости (https://www.phoronix.com/news/...)
  2. OpenNews: Атака на некоторые протоколы на основе UDP, приводящая к зацикливанию обмена пакетами
  3. OpenNews: В ядро Linux 6.15 приняты значительные оптимизации сетевой подсистемы и exFAT
Автор новости: Аноним
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64783-udp
Ключевые слова: udp, optimization
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (26) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 16:15, 12/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > такие как FDO (Feedback Directed Optimization), LTO (Link Time Optimization) и PGO (Profile Guided Optimization)

    А разве PGO и FDO это не одно и то же?

     
  • 1.2, Аноним (2), 16:17, 12/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    WireGuard станет ещё быстрее!

    >при проведении стресс-тестирования в 100-гигабитной сети

    Ой, мимо. В реальном тырнетике не станет.

     
  • 1.3, kravich (ok), 16:19, 12/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Как приятно читать такие новости в наши темные времена десктопного софта на базе веб-технологий и нормализации практики вайбкодинга...
     
     
  • 2.8, Аноним (8), 16:34, 12/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Тебе сейчас напишут, что им ИИшечка такие места сразу пишет правильно... а вот диды...
     

  • 1.4, Rev (ok), 16:23, 12/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    То есть до сих пор обработка была ЗАМЕДЛЕНА на 12%?

    А в Си нет директивы инлайнинга?

     
     
  • 2.6, Совершенно другой аноним (?), 16:33, 12/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А в Си нет директивы инлайнинга?

    для соответствующих функций она и была установлена.

     
     
  • 3.14, Аноним (14), 16:45, 12/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Только сейчас.
    До этого код был замедлен на 12%

    Возможно программистам-предшественникам было просто класть на производительность.

     
     
  • 4.22, Я (??), 17:05, 12/02/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Может, у них просто 100Гбит не было?
     
  • 4.23, localhostadmin (ok), 17:11, 12/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > современные протоколы требуют учёта времени поступления пакета

    Тогда это не имело смысла

     
  • 3.18, Вася Пупкин (?), 16:53, 12/02/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    почему это нельзя делать везде по умолчанию? как это сделано в расте
     
     
  • 4.20, Рулона Боева (?), 17:00, 12/02/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Потому что инлайнинг функций — это всегда компромисс между экономией инструкций на ее вызов (условно убираем push/call/pop) и итоговым размером объектных файлов, так как тело функции будет дублироваться в каждой функции, которая вызывает встраиваемую.
     
     
  • 5.24, ананим.orig (?), 17:25, 12/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А если в коде будет ошибка, то она размножится соответствующее количество раз.
    И пока её обнаружат фронт атак тоже увеличится.
     
  • 3.26, Rev (ok), 17:36, 12/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Не понял. Сейчас установлена? Но пишут же, что вручную заинлайнили. Я так это понял, что код функции перенесли туда, где он используется, избавившись от вызова функции.
     
     
  • 4.28, Совершенно другой аноним (?), 17:47, 12/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Не понял. Сейчас установлена? Но пишут же, что вручную заинлайнили. Я так
    > это понял, что код функции перенесли туда, где он используется, избавившись
    > от вызова функции.

    посмотрите patch, ссылка на него есть в тексте новости. Если по-простому, то функции перенесли из файла *.c в файл *.h и дописали static inline.

     
  • 2.29, ___ (??), 17:48, 12/02/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.7, Аноним (7), 16:34, 12/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Жаль только, что тспу очень агрятся на юдп. Но, что-нибудь обязательно будет придумано!
     
     
  • 2.9, 12yoexpert (ok), 16:38, 12/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    у меня не агрятся, чяднт?
     
     
  • 3.11, Аноним (7), 16:40, 12/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Повезло с провайдером. Видимо ещё активное оборудование не шибко внедрили.
     
     
  • 4.13, 12yoexpert (ok), 16:43, 12/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    а модем мой пассивный, по-твоему? и как ты собрался внедрять какое-то оборудование ко мне в мобилку? у меня два провайдера, ни один мне ни о каких внедрениях не сообщал
     
     
  • 5.15, Аноним (7), 16:47, 12/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Я думал, что там у них есть два класса оборудования и стоит оно до Ваших модемов. Ну да ладно. Главное, что Вам нравится!
     
  • 5.16, Аноним (16), 16:48, 12/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > и как ты собрался внедрять какое-то оборудование ко мне в мобилку?

    Легко. Одним законом о предустановке российского ПО. Если тспу понадобятся сразу на уровне каждого смартфона.

     
     
  • 6.19, 12yoexpert (ok), 16:55, 12/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    какой идиот будет даже заикаться о таком законе, и кому вообще нужны эти ваши тспу? это же цензура. засмеют и выгонят из правительства, если не посадят за шпионаж или измену. да и российское ПО никогда качеством не отличалось. есть хоть какие-то причины делать то, что написано у тебя в комментарии?
     
  • 2.25, Аноним (25), 17:34, 12/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > что-нибудь обязательно будет придумано!

    Пройдемте.

     

  • 1.10, timur.davletshin (ok), 16:39, 12/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    К пользовательским реализациям никакого отношения не имеет. Там ни разу ничего не упиралось в производительность timecounter_cyc2time().
     
  • 1.12, Аноним (14), 16:41, 12/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Миф "о невероятно оптимизированном дидовом коде" развеян.
    В который раз))

    Кто бы мог подумать, что аффторы оригинального кода не знали о возможности инлайна.

     
     
  • 2.17, Аноним (17), 16:52, 12/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а причем тут дидовый код, у вас ведь компиляхтор "луДше" код генерит.
     

  • 1.21, Аноним (21), 17:03, 12/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А ещё в linux 6.12.x ip6gre и ip6tnl сломали
     
  • 1.27, Cyber100 (ok), 17:43, 12/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    не могу сосчитать без логарифмической линейки и штангенциркуля == если у них на 100гб канале все увеличилось аж на 12%, значит, на 1 гб канале - это будет 1200% или наоборот 0,12%?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру