vak: (Default)
[personal profile] vak
Народ, кто-нибудь уже поимел опыт с <linux/io_uring.h>? Как оно по жизни?

Неожиданно для себя обнаружил, что в Линуксе пять лет назад появилась крутая фича. А именно три системных вызова, реализующих эффективный асинхронный интерфейс ко всем сервисам ядра.
  • int io_uring_setup(unsigned entries, struct io_uring_params *p);
  • int io_uring_enter(unsigned fd, unsigned to_submit, unsigned min_complete, unsigned flags, sigset_t *sig);
  • int io_uring_register(unsigned fd, unsigned opcode, void *arg, unsigned nr_args);
Революционная штука, как я погляжу. Может коренным образом изменить подход к разработке приложений. Только сложновато для программиста выходит. Есть статьи про это дело.

Date: 2025-02-19 05:12 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Опоздала идея лет на 30-40, когда дисководы головками медленно двигали. Тогда выигрыш был бы ещё более впечатляющим.

Date: 2025-02-19 07:09 (UTC)
lev: (Default)
From: [personal profile] lev
отлично, будем выполнять ио в кернеле.
радость хакерам.

Date: 2025-02-19 08:34 (UTC)
From: [personal profile] chabapok
если за 1 переключение контекста хочется обработать несколько событий, то нужно сначала некоторое время, чтобы эти события накопились. В течении этого времени событие, которое можно было бы обработать, лежит и ждет пока очередь заполнится, или таймаута.

Хм.

Наверное, это хорошо с точки зрения снижения энергопотребления, дипломатически выражаясь.

Но опять же - я не пробовал этот механизм. Это вот такое суждение навскидку. Может я и ерунду написал.

ап: кстати вот, есть же задачи, где высокая отзывчивость не на первом месте, и ей можно пожертвовать в ущерб производительности. Я таких задач вобщем-то не встречал, но они бывают.
Edited Date: 2025-02-19 08:51 (UTC)

Date: 2025-02-19 10:50 (UTC)
From: [personal profile] ichthuss
Интересно, как именно єта штука дружит с многопоточностью. Обрабатівать данніе в одном вісокопроизводительном треде - єто, разумеется, круто, но может біть недостаточно.

Date: 2025-02-19 13:13 (UTC)
From: [personal profile] dedekha
Все это очень хорошо и действительно решает проблемы однако очень быстро ведет к сложным fsm. A по моим ненаучным но долгосрочным наблюдениям сложные fsm недоступны среднему программисту. Интересно может ли помочь ИИ?

Date: 2025-02-19 19:50 (UTC)
From: [personal profile] sassa_nf
epoll done right, and support for arbitrary fd, not just network sockets.