May 17, 2019

Релиз Linux 5.1: основные изменения, архитектура Arm, MIPS и RISC-V

Линус Торвальдс объявил о выпуске Linux 5.1:

Я немного припозднился, обычно я делаю это раньше. Отчасти потому, что сегодня я получил несколько небольших предложений по изменению кода, но и потому, что я не ожидал синхронизации предстоящего окна слияния 5.2.
Но, предложения по изменению кода, пришедшие в последние минуты, на самом деле были не большими, чтобы оправдать задержку, и, надеюсь, синхронизация окна слияния также не будет мучительной. Так случилось, что выпускной в колледже моего старшего случился прямо в середине предстоящего окна слияния, так что я был, фактически, в автономном режиме в течение нескольких дней. В худшем случае я расширю его, чтобы все получилось, но не думаю, что это понадобится.

Для версии 5.1. прошедшая неделя прошла довольно спокойно, и финальный патч от rc6 не такой уж и большой. Shortlog добавлен, но это небольшие изменения во всем. Сеть, код файловой системы, драйверы, инструменты, обновления arch. Ничего особенно странного не выделяется.

В целом, 5.1 выглядит вполне нормально с более чем 13k фиксациями (плюс еще 1k +, если вы считаете слияния). Что, в наши дни, почти наш нормальный размер. Невозможно свести это к нормальному короткому журналу, со всей работой.

Проверим, Линус :)

Релиз Linux 5.0 принес нам шифрование файловой системы Adiantum для fscrypt, поддержку AMDGPU FreeSync, поддержку файла подкачки Btrfs, планирование энергопотребления для Arm big.LITTLE и многие другие изменения.Это был также первый выпуск, где мы начали освещать журнал изменений RISC-V.

Некоторые заслуживающие внимания изменения в Linux 5.1 включают в себя:

  • Более высокая производительность асинхронного ввода-вывода — io_uring — это новый асинхронный интерфейс, добавляющий быстрый масштабируемый асинхронный ввод-вывод в Linux, как буферизованный, так и небуферизованный. Более подробную информацию можно найти в этом 16-страничном PDF-файле.
  • «Готовимся» к 2038 году — Linux 5.1 включает системные вызовы для 32-битной архитектуры с 64-битной структурой time_t. Это означает, что теперь у нас есть системные вызовы с 64-битным time_t на всех архитектурах.
  • Возможность настройки уровней сжатия Zstd (Zstandard) в BTRFS  — Linux 4.14 добавил поддержку zstd в BTRFS, но вы не смогли настроить уровень сжатия. Теперь это можно сделать с помощью опции монтирования: -o compress=zstd:level
  • TEO, регулятор событий, ориентированный на события таймера — подсистема cpuidle решает, когда перевести ЦП в состояние глубокого покоя, для экономии энергии. Если в данной системе нет tickless, она будет использовать регулятор «меню» по умолчанию, а если есть tickless, регулятором CPUIdle по умолчанию для нее будет «ladder». TEO является альтернативой «меню», которое предлагает улучшенную производительность без дополнительных затрат на энергопотребление. Выбранный регулятор холостого хода можно проверить в /sys/devices/system/cpu/cpuidle/current_governor_ro , и вы можете изменить его во время загрузки с cpuidle.governor=teo параметра загрузки cpuidle.governor=teo .

Некоторые изменения в Linux 5.1, связанные с архитектурой Arm:

Allwinner:

  • A10 - драйвер декодирования/кодирования видео Cedrus, PMU
  • A13 — LCD включен на планшетах A13 Q8
  • A20 — Улучшения аудиокодека
  • А23 — Дисплей pipeline; LCD включен на планшетах Q8 A23
  • A64 — ARM Architectural Timer, исправление ошибок, PMU, CSI
  • A80 — поддержка GMAC
  • CSI в целом — поддержка RGR565; поддержка JPEG
  • Поддержка технологии Broadcom (модули AMPAK) Bluetooth на Banana Pi M2 + и Banana Pi M2 Ultra
  • Rockchip:
  • RK3328 - добавлен основной драйвер аудио кодека
  • Драйвер HDMI — обходной путь переполнения для Rockchip
  • Clock drv — расчет скорости Fix RK3328 PLL
  • Новое оборудование — FriendlyELEC NanoPC-T4 и NanoPi M4 , Radxa RockPi4
  • Amlogic:
  • Драйвер контроллера тактовой частоты
  • Добавлен всегда включенный контроллер тактовой частоты для Amlogic G12A
  • Добавлено 32k выборок тактовой частоты для Amlogic AXG
  • Добавлены Mali GPU clocks на Amlogic Meson8
  • Добавлен драйвер контроллера тактовой частоты для Amlogic G12A EE
  • Различные исправления для VPU clocks
  • Добавлен драйвер Meson RTC
  • Добавлена поддержка Amlogic (raw) NAND flash контроллера
  • Обновления Kconfig для v5.1 — arm64: meson: включен g12a контроллер тактовой частоты; удалены ненужные COMMON_CLK_AMLOGIC
  • Обновления дерева устройств:
  • Больше возможностей для платы Endless EC100
  • Поддержка датчика температуры чипа
  • Исправлены выводы Ethernet
  • Добавлен Mali-450 GPU
  • Обновления дерева устройств ARM64:
  • S400: исправлены проблемы с максимальной скоростью SD/eMMC; аудио: добавлена поддержка SP/DIF
  • GX: поддержка SimpleFB
  • Новое оборудование — ТВ-приставка X96 Max (S905X2 / G12a), плата разработки Elgin RV1108 R1 на базе Rockchip RV1108
  • Samsung:
  • Звуковые драйверы — «большое обновление и очистка драйверов Samsung»
  • Исправления для обработки тайм-аута при загрузке вторичного ЦП Exynos и для уведомителя S3C24xx DVS
  • Изменения defconfig для Linux 5.1 — включено больше драйверов в s5pv210 defconfig для мобильных устройств семейства Aries (например, Samsung Galaxy S)
  • DTS ARM изменения:
  • Расширена поддержка мобильных устройств семейства Aries (например, Samsung Galaxy S) на базе S5Pv210 SoC: DRM Rotator, FIMD, PWM vibrator, выключение, сенсорный экран, Broadcom BCM4329 Bluetooth и cpufreq. Удалены жестко запрограммированные bootargs на семействе Galaxy S (надлежащая поддержка в U-Boot).
  • Исправлены мелкие DTC предупреждения.
  • Исправлены конфликтующие настройки Exynos4412 Odroid X2 / U3 и настройки регулятора eMMC GPIO.
  • Зафиксирован вывод eMMC RTSN, ломающий правильную перезагрузку на X2.
  • Включен ADC на плате Odroid HC1.
  • Исправлена ошибка реестра clkout на Exynos3250.
  • Разрешено использование earlycon на плате Arndale.
  • Отключен ARM PMU на Odroid XU3 Lite, поскольку он заблокирован доверенным программным обеспечением.
  • Добавлена поддержка вторичного DAI для плат Odroid XU3 и XU4.
  • Qualcomm:
  • Драйвер синхронизации — добавлен управляемый RPM Qualcomm MSM8998, поддержка IPA clk на контроллерах Qualcomm RPMh clk, обновления для Qualcomm MSM8998 GCC clks
  • Звуковой драйвер — добавлен аудиокодек Qualcomm WCD9335
  • Драйвер Power domain для телефонных чипов Qualcomm Snapdragon
  • Обновления ARM64 :
  • Добавлен MSM8998 RPMCC, I2C и USB-связанные узлы
  • Добавлен узел MSM8996 rpmpd
  • Отключен MSM8996 VFE smmu, чтобы исправить нарушение безопасности
  • Добавлены узлы W2 I2C, SPI, rpmcc, uart и WCN3990 на QCS404
  • Включена поддержка SDCC1 HS400 на QCS404
  • Добавлено множество узлов в SDM845 — SD, UFS, USB, LPASS, SCM, QSPI, PDC, DPU, videocc, GPU, соединены между собой шины RPMh, WLAN WCN3990
  • Добавлены диапазоны gpio в SDM845 TLMM
  • Добавлены термальные точки отключения к процессору
  • Добавлена информация SDM845 IOMMU для SDHC, USB и WLAN
  • Исправлен аргумент ячейки часов MSM8916.
  • Изменения дерева устройств для Linux 5.1:
  • Исправлены флаги GIC IRQ и состояние GSBI на MSM8660
  • Добавлен USB OTG, диапазоны gpio и поддержка Wi-Fi на MSM8974 Hammerhead
  • Удален skeleton.dtsi на IPQ4019
  • Mediatek:
  • Аудио драйвер — добавлены драйверы MediaTek BTCVSD, MT8183 и MT6358
  • dt-binding документация uart для SoC Mediatek MT8183 платформы
  • DRM — добавлено устройство кадрового буфера Mediatek
  • Clock — 3-е исправление ECO для SoC Mediatek MT2712
  • Поддержка новой платформы беспроводного маршрутизатора MT7629 после MT7623
  • Обновление GNSS — новый драйвер для приемников на базе Mediatek
  • Другие новые аппаратные платформы Arm и SoC:
  • Bitmain — Bitmain BM1880 SoC с 2-мя процессорами Cortex-A53, ядром RISC-V и процессором Tensor
  • Broadcom — Raspberry Pi Model 3 A + поддерживается как в 32-разрядной версии и 64-битный режим; WiFi-маршрутизатор Phicomm K3 (BCM47094)
  • Intel — Chameleon96 96Boards с Cyclone V SoC с FPGA + два Arm Cortex-A9
  • NVIDIA — NVIDIA Shield TV (Darcy) на базе Tegra210
  • NXP:
  • SoC — NXP i.MX8QuadXPlus 64-битный Cortex-A35
  • SoM — Logic PD i.MX6QD SoM и оценочная плата, Y Soft IOTA Семейство плат Draco/Hydra/Ursa на базе i.MX6DL, Phytec phyCORE i.MX6 UltraLite SoM и оценочный модуль
  • SBC — разработка MYIR Tech MYD-LPC4357 на базе микроконтроллера Arm Cortex-M4/M0 Arm NXP LPC4357, Oxalis Evalkit V100 на базе NXP Layerscape LS1012A в форм-факторе 96Boards
  • Renesas — RZ/A2M (R7S9210) 32-битный Cortex-A9 в режиме реального времени процессор RZ/G2E (r8a774c0) 64-битный Cortex-A53 SoC “для насыщенной графики Приложения»
  • Texas Instruments — Bosch Guardian (AM335x), Winterland IceBoard для телескопов (AM3874)

Краткое описание журнала изменений MIPS для Linux 5.1:

  • Поддержка регистра MIPSr6 ​​MemoryMapID и инструкции Global INValidate TLB
  • (GINVT), позволяющих более эффективно поддерживатьTLB при работе на процессоре, таком как I6500.
  • Включена огромная поддержка страницы для MIPS64r6.
  • Оптимизирована синхронизация кеша после DMA, полностью удален этот код для конфигураций ядра, в которых мы знаем, что в этом нет необходимости.
  • Количество страниц, выделенных для стеков прерываний, теперь рассчитывается правильно, тогда как раньше мы тратили слишком много памяти в некоторых конфигурациях.
  • Платформа ath79 мигрирует в дерево устройств.
  • Платформа bcm47xx видит исправления для платы Buffalo WHR-G54S.
  • Платформа ingenic / jz4740 получает поддержку добавленных деревьев устройств.
  • Платформы cavium_octeon, lantiq, loongson32 и sgi-ip27 все видят чистки, как и различные части кода основной архитектуры.

Обновления RISC-V для Linux 5.1:

  • Несколько чисток нашего ядра, большинство из которых были замечены впервые.
  • Предоставлен HWCAP, который содержит расширения ISA, поддерживаемые всеми включенными процессорами, как предполагается, просто глядя на первый включенный процессор.
  • Больше не надо ожидать загрузки всех частей.
  • Реализация карты исправлений, которая связана с некоторыми чистками в нашем коде MM.

Вы можете прочитать полный список изменений Linux 5.1 с комментариями только здесь.

Источник: cnx-software.com