The OpenNET Project / Index page

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



"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

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

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=64783

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 12-Фев-26, 16:15   +/
> такие как FDO (Feedback Directed Optimization), LTO (Link Time Optimization) и PGO (Profile Guided Optimization)

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

Ответить | Правка | Наверх | Cообщить модератору

2. Сообщение от Аноним (2), 12-Фев-26, 16:17   –5 +/
WireGuard станет ещё быстрее!

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

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

Ответить | Правка | Наверх | Cообщить модератору

3. Сообщение от kravich (ok), 12-Фев-26, 16:19   +10 +/
Как приятно читать такие новости в наши темные времена десктопного софта на базе веб-технологий и нормализации практики вайбкодинга...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #8

4. Сообщение от Rev (ok), 12-Фев-26, 16:23   –1 +/
То есть до сих пор обработка была ЗАМЕДЛЕНА на 12%?

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #6, #29

6. Сообщение от Совершенно другой аноним (?), 12-Фев-26, 16:33   +3 +/
> А в Си нет директивы инлайнинга?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #14, #18, #26

7. Сообщение от Аноним (7), 12-Фев-26, 16:34   +/
Жаль только, что тспу очень агрятся на юдп. Но, что-нибудь обязательно будет придумано!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #9, #25, #34

8. Сообщение от Аноним (8), 12-Фев-26, 16:34   +1 +/
Тебе сейчас напишут, что им ИИшечка такие места сразу пишет правильно... а вот диды...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

9. Сообщение от 12yoexpert (ok), 12-Фев-26, 16:38   +/
у меня не агрятся, чяднт?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #11

10. Сообщение от timur.davletshin (ok), 12-Фев-26, 16:39   –1 +/
К пользовательским реализациям никакого отношения не имеет. Там ни разу ничего не упиралось в производительность timecounter_cyc2time().
Ответить | Правка | Наверх | Cообщить модератору

11. Сообщение от Аноним (7), 12-Фев-26, 16:40   +1 +/
Повезло с провайдером. Видимо ещё активное оборудование не шибко внедрили.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #13

12. Сообщение от Аноним (14), 12-Фев-26, 16:41   –5 +/
Миф "о невероятно оптимизированном дидовом коде" развеян.
В который раз))

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #17, #38

13. Сообщение от 12yoexpert (ok), 12-Фев-26, 16:43   +/
а модем мой пассивный, по-твоему? и как ты собрался внедрять какое-то оборудование ко мне в мобилку? у меня два провайдера, ни один мне ни о каких внедрениях не сообщал
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #15, #16

14. Сообщение от Аноним (14), 12-Фев-26, 16:45   –2 +/
Только сейчас.
До этого код был замедлен на 12%

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #22, #23

15. Сообщение от Аноним (7), 12-Фев-26, 16:47   +/
Я думал, что там у них есть два класса оборудования и стоит оно до Ваших модемов. Ну да ладно. Главное, что Вам нравится!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13

16. Сообщение от Аноним (16), 12-Фев-26, 16:48   +/
> и как ты собрался внедрять какое-то оборудование ко мне в мобилку?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #19

17. Сообщение от Аноним (17), 12-Фев-26, 16:52   +2 +/
а причем тут дидовый код, у вас ведь компиляхтор "луДше" код генерит.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

18. Сообщение от Вася Пупкин (?), 12-Фев-26, 16:53   –4 +/
почему это нельзя делать везде по умолчанию? как это сделано в расте
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #20

19. Сообщение от 12yoexpert (ok), 12-Фев-26, 16:55   +/
какой идиот будет даже заикаться о таком законе, и кому вообще нужны эти ваши тспу? это же цензура. засмеют и выгонят из правительства, если не посадят за шпионаж или измену. да и российское ПО никогда качеством не отличалось. есть хоть какие-то причины делать то, что написано у тебя в комментарии?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #35

20. Сообщение от Рулона Боева (?), 12-Фев-26, 17:00   +5 +/
Потому что инлайнинг функций — это всегда компромисс между экономией инструкций на ее вызов (условно убираем push/call/pop) и итоговым размером объектных файлов, так как тело функции будет дублироваться в каждой функции, которая вызывает встраиваемую.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #24

21. Сообщение от Аноним (21), 12-Фев-26, 17:03   +/
А ещё в linux 6.12.x ip6gre и ip6tnl сломали
Ответить | Правка | Наверх | Cообщить модератору

22. Сообщение от Я (??), 12-Фев-26, 17:05   +4 +/
Может, у них просто 100Гбит не было?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

23. Сообщение от localhostadmin (ok), 12-Фев-26, 17:11   +1 +/
> современные протоколы требуют учёта времени поступления пакета

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

24. Сообщение от ананим.orig (?), 12-Фев-26, 17:25   –1 +/
А если в коде будет ошибка, то она размножится соответствующее количество раз.
И пока её обнаружат фронт атак тоже увеличится.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #33

25. Сообщение от Аноним (25), 12-Фев-26, 17:34   +1 +/
> что-нибудь обязательно будет придумано!

Пройдемте.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #36

26. Сообщение от Rev (ok), 12-Фев-26, 17:36   +/
Не понял. Сейчас установлена? Но пишут же, что вручную заинлайнили. Я так это понял, что код функции перенесли туда, где он используется, избавившись от вызова функции.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #28

27. Сообщение от Cyber100 (ok), 12-Фев-26, 17:43   –1 +/
не могу сосчитать без логарифмической линейки и штангенциркуля == если у них на 100гб канале все увеличилось аж на 12%, значит, на 1 гб канале - это будет 1200% или наоборот 0,12%?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #30

28. Сообщение от Совершенно другой аноним (?), 12-Фев-26, 17:47   +/
> Не понял. Сейчас установлена? Но пишут же, что вручную заинлайнили. Я так
> это понял, что код функции перенесли туда, где он используется, избавившись
> от вызова функции.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

29. Сообщение от ___ (??), 12-Фев-26, 17:48    Скрыто ботом-модератором+1 +/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #32

30. Сообщение от 12yoexpert (ok), 12-Фев-26, 17:59   +2 +/
попробуй счёты
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

31. Сообщение от Аноним (31), 12-Фев-26, 18:00   +/
> В данной ситуации автоматические применяемые компилятором оптимизации, такие как FDO (Feedback Directed Optimization), LTO (Link Time Optimization) и PGO (Profile Guided Optimization), не смогли обнаружить горячий сегмент кода и проигнорировали его,

А Боромир.. А компилятор Rust'a сам бы всё заинлайинл!

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #39

32. Сообщение от Аноним (32), 12-Фев-26, 18:03   +/
https://speed.cloudflare.com
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29

33. Сообщение от анон (?), 12-Фев-26, 18:11   +/
> А если в коде будет ошибка, то она размножится соответствующее количество раз.
> И пока её обнаружат фронт атак тоже увеличится.

Чего-чего? Какой фронт, какое "размножится"? 🤦
Инлайн, это
замена "вызов_кода_с_ошибкой" на "копия кода с ошибкай", т.е. что совой о пень, что пнем о сову ...  

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24

34. Сообщение от Аноним (34), 12-Фев-26, 18:24   +/
да, хорошая новость, буст в  12% при обработке udp пакетов на тспу это прям приятно!

надо потесть, действительно ли есть прироста и если есть, то можно сказать что запилили новую фичу, для работы которой нужно ядро 7.0 и выше, и получить за это премию!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

35. Сообщение от Аноним (7), 12-Фев-26, 18:44   +/
Забористая у Вас!
Ну если по теме, есть к примеру множество нужных сервисов, которые спроектированы и хорошо работают именно с дейтаграммами. Котурн например. Но если Вам все нравится, значит Вам наверное это просто неинтересно.
Завидую!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19

36. Сообщение от Аноним (7), 12-Фев-26, 18:46    Скрыто ботом-модератором+1 +/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

37. Сообщение от Аноним83 (?), 12-Фев-26, 19:06   +/
> Отмечается, что функция timecounter_cyc2time() может вызываться на каждый входящий пакет, поскольку современные протоколы требуют учёта времени поступления пакета.

Кто не понял, поясню: они накостылили http/2 / quick, где им пришлось в юзерспейсе имплементировать cognestion control алгоритмы, для работы которых потребовалось включать опцию для записи времени получения пакета.
SO_TIMESTAMP / SO_TS_CLOCK / SO_TIMESTAMPNS.

До этого данная опция почти никогда не применялась при работе с UDP ибо нафиг не надо знать время когда пакет пришёл. В худьшем случае в event обработчике чтения в самом начале получали время и считали что все пакеты прочитанные за этот цикл приёма из сокета были получены в это время.

Иными словами:
1. Для обычных приложений от этой оптимизации толку 0.
2. Сами себе придумали проблему с quick (юзерспейс TCP) - сами преодолевают.

Ответить | Правка | Наверх | Cообщить модератору

38. Сообщение от Аноним83 (?), 12-Фев-26, 19:07   +1 +/
Дидам никогда не нужно было знать точное время получения UDP пакета, всё как то без этого прекрасно работало.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

39. Сообщение от Фамилия (?), 12-Фев-26, 19:15   +/
То есть, вы хотите сказать, что этот магический компилятор магически видит горячие сегменты кода и магически понимает, что тем людям, которые это дело компилируют надо именно заинлаинить этот кусок кода в угоду производительности на каком-то конкретном тесте? Просто вау. А почему же тогда никто и нигде про эти магические способности не говорит? Это же такая классная реклама! Компилятор, который генерит безопасный код, ещё и знает заранее всё то, что вы и сами ещё пока даже не знаете!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31

40. Сообщение от няш (?), 12-Фев-26, 19:20   +/
А какое отношение сетевой стек к ядру имеет, Пинус не может в архитектуру?
Ответить | Правка | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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