URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 139219
[ Назад ]

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

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

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


Содержание

Сообщения в этом обсуждении
"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Аноним , 12-Фев-26 16:15 
> такие как FDO (Feedback Directed Optimization), LTO (Link Time Optimization) и PGO (Profile Guided Optimization)

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


"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Аноним , 12-Фев-26 16:17 
WireGuard станет ещё быстрее!

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

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


"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Bnm , 12-Фев-26 19:35 
Наверно улучшится, если сервер на линуксе будет отдавать сайты быстрее

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено kravich , 12-Фев-26 16:19 
Как приятно читать такие новости в наши темные времена десктопного софта на базе веб-технологий и нормализации практики вайбкодинга...

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Аноним , 12-Фев-26 16:34 
Тебе сейчас напишут, что им ИИшечка такие места сразу пишет правильно... а вот диды...

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Rev , 12-Фев-26 16:23 
То есть до сих пор обработка была ЗАМЕДЛЕНА на 12%?

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


"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Совершенно другой аноним , 12-Фев-26 16:33 
> А в Си нет директивы инлайнинга?

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


"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Аноним , 12-Фев-26 16:45 
Только сейчас.
До этого код был замедлен на 12%

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


"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Я , 12-Фев-26 17:05 
Может, у них просто 100Гбит не было?

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено localhostadmin , 12-Фев-26 17:11 
> современные протоколы требуют учёта времени поступления пакета

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


"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Вася Пупкин , 12-Фев-26 16:53 
почему это нельзя делать везде по умолчанию? как это сделано в расте

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Рулона Боева , 12-Фев-26 17:00 
Потому что инлайнинг функций — это всегда компромисс между экономией инструкций на ее вызов (условно убираем push/call/pop) и итоговым размером объектных файлов, так как тело функции будет дублироваться в каждой функции, которая вызывает встраиваемую.

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено ананим.orig , 12-Фев-26 17:25 
А если в коде будет ошибка, то она размножится соответствующее количество раз.
И пока её обнаружат фронт атак тоже увеличится.

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено анон , 12-Фев-26 18:11 
> А если в коде будет ошибка, то она размножится соответствующее количество раз.
> И пока её обнаружат фронт атак тоже увеличится.

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


"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Rev , 12-Фев-26 17:36 
Не понял. Сейчас установлена? Но пишут же, что вручную заинлайнили. Я так это понял, что код функции перенесли туда, где он используется, избавившись от вызова функции.

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Совершенно другой аноним , 12-Фев-26 17:47 
> Не понял. Сейчас установлена? Но пишут же, что вручную заинлайнили. Я так
> это понял, что код функции перенесли туда, где он используется, избавившись
> от вызова функции.

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


"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено ___ , 12-Фев-26 17:48 
в сетях 100 мбит и процент замедления скорее всего был гораздо меньше, так как частота пакетов была меньше

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Аноним , 12-Фев-26 18:03 
https://speed.cloudflare.com

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Аноним , 12-Фев-26 16:34 
Жаль только, что тспу очень агрятся на юдп. Но, что-нибудь обязательно будет придумано!

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено 12yoexpert , 12-Фев-26 16:38 
у меня не агрятся, чяднт?

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Аноним , 12-Фев-26 16:40 
Повезло с провайдером. Видимо ещё активное оборудование не шибко внедрили.

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено 12yoexpert , 12-Фев-26 16:43 
а модем мой пассивный, по-твоему? и как ты собрался внедрять какое-то оборудование ко мне в мобилку? у меня два провайдера, ни один мне ни о каких внедрениях не сообщал

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Аноним , 12-Фев-26 16:47 
Я думал, что там у них есть два класса оборудования и стоит оно до Ваших модемов. Ну да ладно. Главное, что Вам нравится!

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Аноним , 12-Фев-26 16:48 
> и как ты собрался внедрять какое-то оборудование ко мне в мобилку?

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


"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено 12yoexpert , 12-Фев-26 16:55 
какой идиот будет даже заикаться о таком законе, и кому вообще нужны эти ваши тспу? это же цензура. засмеют и выгонят из правительства, если не посадят за шпионаж или измену. да и российское ПО никогда качеством не отличалось. есть хоть какие-то причины делать то, что написано у тебя в комментарии?

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Аноним , 12-Фев-26 18:44 
Забористая у Вас!
Ну если по теме, есть к примеру множество нужных сервисов, которые спроектированы и хорошо работают именно с дейтаграммами. Котурн например. Но если Вам все нравится, значит Вам наверное это просто неинтересно.
Завидую!

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Аноним , 12-Фев-26 19:39 
https://www.consultant.ru/legalnews/29310/


"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Аноним , 12-Фев-26 17:34 
> что-нибудь обязательно будет придумано!

Пройдемте.


"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Аноним , 12-Фев-26 18:46 
Только после Вас:)

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Аноним , 12-Фев-26 18:24 
да, хорошая новость, буст в  12% при обработке udp пакетов на тспу это прям приятно!

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


"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено timur.davletshin , 12-Фев-26 16:39 
К пользовательским реализациям никакого отношения не имеет. Там ни разу ничего не упиралось в производительность timecounter_cyc2time().

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Аноним , 12-Фев-26 16:41 
Миф "о невероятно оптимизированном дидовом коде" развеян.
В который раз))

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


"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Аноним , 12-Фев-26 16:52 
а причем тут дидовый код, у вас ведь компиляхтор "луДше" код генерит.

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Аноним83 , 12-Фев-26 19:07 
Дидам никогда не нужно было знать точное время получения UDP пакета, всё как то без этого прекрасно работало.

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Аноним , 12-Фев-26 17:03 
А ещё в linux 6.12.x ip6gre и ip6tnl сломали

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Cyber100 , 12-Фев-26 17:43 
не могу сосчитать без логарифмической линейки и штангенциркуля == если у них на 100гб канале все увеличилось аж на 12%, значит, на 1 гб канале - это будет 1200% или наоборот 0,12%?

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено 12yoexpert , 12-Фев-26 17:59 
попробуй счёты

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

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


"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Фамилия , 12-Фев-26 19:15 
То есть, вы хотите сказать, что этот магический компилятор магически видит горячие сегменты кода и магически понимает, что тем людям, которые это дело компилируют надо именно заинлаинить этот кусок кода в угоду производительности на каком-то конкретном тесте? Просто вау. А почему же тогда никто и нигде про эти магические способности не говорит? Это же такая классная реклама! Компилятор, который генерит безопасный код, ещё и знает заранее всё то, что вы и сами ещё пока даже не знаете!

"В ядре Linux на 12% ускорена обработка входящих UDP-пакетов"
Отправлено Аноним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) - сами преодолевают.