Linux 7.2: планировщик с учётом кэша, ускорение ext4 и новые драйверы

Вышло ядро Linux 7.2. Главные изменения — кэш-aware планировщик задач, ускорение работы файловых систем ext4 и NTFS, поддержка протокола USB4STREAM и множество новых драйверов для ноутбуков и периферии.

Цикл разработки занял девять недель и установил рекорд по числу участников — более 2100 разработчиков. По оценке LWN, около 5% коммитов в 7.2 имеют пометку «assisted-by», указывающую на использование ИИ.

Планировщик задач стал кэш-aware

Планировщик задач в Linux 7.2 теперь учитывает кэш-иерархию процессора. Он распознаёт потоки, принадлежащие одному процессу, и старается разместить их на ядрах с общим кэшем.

Раньше планировщик балансировал нагрузку по всем ядрам, не проверяя, разделяют ли потоки на разных ядрах общую память. Это приводило к «кэш-баунсингу» — повторной выборке и синхронизации одних и тех же данных.

Чтобы один процесс не перегрузил кэш-домен, введены ограничения: планировщик не переместит больше потоков, если процесс уже использует более 25% времени CPU или более 33% нагрузки в домене. Наибольший выигрыш получат процессоры AMD и Intel с несколькими кэш-доменами.

Ускорение ext4 и других файловых систем

В ext4, файловой системе по умолчанию в Ubuntu, устранены блокировки и взаимоблокировки при интенсивной нагрузке. Это сделано за счёт изменения механизма fast commit, который записывает записи журнала быстрее, чем при полном коммите. Статистику работы fast commit теперь можно посмотреть в /proc/fs/ext4/*/fc_info.

Совместно с XFS исправлен лишний шаг очистки памяти в слое IOMAP ядра. Это даёт прирост до 5% на мелких случайных чтениях 4K с NVMe-накопителей в polling-режиме io_uring. Поиск файлов в плотных каталогах ускорен за счёт обработки данных блоками по 4 байта.

NTFS получила поддержку «настоящих» символических ссылок Windows и исправление ошибки, из-за которой такие ссылки отображались как файлы нулевого размера. Кроме того, NTFS стала устойчивее к повреждению метаданных на диске.

exFAT, распространённый формат для SD-карт и USB-накопителей, переведён на iomap. По данным коммита, скорость записи при высокой нагрузке выросла до 87%.

В Btrfs большие folio включены по умолчанию — эта функция была экспериментальной с Linux 6.17. Файловая система теперь работает с памятью более крупными блоками, снижая накладные расходы. Прямой ввод-вывод больше не выполняется строго последовательно: заявлен прирост производительности записи до 59%, а последовательная запись ускорилась на 15%.

Прямая передача данных по USB4 и Thunderbolt

Ядро 7.2 поддерживает протокол USB4STREAM — новую возможность для передачи данных между двумя устройствами по кабелю USB4 или Thunderbolt. Драйвер создаёт файлы устройств /dev/tbstreamX на каждом компьютере, данные передаются через cat, echo и dd без сетевого подключения.

Более быстрые /proc и новые драйверы

Чтение /proc/filesystems ускорено до 140%, а при одновременном чтении 20 процессами — до 444%. Это заметно ускорит работу инструментов и скриптов, которые часто опрашивают состояние системы.

Среди новых драйверов — поддержка режимов зарядки батареи в драйвере Uniwill для ноутбуков TUXEDO, Surface Pro 12 в платформенном драйвере Microsoft Surface, веб-камера AMD ISP4 в HP ZBook Ultra G1a, сенсорные экраны Wacom W9000, микрофонный массив в HyperX OMEN Gaming Laptop 16, а также загрузка Apple M3 MacBook Pro, Air и iMac до консоли.

Для игроков: работают боковые кнопки мыши Rakk Dasig X, задние кнопки геймпада PlayStation DualSense Edge, конфигурационный драйвер OneXPlayer и геймпад HORI Wireless Switch Pad. Поддерживаются адаптеры Realtek RTL8159 для 10-гигабитных USB-сетей, USB-адаптеры Mercusys MA60XNB и NETGEAR NightHawk A8500 WiFi 7, а также WiFi 7 и Bluetooth 5.4 на чипах Realtek 8922AU/8922AE и Mediatek MT7927.

Прочие изменения

Среди других заметных новшеств — поддержка AMD Zen 6 EPYC, начальная поддержка AMDGPU HDMI 2.1 FRL, обновление модулей Intel TDX без перезагрузки, подготовительная работа для WiFi 8 и суб-планировщиков в sched_ext. Устаревший AF_ALG помечен как deprecated, из ядра удалена функция strncpy().

Из ядра удалено более 13 000 строк кода эмуляции процессора i486, а также 40-летний драйвер видеокарт Hercules, протокол AppleTalk и драйверы ARCnet для ISA и PCMCIA.

Ожидавшийся в 7.2 более справедливый планировщик GPU не вошёл в релиз: из-за сообщений о регрессиях на некоторых видеокартах AMD его откатили в пользу прежнего метода FIFO.

Будет ли Linux 7.2 в Ubuntu 26.10?

Canonical заявляла, что Linux 7.2 — целевая версия ядра для Ubuntu 26.10. Однако по новой политике выбора ядра Ubuntu стремится включить «абсолютно последнюю версию» к моменту заморозки. Так как Linux 7.2 вышел до крайнего срока 20 августа, окно слияния для 7.3 уже открыто, и она теперь считается последней версией в разработке. Canonical должна уточнить выбор в ближайшее время.

В любом случае, ядро вернётся в Ubuntu 26.04 через обновление HWE в начале 2027 года.

Как установить Linux 7.2

Исходный код доступен на kernel.org. В Ubuntu эта версия не появится как официальное обновление (кроме будущего HWE), но её можно поставить через Canonical Mainline .deb или сторонний PPA. Установка ядра из неофициальных источников не рекомендуется: нет гарантий, поддержки и Ubuntu-специфичных патчей. Если новая версия окажется нестабильной, всегда можно откатиться на рабочее ядро, как это делают в Linux Mint.

Частые вопросы

Что такое кэш-aware планировщик и чем он полезен?

Это планировщик задач, который учитывает, какие потоки относятся к одному процессу, и старается разместить их на ядрах с общим кэшем. Это снижает «кэш-баунсинг» — повторную синхронизацию данных между разными кэшами.

Насколько быстрее станет ext4?

Прирост зависит от нагрузки. Устранение блокировок в fast commit помогает при интенсивной работе, а чтение мелких блоков 4K с NVMe ускоряется до 5%.

Что такое USB4STREAM и зачем он нужен?

Это новый протокол для прямой передачи данных между двумя устройствами по кабелю USB4 или Thunderbolt. Он позволяет передавать файлы без сетевого подключения, используя обычные команды вроде cat и dd.

Поддерживает ли Linux 7.2 новые видеокарты AMD и Intel?

Ядро продолжает добавлять поддержку будущих CPU и GPU Intel и AMD, включая AMD Zen 6 EPYC и начальную поддержку AMDGPU HDMI 2.1 FRL.

Мой старый ноутбук станет работать быстрее?

Скорее всего, нет. Большинство оптимизаций направлены на конкретные сценарии, а не на общую производительность. Однако новые драйверы могут добавить поддержку ранее не работавшего оборудования.

Безопасно ли ставить ядро из Mainline PPA?

Нет, это не рекомендуется. Такие сборки не содержат Ubuntu-специфичных патчей, не гарантируют поддержку и могут привести к неработающему оборудованию.

Что делать, если после обновления что-то сломалось?

Можно загрузиться со старой версией ядра из меню GRUB. Если проблема серьёзная, стоит откатиться на предыдущее ядро, как описано в нашей статье про откат ядра в Linux Mint.

Как часто выходят такие крупные обновления ядра?

Релизы Linux выходят примерно каждые два-три месяца. Следить за свежими выпусками приложений и ядра удобно по нашим ежемесячным дайджестам.

Источник: omgubuntu.co.uk