Основатель и бессменный куратор ядра Линус Торвальдс объявил в рассылке LKML о выходе Linux 7.3. Релиз состоялся по графику, без привычных задержек, а уже на следующий день открылось окно слияния изменений для будущей версии 7.4.

По словам Торвальдса, на этой неделе не произошло ничего экстраординарного, поэтому финальная сборка 7.3 вышла точно в срок. Сам разработчик при этом уходит в ежегодный семейный отпуск, так что ближайшие пару недель его график работы с pull-запросами будет нестандартным.

Торвальдс отдельно подчеркнул, что продление окна слияния не означает смягчения правил: в релиз попадёт только то, что было готово до открытия окна, а не дорабатывалось уже в его ходе.

Напомним, что вышедшая примерно двумя месяцами ранее Linux 7.2 принесла кэш-ориентированное планирование задач для более высокой производительности и меньшего числа кэш-промахов, более справедливый планировщик GPU, механизм USB4STREAM для потоковой передачи данных по USB4, а также четвёртую фазу реализации swap-таблиц. Ниже разберём ключевые изменения Linux 7.3 и подробно остановимся на архитектурах Arm, RISC-V и MIPS.

Иллюстрация к релизу ядра Linux 7.3

реклама кормит Уточку 🦆

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

Среди наиболее заметных нововведений релиза:

  • Улучшенное управление VRAM для бюджетных видеокарт — когда видеопамяти не хватает, разные приложения начинают конкурировать за неё. Теперь с помощью cgroup dmem система вместо немедленного отката пытается вытеснить незащищённые буферы, освобождая место для защищённого. Это позволяет приложениям реально использовать выделенную им память без постоянного «пинг-понга».
  • Прирост производительности Btrfs и Ext4
    • Btrfs вернул себе производительность прямого ввода-вывода (Direct I/O), потерянную в прошлых версиях. Для не-SSD накопителей удаление лишней задержки в 1 jiffy при логировании снизило задержки и подняло пропускную способность в 5 раз. Операция fsync с включённым no-holes также стала быстрее в 5 раз.
    • Ext4 ускорил параллельные записи через Direct I/O и работу fallocate(), а также исправил регрессию буферизованной записи.
  • Ускорение FUSE через io_uring — FUSE-серверы теперь могут передавать ядру пул буферов для обслуживания запросов, снижая потребление памяти. Добавлена и технология zero-copy для FUSE io-uring.
  • Поддержка субпланировщиков cgroup (sched_ext) — реализация sched_ext полностью завершена. Теперь процессами внутри cgroup может управлять собственный планировщик на базе BPF, причём разные cgroup могут использовать разные планировщики и принимать разные решения.

Обновления Arm в Linux 7.3

  • Allwinner
    • Драйвер тактирования — ряд чисток в библиотеке драйвера Allwinner и поддержка RTC-тактирования для Allwinner A733.
    • Allwinner A733 — добавлена поддержка MMC, RTC и контроллера NMI.
    • Изменения device tree
      • A10 — исправлен номер прерывания PMU.
      • A100/A133 — добавлен LRADC.
      • Включена поддержка overlay для плат sun8i-h2-plus pi.
      • A523 — добавлен ИК-приёмник для пультов.
      • TV-бокс X96QPRO+ на H728 получил вывод звука S/PDIF.
      • Исправлена ориентация датчика mpu6050 в PinePhone.
      • Различные стилевые правки.
    • Defconfig Arm64 — включён LRADC.
    • Новые устройства
      • Baijie Helper A133.
      • NetCube Systems OpenNMC (dobermann).
  • Rockchip
    • Драйвер тактирования
      • Драйвер для Rockchip RV1106.
      • Исправление мультиплексора источника SPI для rk3576.
      • Более точное представление дробных коэффициентов PLL.
      • Исправление dclk третьего видеопорта, чтобы смена его частоты не влияла на другие компоненты.
    • PHY — обновлена подстройка фазы тактовой линии, поддержка 2500 Мбит/с и обработка частоты TMDS.
    • Pinctrl — добавлена поддержка SoC RK3308B и RV1106.
    • IOMMU — переработана обработка состояний Rockchip, исправлена работа с тактированием, probe и устаревшими fault'ами.
    • Контроллер CAN-DF — добавлена поддержка на RK3588.
    • Watchdog — добавлен для RV1106.
    • Новые устройства
      • EmbedFire LubanCat 4 (RK3588S).
      • Игровая консоль Anbernic RG Vita-Pro (RK3576).
      • Платы Vicharak Vaaman2 и Axon (RK3588).
      • LCKFB Taishan Pi 3M (RK3576).
      • Orange Pi 5 Pro (RK3588S).
      • Graperain G3568 v2 (RK3568).
      • Роутер HINLINK/LinkStar H28K (RK3528).
      • Youyeetoo YY3588 SBC (RK3588).
      • Плата-носитель Alientek DLRV1126 и модуль CLRV1126F (RV1126).
      • LincStation E1.
  • Amlogic
    • Драйвер тактирования
      • Добавлены AO- и периферийные тактовые сигналы Amlogic A9.
      • Исправлено неверное число родителей 32-кГц тактового сигнала на GXBB.
    • Контроллер Meson PCIe — скорректировано состояние GPIO PERST#, чтобы оно удерживалось активным до стабилизации питания и REFCLK (устранён сбой перечисления).
    • Драйвер SoC — добавлена поддержка Amlogic A1 и T7.
    • Прочие драйверы Amlogic
      • Исправление debugfs для измерения тактов.
      • Поддержка измерения тактов для A1 и T7.
    • Device tree Arm64
      • Исправления PCIe и NAND для Amlogic AXG.
      • Общие правки отступов и пробелов.
      • Узлы Pinctrl и GPIO IRQ для A9.
      • Узлы измерения тактов для T7 и A1.
  • Samsung
    • Добавлен флагманский мобильный SoC Exynos 1580 (модель 2024 года).
    • PHY — улучшения драйвера hdptx: модернизация доступа к регистрам и чистка кода.
    • Pin control — добавлен SoC Exynos 8855.
    • Ввод
      • Драйвер клавиатуры Samsung держит прерывания отключёнными, пока устройство закрыто, плюс чистка логики пробуждения и использование pm_runtime_active.
      • Обновлён подсчёт контактов SUR40 согласно спецификации PixelSense.
    • Драйвер тактирования
      • Exynos990: добавлены недостающие тактовые сигналы и исправлены родители gate-тактов в контроллере PERIS.
      • Чистка — использование kzalloc_flex для проверок __counted_by.
    • Драйверы SoC
      • Исправлена давняя утечка OF-узла в драйвере PMU.
      • Новые bindings для Exynos Auto v920 HSI0 syscon.
    • DTS Arm — добавлен Bluetooth для платы Google Manta (Nexus 10) на Exynos5250.
    • DTS Arm64
      • Новый SoC Exynos8855 (рыночное название Exynos 1580) — базовая поддержка с платой SMDK.
      • ExynosAutov920: добавлен узел HSI0 syscon.
      • Ряд нефункциональных правок стиля под dt-check-style.
    • Новые устройства — Samsung Exynos8855 SMDK.
реклама кормит Уточку 🦆
  • Qualcomm
    • Новый SoC — «загадочный» Shikra на базе Cortex-A78C.
    • ASoC — исправления Qualcomm LPASS для ограничений воспроизведения и громкости WSA.
    • Подсветка — Qualcomm WLED: удалены лишние вызовы dev_err().
    • MFD
      • Qualcomm SPMI PMIC: документированы PMG1110 и устройство haptics.
      • Qualcomm TCSR: добавлены compatible для Hawi, Maili и Shikra, документирован блок TCSR IPQ9650.
    • Тепловой контроль
      • Добавлена поддержка монитора Master BandGap.
      • Добавлен compatible для температурных привязок Maili.
    • Драйвер тактирования
      • Такты GCC, TCSR, RPMh и видео для Maili.
      • Такты GCC, RPM, GPU, дисплея и аудио для Shikra.
      • Такты дисплея и графики для Nord.
      • Такты камеры и EVA для Glymur.
      • Видеотакты для Hawi.
    • PHY
      • QMP USB PHY и PCIe PHY для SM8475, PCIe PHY для IPQ9650, QUSB2 PHY для Shikra, поддержка QMP PCIe PHY и UFS PHY для Hawi.
      • Многорежимный QMP PCIe Multi-PHY для Glymur, поддержка PCIe PHY для IPQ5210.
      • Удалены дублирующиеся заголовки v8 DP, улучшена runtime-обработка для QMP.
    • Soundwire — поддержка SCP address paging и mclk_freq, увеличение числа портов данных до 17.
    • Pin control
      • Добавлены TLMM для Maili, PMIC PMG1110 и LPASS LPI TLMM для Eliza.
      • GPIO TLMM безусловно помечаются как способные к пробуждению.
      • Улучшения поверх правок irqchip PDC из дерева tglx.
      • Правки неприоритетных групп пинов для IPQ806x и IPQ9650.
    • Контроллер PCIe
      • Добавлен compatible IPQ9650 с глобальным прерыванием.
      • Добавлен compatible IPQ5210 с откатом на IPQ9574.
      • Поддержка SoC Hawi (binding и драйвер).
      • Пропуск GPIO PERST#, предоставляемых нижестоящими PCIe-устройствами.
      • Прекращена реклама Attention Button, чтобы pciehp использовал события Presence Detect Changed.
    • Wi-Fi — Qualcomm (ath12k): масштабная интеграция инфраструктуры ядра и поддержка MultiPD на платформе AHB.
    • IOMMU
      • ARM SMMUv2: обновления bindings для Eliza, Maili, Shikra и IPQ9650; поддержка SM8450.
      • Исправлены гонки runtime-PM, probe, отчётов о сбоях и инициализации таблиц страниц.
    • ASoC — обновления стека драйверов, новые платформы LPI MI2S, SM8475, WSA855X.
    • I2C — поддержка SA8797P и SA8255p.
    • Прочие обновления драйверов
      • Добавлены bindings Maili для SCM, IMEM, AOSS и PMIC GLINK; поддержка IMEM, RPM SMD, LLCC и UBWC для Shikra, включая обработку LLCC ECC-прерываний.
      • Добавлен обобщённый сервис Peripheral Authentication Service с бэкендами SCM и OP-TEE, на него переведены драйверы MSM DRM и IPA.
      • Добавлены точки трассировки SCM SMC-вызовов и настраиваемая доставка minidump через always-on SRAM.
      • Переработана база конфигураций UBWC, добавлены конфигурации Milos и Shikra; поддержка новых версий ICE и статистики подсистем Hawi.
      • Упрощён выбор Kconfig для SoC Qualcomm и архитектурные зависимости.
      • Использованы managed-ресурсы в путях probe EBI2 и RPMh RSC.
      • Добавлен разбор SMEM для конфигурации DDR и выбор конфигурации UBWC по старшему биту адреса банка.
      • Включены обобщённые trusted-zone API для медиадрайверов Iris и Venus.
      • Исправлены состояние повторного probe SCM, очистка reserved-memory и разыменование NULL в раннем обработчике IRQ; включён доступ к EFI-переменным QSEECOM на Asus Zenbook A16.
      • Скорректирована проверка размера прошивки GENI и раскладка extradata PMIC GLINK Thunderbolt.
      • Документированы боковой канал Nord AOSS и свойство IMEM minidump SRAM.
    • Обновления device tree Arm64
      • Введена поддержка SoC Shikra, его контроллеров тактирования GCC и RPM, платформ CQM, CQS и IQS SoM и их отладочных плат.
      • Добавлены Eliza CQS SoM и EVK, QCS8550 RB5 Gen 2, Vicharak Axon Mini, HONOR MagicBook Art 14, Microsoft Surface Pro 12, Xiaomi 12 Lite, Motorola Edge 30, Sony Xperia M2 и Motorola Moto G2.
      • Расширена поддержка Eliza: USB, SD-карта, тачскрин, PMIC, interconnect, thermal, мониторы пропускной способности CPU и LLCC, QUPv3 и ADSP GPR.
      • Расширена поддержка Glymur: контроллеры тактов GPU, камеры и EVA, аудио LPASS, CoreSight, PCIe, USB, области памяти IMEM и PIL, домены питания, thermal и периферия CRD.
      • Добавлены дисплей, IPA, камера, USB, аудио, крипто для платформ Kaanapali, Milos, Hamoa, а также контроллер EC для плат Hamoa и Glymur.
      • Улучшены описания сетевых платформ: PCIe-порты IPQ, PHY, такты, PWM, регуляторы и прерывания.
      • Исправлены bindings и валидация DeviceTree для compatible-строк, именования узлов, диапазонов адресов, тактов, reserved memory, регуляторов и GPIO.
      • Добавлены описания PCIe-мостов IPQ9574 и включены PCIe0/PCIe2 для Wi-Fi карт QCN92xx на RDP454.
      • Расширена поддержка платформы Shikra: Wi-Fi и Bluetooth для CQM и IQS SoM; включены удалённые процессоры CDSP, LPAICP и MPSS.
      • Включено аудио Eliza CQS EVK, добавлены описания LPASS и SoundWire; поддержка PMIC ADC для Hamoa, Monaco и Lemans.
      • Исправлены назначения питания QMP PHY, IOMMU-маппинги PCIe и конфигурация пробуждения для ряда плат.
      • Включено глубочайшее состояние простоя X1E80100, настроен SPMI ADC thermal на SM8550 и SM8650, добавлен контроллер тактов GPU для Milos.
    • Обновления device tree Arm32
      • Начальная поддержка Sony Xperia M2 (MSM8926) и Motorola Moto G2 2014 года (MSM8226).
      • Добавлены тачскрин, пины Bluetooth, NFC и многоцветный LED-индикатор для HTC One M8 (MSM8974).
      • Добавлен узел touchkey для Samsung ExpressATT (MSM8960) и метки каналов XOADC PM8921.
      • Консолидированы общие свойства IPA в device tree SDX55.
    • Обновления defconfig Arm64
      • Включён драйвер EC для Hamoa и Glymur.
      • Включён драйвер звука DMIC для Monaco и Lemans.
      • Включён WWAN-драйвер BAM-DMUX для Shikra и других платформ с A2 BAM.
    • Новые устройства
      • Asus Zenbook A16 (UX3607OA).
      • Платформа Eliza CQS SoM и плата Eliza CQS EVK.
      • Vicharak Axon Mini SBC (QCS6490).
      • Motorola Moto G2 (смартфон 2014 года).
      • Sony Xperia M2.
      • Microsoft Surface Pro 12".
      • Системы-на-модуле и EVK на базе Shikra.
      • Xiaomi 12 Lite 5G (taoyao).
      • Motorola Edge 30 (dubai).
  • MediaTek
    • Драйвер MFD
      • MT6397: поддержка AUXADC и EFUSE для mt6323.
      • MT8195 SCP: поддержка SoC MT8189.
    • Драйвер тактирования — добавлен MT8173 MFG_TOP.
    • Контроллер PCIe — поддержка SoC EcoNet EN7528 и EN751221.
    • PCIe Gen3 — добавлен memory-region для ограниченного DMA-буфера.
    • Wi-Fi (mt76): поддержка MT7928, NAN для MT7925, улучшения энергосбережения AP для MT7996.
    • Драйверы SoC
      • Исправлена отсутствующая проверка ошибки в mtk-socinfo и недостающий MODULE_DEVICE_TABLE() в mtk-dvfsrc.
      • Переработан способ задания таблиц MMSYS через макрос.
    • Device tree Arm64
      • Правки отступов и документации для MediaTek Mute-X.
      • Исправления предупреждений dtbs-check для MT8390 и MT6795.
      • RTC у PMIC MT6359 теперь использует правильную compatible-строку.
      • SoC MT8183/86/88/92/95 получили поддержку UART DMA.
      • MT8186 получил новую таблицу CCI OPP против зависаний.
      • EVK Genio 510/700/1200 и Radxa NIO-12L получили корректное дерево питания PMIC.
  • Другие новые платформы и SoC Arm
    • Altera — Agilex72 SoC FPGA на базе Cortex-A720.
    • Apple — поддержка M3 Pro, Max и Ultra (на основе базовой поддержки M3 из Linux 7.2).
    • NVIDIA — Lenovo ThinkEdge SE70 (Jetson Xavier NX).
    • NXP — модуль Variscite DART-MX8M PLUS (плата Sonata) и VAR-SOM-MX8 QuadMax (плата Symphony).
    • Texas Instruments — BeagleBadge (AM62L3) и Variscite VAR-SOM-AM62 с платой Symphony.
  • Изменения для Raspberry Pi
    • V3D — задержка автосна PM runtime снижена со 100 до 50 мс: после устранения проблем когерентности кэша и MMU на BCM2711 (Raspberry Pi 4) раздутая задержка больше не нужна.
    • VC4 — исправлено выделение слотов binner на простаивающем GPU (баг Raspberry Pi 3) и устранён UAF при отключении.
    • Добавлена поддержка 7-дюймового дисплея Raspberry Pi Touch Display 2 на плате Toradex Verdin.

Обновления RISC-V в Linux 7.3

В архитектуре RISC-V тоже немало изменений:

  • Добавлены начальные определения и обнаружение расширений ISA Smcsrind, Sscsrind, Smcntrpmf, Ssccfg, Smcdeleg, Zicclsm, Ziccamoa, Ziccif, Ziccrse, Za64rs и Ssqosid.
  • Улучшена реализация update_mmu_cache_range() за счёт flush-by-ASID и использования расширения Svinval на поддерживающих его микроархитектурах.
  • Сокращено выделение теневого стека CFI (до 512 МБ) ради экономии виртуального адресного пространства.
  • Добавлена начальная поддержка переключения контекста CPU для QoS-тегирования (Ssqosid).
  • Код теста скорости невыровненного векторного доступа сделан синхронным для устранения ряда багов.
  • Включён ARCH_HAS_ACPI_TABLE_UPGRADE для RISC-V (по аналогии с ARM64 и x86).
  • Смещения секций vDSO извлекаются на этапе сборки, а не во время выполнения.
  • Для управления инструкциями расширений Zacas и Zabha используются директивы ассемблера вместо флагов -march.
  • Добавлен kselftest для поддержки kprobes на инструкции c.jal.
  • При доступности сервисов UEFI runtime они используются для перезапуска и выключения.
  • Резервирование непрерывной DMA-памяти перенесено на более поздний этап загрузки.
  • Запрещены probe на обработчиках точек останова во избежание бесконечной рекурсии в do_trap_break().
  • Прочие мелкие исправления: упрощение makefile vDSO, пометка default_power_off() как __noreturn, правки путей ошибок в драйвере PMU SBI и единообразие написания расширений.
  • Alibaba T-Head (TH1520) — исправления драйвера DRM th1520-dw-hdmi, стиль PWM и правки device tree для платы LicheePi 4a.
  • Canaan/Kendryte — добавлен 64-битный ИИ-SoC K230 (развитие K210) и начальная поддержка CanMV-K230 и K230-EVB.
  • Microchip — датчик температуры/напряжения PolarFire SoC (hwmon).
  • Sophgo — SG2000 добавлен и для RISC-V наряду с вариантами серии cv18xx; начальная поддержка плат Milk-V Duo S (SG2000) и Duo 256M (SG2002).
  • Spacemit
    • Тепловой контроль — devm-действие для очистки регистров прерываний и сэмплирования на K1.
    • PHY — драйвер USB3/PCIe comb PHY.
    • Контроллер PCIe — добавлен MODULE_DEVICE_TABLE() для автозагрузки модуля.
    • Драйвер тактирования — такт для контроллера UFS и такт I2S с исправлениями.
    • Изменения device tree для SoC K3 и K1 и соответствующих плат (SD-карта, QSPI, SPI, USB, I2S, cpufreq и др.).
  • StarFive — исправления утечек ресурсов и обработки runtime PM в контроллере PCIe, поддержка контроллера SPI-флеш JHB100 SFC и bindings для JHB100 PLIC.
реклама кормит Уточку 🦆

Изменения MIPS

Как обычно, обновлений MIPS немного:

  • Код GPIO переведён на swnodes.
  • Переработан код GPIO для TXX9.
  • Включён multi-VPE для econet.
  • Чистки и исправления.

Полный список изменений включает описание двухъядерного процессора 34Kc для econet, поддержку multi-vpe в EN751221, исправление пропуска системных вызовов через PTRACE_SYSCALL, перевод кнопок BCM47XX на software nodes, регистрацию software node для GPIO-контроллеров ssb и bcma, а также серию правок кода TXX9 (переход на динамическое выделение базы GPIO, таблицы поиска GPIO для светодиодов, удаление устаревших функций).

реклама кормит Уточку 🦆

Всего релиз содержит 18 765 не-merge коммитов, из которых 1 920 помечены тегом «Assisted-by» — то есть около 10% изменений в ядре были сделаны при участии ИИ-агентов (или как минимум их авторы добровольно об этом сообщили). Требование проставлять тег «Assisted-by» будет отменено в следующих выпусках.

Подробный список изменений Linux 7.3 можно получить командой git log v7.2..v7.3-rc7 --stat либо прочитать на ресурсе Kernelnewbies.