Релиз ядра Linux 6.15

После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 6.15. Среди наиболее заметных изменений: механизм аудита в Landlock, режим закрепления маппинга памяти, подсистема fwctl, драйвер Nova для GPU NVIDIA, реализация хост-системы для гипервизора Hyper-V, поддержка зонированных устройств хранения в XFS, оптимизация сетевой подсистемы, scrub-проверка в Bcachefs, возможность контроля над операциями через io_uring.

В новую версию принято 15945 исправлений от 2154 разработчиков, размер патча - 59 МБ (изменения затронули 13596 файлов, добавлено 739608 строк кода, удалено 312168 строк). В прошлом выпуске было 12115 исправлений от 1984 разработчиков, размер патча - 39 МБ. Около 41% всех представленных в 6.15 изменений связаны с драйверами устройств, примерно 16% изменений имеют отношение к обновлению кода, специфичного для аппаратных архитектур, 13% связано с сетевым стеком, 5% - с файловыми системами и 4% c внутренними подсистемами ядра.

Из важного для desktop систем ПК бояр:

  1. В Btrfs реализована возможность указания при монтировании отрицательных уровней сжатия zstd (от -15 до -1, например, "compress=zstd:-5"), обеспечивающих более высокую скорость работы ценой снижения эффективности сжатия. Улучшено кэширование файловых путей (в проведённом тесте выполнение операции "send" ускорилось на 30%). Добавлена поддержка блоков размером 2Кб.
  2. В EXT4 повышена производительность при воспроизведении журнала с очень большим числом отозванных записей (нагрузка, свойственная разделам под ФС Lustre). Реализован линейный поиск записей "dentry" (внутреннее представление элементов каталогов), решающий проблемы с доступом к некоторым файлам в режиме без учёта регистра символов. Налажена работа опции монтирования "errors=remount-ro"
  3. В F2FS реализован ioctl для получения сведений о приоритете операции ввода/вывода для заданного файла. Проведена работа по переходу на использование фолиантов страниц памяти (page folios).
  4. В Bcachefs добавлен режим "scrub", при котором осуществляется проверка корректности чтения всех данных и метаданных из ФС. В случае выявления ошибок запускается процедура восстановления. В Bcachefs также добавлена поддержка работы с ФС, размер блока в которых больше чем размер страницы памяти
  5. В exFAT ускорены операции удаления файлов. Вместо отправки запросов "discard" по отдельности на каждый освобождаемый кластер удаляемого файла, драйвер теперь группирует запросы. В проведённом тесте время удаления файла, размером 80 ГБ, сократилось с 286 секунд до 1.6 секунды.
  6. Все псевдо-ФС, а также ФС EXT2, переведены на использование нового API монтирования разделов.

Файловые системы это база для любого Linux юзера. F2FS актуально ещё и для Android. EXT4 популярный выбор юзеров. BTRFS хороший выбор для бэкапов, отката, экономии памяти. BcacheFS новая перспективная ФС. В домашних целях будет к примеру полезна для очень активных NAS и торрент серваков.

Память и системные сервисы

Добавлена подсистема fwctl (Firmware Control), предоставляющая API для безопасного управления прошивками и выполнения обработчиков на стороне прошивок из пространства пользователя. На базе fwctl подготовлены драйверы для устройств CXL (Compute Express Link), Ethernet-адаптеров Mellanox ConnectX (mlx5) и сервисных карт AMD/Pensando.

  1. Для архитектуры RISC-V реализована поддержка расширений BFloat16, Zaamo (атомарные операции с памятью), Zalrsc (Load-Reserved/Store-conditional) и ZBKB (битовые операции для криптографии).
  2. Продолжен перенос изменений из ветки Rust-for-Linux, связанных с использованием языка Rust в качестве второго языка для разработки драйверов и модулей ядра

Сетевая подсистема

Добавлена начальная возможность получения сетевых пакетов через io_uring c копированием содержимого сразу в память программы в пространстве пользователя без промежуточной буферизации (zero-copy). В проведённых тестах изменение позволило справится с обработкой трафика через 200 гигабитный канал, используя одно ядро CPU.

не домашние нагрузки конечно, но хорошая новость в целом для всех активно сетевых устройств

Оборудование

В состав яда принята начальная реализация драйвера Nova для GPU NVIDIA, оснащённых GSP-прошивками, используемыми начиная с серии NVIDIA GeForce RTX 2000 на базе микроархитектуры Turing. Драйвер написан на языке Rust. На первом этапе добавлен только каркас nova-core, насчитывающий около 400 строк кода и реализующий базовый уровень абстракций над программными интерфейсами прошивок GSP. На следующем этапе в ядро планируют включить DRM-драйвер nova-drm (Direct Rendering Manager) для взаимодействия с GPU из пространства пользователя, а также VFIO-драйвер с менеджером vGPU, позволяющим использовать виртуальные GPU NVIDIA в системах виртуализации.

В драйвере AMDGPU реализована поддержка архитектуры DCN36 (Display Core Next). Добавлена возможность задания своих кривых яркости, используемых для коррекции яркости дисплея.

Добавлена поддержка звуковых систем Presonus Studio 1824c, Jabra Evolve 65. Добавлена поддержка DSP-модулей AMD ACP 7.x, AWINC WM88166, Everest ES8388, Intel AVS PEAKVOL и GAIN. Улучшена поддержка звука на ноутбуках ASUS, HP и Lenovo.

Добавлена поддержка ARM-плат, SoC и устройств: Arm Morello, AMD (Xilinx) Versal NET, Google Pixel Pro 6, NetCube Kumquat, MYIR Remi Pi, Huawei Matebook E Go, Milk-V Jupiter ST STM32MP2, Mediatek MT8370, Apple T2, Skov (i.MX8MP), EVK (i.MX95), Rockchip RK35xx, Allwinner A523, 11 плат Toradex на базе i.MX6.

8
3 комментария