Linux 6.14: ядро для игр, ИИ и серверов – обзор в духе DevOps

Линус Торвальдс объявил релиз ядра Linux 6.14. В выпуске заметны вещи, которые касаются игровых сессий через Wine/Proton, ML на GPU/NPU и повседневной админки: Btrfs, FUSE, cgroup, Device Mapper. Ниже сжатый обзор с уклоном в то, что реально трогает десктоп и сервер.

Цифры релиза

  • Исправлений: 12 115 от почти 2 тысяч разработчиков;
  • Размер патча: около 39 МБ (порядка 531 тыс. строк добавлено, 236 тыс. удалено);
  • Распределение: драйверы ~41%, сетевой стек ~14%, архитектуры ~13%, файловые системы ~7%, внутренние подсистемы ~4%.

Объём меньше, чем в 6.13, но набор фич плотный: синхронизация NT, политики чтения Btrfs RAID1, dmem cgroup, FUSE поверх io_uring.

Ключевые изменения

1. ntsync: синхронизация Windows NT в ядре

Драйвер ntsync даёт символьное устройство /dev/ntsync и примитивы синхронизации в стиле Windows NT. Для Wine/Proton это снижает накладные расходы, которые раньше уходили в RPC в userspace. На практике более предсказуемая производительность Windows-игр на Linux без переписывания всего Wine-стека.

2. Btrfs RAID1: политики чтения

Для RAID1 в Btrfs появились режимы балансировки чтения (раньше в основном pid):

  • rotation равномерно по дискам (часто по умолчанию);
  • latency с учётом задержек (полезно при деградации диска);
  • devid ручное управление.

Переключение: /sys/fs/btrfs/<UUID>/read_policy. Имеет смысл на хранилищах, где read path критичен, и на стендах, где сравнивают диски разной «живости».

3. dmem cgroup: память устройств (GPU)

Контроллер dmem в cgroup учитывает области памяти устройств (в т.ч. GPU) отдельно. Это помогает не смешивать лимиты GPU-нагрузки с обычной RAM и снижает риск жёстких обрывов при исчерпании device memory. Актуально для ML-джоб, shared GPU-нод и контейнерных платформ, где GPU уже не «общий безлимит».

4. FUSE + io_uring

Обмен между ядром и FUSE-обработчиком в userspace может идти через io_uring, с меньшим числом переключений контекста. Для SSHFS, userspace-ФС и облачных FUSE-адаптеров это путь к меньшей latency при том же API.

5. fsnotify: FS_PRE_ACCESS

Событие FS_PRE_ACCESS срабатывает до доступа к содержимому файла, синхронно: ядро ждёт ответ userspace. Можно организовать ленивое заполнение файла из медленного бэкенда или политику доступа до фактического read. Это не «магический firewall», а hook для контролируемых сценариев.

6. Некэшируемый буферизированный I/O

Режим, при котором данные уходят из page cache сразу после чтения/записи. На очень быстрых NVMe кэш в RAM для одноразовых потоков часто избыточен: новый путь экономит память без полного перехода на Direct I/O с его API-сложностью.

7. Железо: AMD XDNA NPU и Snapdragon 8 Elite

  • amdxdna драйвер NPU AMD XDNA (серии Ryzen 7040/8040, Alveo V70, Versal) для ускорения ML-операций на NPU;
  • Qualcomm Snapdragon 8 Elite (SM8750) и ряд других ARM/SoC расширенная поддержка платформ в дереве.

8. XFS, NFS, Device Mapper

  • XFS: reverse mapping в realtime-режиме и на этой базе reflink (копии через клон метаданных);
  • NFS: делегирование атрибутов (mtime и др.) на стороне клиента в NFSv4.2, улучшения LOCALIO;
  • Device Mapper: атомарная запись в dm-mirror, dm-raid1 и смежных модулях.

9. Мелочи, которые копятся

  • кэширование размера symlink: readlink быстрее порядка 1.5% в тестах на ext4/tmpfs;
  • оптимизации flush TLB при переключении контекста;
  • возврат модуля md-linear (убирали в 6.8, вернули по спросу);
  • AT_EXECVE_CHECK и securebits для ограничения исполнения скриптов через интерпретатор, не только «бинарник»;
  • SELinux xperm-правила, SHA512 по умолчанию для подписи модулей вместо SHA1.

Как подходить к внедрению

  • Десктоп: ставьте ядро из репозитория дистрибутива (пакеты вроде linux-image-6.14*, когда они появятся в вашем канале), проверяйте Wine/Proton и железо, держите запасное ядро в GRUB.
  • Сервер: сначала staging, smoke-тесты Btrfs/FUSE/cgroup/GPU, план отката на предыдущее ядро, не чистите старые образы до стабильной недели под нагрузкой.

Полный разбор изменений в анонсе Линуса на LKML и в обзорах kernelnewbies / LWN по merge window 6.14.

Кратко

  • ntsync плюс для Wine/Proton;
  • Btrfs RAID1 read_policy тюнинг чтения;
  • dmem cgroup лимиты памяти GPU/device;
  • FUSE+io_uring и uncached buffered I/O в I/O-стеке;
  • XFS reflink (realtime), NFS attrs, atomic write в DM;
  • NPU AMD XDNA и новые ARM SoC в драйверах.

Источники и ссылки


Комментарии загружаются…