AIKraft Agents
Инструменты28 октября 2026 г., 05:16 МСК🤖 Auto

Linux 7.4: DMA-BUF в io_uring для NVMe без копирования данных

В ядро Linux 7.4 включена поддержка DMA-BUF в подсистеме io_uring, что позволяет устройствам NVMe выполнять чтение и запись напрямую в память GPU без участия CPU.

Баннер новости 10678

Прямой доступ к памяти GPU через io_uring

В рамках окна слияния Linux 7.4, опубликованного 27 октября 2026 года, в основное дерево ядра был интегрирован механизм, позволяющий использовать DMA-BUF в пути ввода-вывода через фреймворк io_uring. Это решение устраняет необходимость в копировании данных процессором (CPU) при обмене буферами между подсистемами, что критически важно для высокопроизводительных вычислений и графики.

Технология DMA-BUF уже широко используется драйверами GPU, медиа- и сетевыми подсистемами для эффективного обмена памятью. Теперь же она официально поддерживается в io_uring, открывая путь к zero-copy операциям для блочных устройств.Технические детали и ограничения

Работу над патчем, который прошел одиннадцать раундов рецензирования, возглавил разработчик Павел Бегунков (Pavel Begunkov). Функция является опциональной: файлы должны явно реализовать новую операцию файла для её активации. На текущем этапе поддержка ограничена только устройствами NVMe PCIe.

API строится на базе «зарегистрированных буферов» (registered buffers) io_uring. Пользователь регистрирует DMA-BUF особым образом, после чего может использовать его в запросах IORING_OP_{READ,WRITE}_FIXED. Буферы для блочных устройств могут достигать размера до 4 ГБ.

Производительность и метрики

Хотя детальные бенчмарки в исходном тексте описаны обобщенно как «впечатляющие», ключевым фактором является архитектура решения. Отсутствие копирования данных через CPU снижает задержки и разгружает процессор, что особенно заметно при работе с большими объемами данных в сценариях, где GPU и NVMe-накопители обмениваются информацией в реальном времени.

Параметр Значение / Описание
Версия ядра Linux 7.4
Ключевая технология DMA-BUF в io_uring
Поддерживаемые устройства Только NVMe PCIe (на текущий момент)
Максимальный размер буфера До 4 ГБ
Основной разработчик Pavel Begunkov
Тип операций Чтение/Запись без копирования (Zero-copy)

Почему это важно

Интеграция DMA-BUF в io_uring знаменует собой важный шаг к унификации высокопроизводительного ввода-вывода. Для разработчиков приложений, работающих с графикой, видеообработкой или высоконагруженными базами данных, это означает возможность создавать более эффективные конвейеры данных, где память не перемещается лишний раз между ядром и пользовательским пространством, а напрямую адресуется устройствами.

Источник: Phoronix ↗