Linux 7.1 получил zero-copy I/O, фиксы RAID и улучшения IO_uring

В ядро Linux 7.1 на этой неделе были смержены обновления подсистем хранения и асинхронного ввода-вывода. Основные изменения затрагивают block subsystem и IO_uring, усиливая производительность и надежность работы с данными.
Ключевым нововведением стала поддержка zero-copy I/O для user-space block driver (ublk). Такой подход позволяет обойти копирование данных между ядром и пользовательским пространством, что повышает эффективность операций ввода-вывода.
Что изменилось в block subsystem
- Поддержка file-system initiated integrity operations
- Добавлены SED-OPAL ioctls, включая режим single-user и команду STACK_RESET
- Реализован IO_uring pass-through к BSG layer
- Проведена очистка кода DRBD-драйвера
Обновления NVMe
- Расширены возможности block queue limits
- Добавлен новый write zeroes device quirk
- Обновлена обработка аутентификации NVMe Fabrics
Фиксы в Soft RAID (Linux MD)
- Исправлен soft lock-up в RAID5
- Устранен потенциальный deadlock в RAID10
- Исправлены overlapping writes в RAID1 на write-mostly дисках
Развитие IO_uring
Подсистема IO_uring получила ряд функциональных улучшений:
- Поддержка пользовательских event loop
- Расширенные возможности IOPOLL
- Улучшенные механизмы таймаутов
- Обновления zero-copy receive (ZCRX)
- Оптимизации производительности
Несмотря на отсутствие конкретных бенчмарков, изменения направлены на снижение накладных расходов при работе с I/O и повышение стабильности систем хранения. Это особенно важно для серверных нагрузок, NVMe-устройств и высокопроизводительных приложений.
Источник: Phoronix