Релиз Linux 6.14: 12 тысяч коммитов, драйверы, сетевой стек и новые возможности ядра

Источник: linuxiac.com
Спустя два месяца разработки Линус Торвальдс представил релиз ядра Linux 6.14. В нем — сотни улучшений: от драйвера ntsync c примитивами синхронизации Windows NT до расширения возможностей файловых систем и поддержки нового железа. Среди заметных новшеств — reflink в XFS realtime, расширения Btrfs RAID1, cgroup для GPU-памяти и поддержка io_uring в FUSE. Также переработаны механизмы NFS, Device mapper и обработки символических ссылок.
В релиз вошло 12 115 коммитов от 1 984 разработчиков, затронуто более 10 тысяч файлов. Изменения касаются драйверов (41%), сетевого стека (14%), архитектурных блоков (13%) и файловых систем (7%). Об этом сегодня и поговорим.
Оборудование и драйвера
Вот ключевые изменения, касающиеся драйверов и поддержки оборудования:
- Драйвер amdxdna: добавлена поддержка интегрированных в процессоры AMD ускорителей NPU на базе архитектуры XDNA, предназначенных для задач машинного обучения. Эти NPU присутствуют в сериях процессоров AMD Ryzen 7040 и 8040, а также в ускорителях AMD Alveo V70 и SoC AMD Versal.
- Драйвер i915: обновлены идентификаторы новых GPU, улучшена обработка сбоев инициализации HDMI, повышена надежность сброса графических движков на системах с Haswell и более старыми версиями.
- Драйвер AMDGPU: реализована поддержка механизма DRM panic, отображающего сообщение об ошибке при сбоях. Продолжается подготовка к поддержке будущей серии графических карт Radeon RX 9000 на базе архитектуры RDNA4. Обновлена поддержка различных компонентов, включая DCN 3.5, GG 9.5, IH 4.4 и другие.
- Поддержка новых ARM-плат и SoC: включена поддержка таких платформ, как Qualcomm Snapdragon 8 Elite (SM8750), Samsung Exynos 9810, Microchip SAMA7D65 и других.
- Звуковая подсистема ALSA: расширены API rawmidi и sequencer для поддержки MIDI 2.0. Добавлена поддержка звуковых систем устройств Allwinner suinv F1C100s, Realtek ALC5682I-VE и других.
- DRM-драйвер Xe — продолжена разработка драйвера для архитектуры Intel Xe, применяемой в видеокартах Intel Arc и встроенной графике Tiger Lake и новее.
- Контроллеры ввода — включен драйвер для Intel THC (Touch Host Controller), обеспечивающего работу сенсорных экранов и тачпадов на ноутбуках, а также добавлена поддержка устройств Wacom (PCI) и игровых контроллеров QH Electronics.
Память и системные сервисы:
- Драйвер ntsync — завершена интеграция драйвера, предоставляющего символьное устройство /dev/ntsync и реализующего примитивы синхронизации, совместимые с Windows NT. Это повышает производительность Windows-приложений, работающих через Wine, за счет исключения накладных расходов RPC.
- Новый контроллер cgroup dmem — реализован для отдельного учета и ограничения использования памяти GPU. Позволяет создавать изолированные группы задач, использующих GPU, предотвращая взаимное влияние при исчерпании ресурсов.
- Оптимизации TLB flush — добавлены улучшения масштабирования при сбросе кеша трансляции адресов (TLB) за счет отложенного обновления внутренних структур при переключении контекста.
- Улучшения MGLRU — повышена эффективность механизма вытеснения неиспользуемых страниц памяти (Multi-Generational LRU), что снижает нагрузку на систему при нехватке памяти.
- Поддержка Rust — продолжается интеграция Rust как второго языка для написания драйверов. Добавлены обвязки для PCI, платформ, Open Firmware и символьных устройств. Поддержка Rust по умолчанию отключена и не делает Rust обязательной сборочной зависимостью. По словам Грега Кроа-Хартмана, платформа «почти готова к созданию реальных драйверов».
- Новый механизм генерации отладочных символов — теперь возможна генерация версий отладочной информации на основе DWARF-данных, что позволяет поддерживать модули на Rust. Старый механизм оставлен для совместимости, выбор производится на этапе сборки.
- PowerPC — добавлен режим ленивого вытеснения задач (PREEMPT_LAZY), при котором обычные процессы вытесняются не сразу, а по границе тика, при сохранении полной вытесняемости для realtime-задач.
Дисковая подсистема и файлы:
- Btrfs — добавлена поддержка трех новых политик балансировки чтения в RAID1: rotation (по умолчанию, равномерное распределение), latency (с учетом задержек) и devid (ручное управление). Также реализован ioctl FS_IOC_READ_VERITY_METADATA.
- Некэшируемый буферизированный ввод/вывод — реализован режим, при котором данные удаляются из страничного кэша сразу после чтения или записи. Предназначен для высокоскоростных хранилищ, где кэширование избыточно, но Direct I/O применять неудобно.
- FUSE + io_uring — добавлена поддержка обмена данными между ядром и пользовательским пространством через io_uring, что снижает накладные расходы на переключения контекста и повышает производительность FUSE-файловых систем.
- XFS — реализован reflink в realtime-режиме на основе механизма reverse-mapping (rmap), что позволяет эффективно создавать копии файлов без дублирования данных.
- fsnotify — добавлено событие FS_PRE_ACCESS, синхронно вызываемое перед доступом к файлу. Это позволяет организовать, например, динамическую подгрузку содержимого из медленного хранилища по требованию.
- VFS — добавлено кэширование размера символьных ссылок, что ускоряет readlink () примерно на 1.5% (например, при доступе к / initrd.img в ext4).
- NFSv4.2 — внедрено делегирование управления атрибутами (например, mtime) на стороне клиента. Улучшена реализация протокола LOCALIO для распознавания случаев, когда сервер и клиент находятся на одном узле, что позволяет использовать прямой ввод/вывод.
- SquashFS — реализован режим SQUASHFS_FILE_DIRECT, при котором блоки загружаются напрямую в страничный кэш без промежуточного буфера read_page, снижая потребление памяти.
- Bcachefs — стабилизирован формат дисковых структур: теперь изменения будут носить необязательный и обратимо совместимый характер. Повышена скорость проверки целостности, улучшена работа в режиме read-only, исправлены ошибки use-after-free и проблемы с reflink в fsck.
Сеть, виртуализация и безопасность
- RxRPC — добавлена поддержка передачи UDP-кадров большого размера, что увеличивает пропускную способность при использовании этого протокола.
- TCP + RACK-TLP — реализован алгоритм RACK-TLP (Recent Acknowledgment + Tail Loss Probe) для более точного и быстрого определения потерь TCP-пакетов.
- tcp_tw_reuse_delay — добавлен sysctl-параметр с привязкой к network namespace. Позволяет задать задержку перед повторным использованием порта после завершения TCP-соединения (TIME_WAIT).
- PTP (точное время) — теперь можно выбирать источник временных меток (провайдер PTP) на уровне PHY или MAC, что улучшает точность синхронизации.
- IPsec + IP-TFS/AGGFRAG — реализована поддержка агрегирования и фрагментации зашифрованных IP-пакетов по стандарту IP-TFS/AGGFRAG (IP Traffic Flow Security).
- Сетевые сокеты: приоритеты — расширена поддержка управления приоритетом через SO_PRIORITY и SO_RCVPRIORITY, включая возможность передачи данных через recvmsg () с метками приоритета в control messages (cmsg).
- execveat + AT_EXECVE_CHECK — добавлен флаг AT_EXECVE_CHECK, позволяющий выполнить проверку запуска исполняемого файла без его реального выполнения. Учитываются политики SELinux/AppArmor, LSM-модули и права доступа. Также предложены флаги SECBIT_EXEC_RESTRICT_FILE и SECBIT_EXEC_DENY_INTERACTIVE для ограничения запуска скриптов через интерпретаторы (например, запрет sh script.sh при активной политике).
- SELinux — реализована поддержка xperm-правил для точечного контроля доступа к вызовам ioctl () и сообщениям netlink.
- Подпись модулей ядра — по умолчанию теперь используется алгоритм SHA512 вместо SHA1 для цифровой подписи модулей.
- KVM и Intel TDX — продолжена работа по внедрению поддержки Intel TDX (Trusted Domain Extensions) — технологии шифрования памяти виртуальных машин, защищающей от доступа со стороны гипервизора.
- VirtualBox — драйверы гостевых систем теперь поддерживают архитектуру ARM64.
- virtio_blk — добавлен режим восстановления после ошибок при работе с блочными устройствами.
А вы уже опробовали новую версию? Если да, пишите, что не работает, что глючит и как поправить — для многих читателей Хабра это крайне важно.