LINUX.ORG.RU

В Linux 7.2 вошёл набор архитектурных изменений для ARM64

 ,


0

1

В ветку разработки Linux 7.2 принят набор обновлений для архитектуры ARM64/AArch64. Изменения собраны в pull request сопровождающего ARM64-порта Уилла Дикона и описаны в официальном теге arm64-upstream. В теге перечислены новые HWCAPS для расширений 2025 dpISA, доработки обработки CPU errata, подготовка к удалению секций kernel data и BSS из linear map, поддержка MPAM v0.1, изменения в SVE/SME, perf, selftests и описании системных регистров.

Часть контекста релиза — влияние AI-инструментов на разработку ядра. В материале Phoronix приводится комментарий Уилла Дикона из pull request: по его словам, «новый мир AI tooling» замедлил работу над функциональными изменениями, а дополнительные раунды проверки Sashiko вытеснили часть патчей в следующий цикл. Phoronix подчёркивает, что ARM64 — не единственное направление ядра, где сопровождающие сталкиваются с потоком AI/LLM-сгенерированных патчей.

Главное техническое изменение — добавление новых аппаратных capability-битов для 2025 dpISA. В патче arm64/cpufeature объясняется, что эти расширения в основном добавляют новые инструкции, а не новое архитектурное состояние, поэтому ядру не нужно управлять дополнительным контекстом: достаточно сообщить userspace, какие инструкции доступны на конкретном CPU. Для этого в ARM64 добавлены новые HWCAP3-флаги, включая sveb16mm, sve2p3, smelut6, sme2p3, f16mm, f16f32dot, f16f32mm и svelut6.

В подсистеме исправлений аппаратных ошибок расширена обработка errata. В официальном теге arm64-upstream указаны обходы для TLBI-проблем на дополнительных CPU, а в дереве arm64 отдельно упоминаются патчи для Microsoft Azure Cobalt 100, NVIDIA Olympus и разных Arm CPU. Также добавлено отключение CnP на HiSilicon HIP09; соответствующая серия патчей описывает проблему как отклонение поведения TLB от архитектурной спецификации при установленном бите CnP в TTBRx_ELx, что может приводить к устаревшим трансляциям и конфликтам TLB между ядрами (Patchew).

Для подсистемы памяти добавлена подготовительная работа к тому, чтобы убрать секции kernel data и BSS из linear map. В теге arm64-upstream это описано именно как preparatory work. Отдельная серия arm64: Unmap linear alias of kernel data/bss объясняет мотивацию: на части систем размещение ядра может быть предсказуемым, а writable alias секций data/BSS в linear map ослабляет KASLR, поскольку даёт атакующему более понятную цель для записи.

Ещё одно важное направление — MPAM v0.1. В теге arm64-upstream указано добавление поддержки версии 0.1 архитектуры MPAM, а в обсуждении серии arm_mpam: Add support for the MPAM v0.1 architecture version речь идёт о доработке ARM MPAM-драйвера и проверке версии MPAM MSC. MPAM используется для разбиения и мониторинга ресурсов памяти и кэша, что важно для серверных систем и изолированных нагрузок.

Также обновлены низкоуровневые части SVE/SME. В arm64-upstream говорится о значительной чистке кода управления состоянием в основной архитектурной части и KVM, корректном использовании ширины регистров при save/restore для SVE/SME и экспонировании обращений к памяти при сохранении/восстановлении SVE/SME для санитайзеров. Это снижает риск скрытых ошибок в коде работы с векторным состоянием.

Основные функции и изменения

  • Новые HWCAPS для 2025 dpISA. Ядро теперь может сообщать пользовательским программам о наличии новых инструкций ARM64 через AT_HWCAP. Это нужно библиотекам, JIT-компиляторам, рантаймам и математическим пакетам, чтобы выбирать оптимизированный код под конкретный CPU. Набор новых признаков описан в патче arm64/cpufeature: Define hwcaps for 2025 dpISA features.

  • Поддержка sveb16mm и sve2p3. Добавлены признаки новых SVE-возможностей. Они важны для векторизированных вычислений, где приложение должно понимать, какие варианты SVE-инструкций доступны. Эти флаги перечислены в том же патче по 2025 dpISA HWCAPS.

  • Поддержка smelut6 и sme2p3. Добавлены capability-флаги для новых возможностей SME. SME используется в задачах матричных вычислений, поэтому такие признаки полезны для AI/HPC-нагрузок и оптимизированных библиотек. Поддержка этих признаков входит в общий набор 2025 dpISA HWCAPS.

  • Новые FP16-related HWCAPS: f16mm, f16f32dot, f16f32mm. Эти флаги описывают поддержку инструкций для операций с половинной точностью и смешанными вычислениями FP16/FP32. Практический смысл — более точный выбор ускоренных путей в численных библиотеках. Флаги перечислены в патче arm64/cpufeature.

  • svelut6. Добавлен HWCAP для LUT6 в связке с SVE. Это позволяет userspace определять поддержку соответствующих табличных операций и не полагаться на грубую проверку модели процессора. Проверка этого признака также добавлена в selftests для ARM64 HWCAPS (LKML).

  • Расширенная обработка CPU errata. Добавлены mitigation-патчи для TLBI errata на Microsoft Azure Cobalt 100, NVIDIA Olympus и других Arm CPU, а также отдельная логика отключения CnP на HiSilicon HIP09. Эти изменения перечислены в теге arm64-upstream, а проблема HiSilicon HIP09 отдельно описана в серии патчей на Patchew.

  • Подготовка к удалению kernel data/BSS из linear map. Подсистема памяти получила серию изменений, которые готовят ARM64 к более строгому отображению памяти ядра. Цель — уменьшить лишние writable/accessible alias-отображения и улучшить защитные свойства ядра. Мотивация этой работы описана в серии arm64: Unmap linear alias of kernel data/bss.

  • MPAM v0.1. Добавлена поддержка версии 0.1 архитектуры MPAM и обновлена проверка версии MPAM MSC в драйвере arm_mpam. Это часть инфраструктуры для управления и мониторинга ресурсов памяти/кэша на ARM-системах; изменение указано в arm64-upstream и обсуждалось в серии arm_mpam.

  • Чистка SVE/SME save/restore. Обновлён низкоуровневый код сохранения и восстановления состояния SVE/SME, включая KVM. Исправления важны для корректной работы векторного состояния при переключении задач и виртуализации. Это перечислено в разделе Floating point / SVE / SME тега arm64-upstream.

  • Selftests для новых возможностей. В kselftest добавлено покрытие для новых 2025 dpISA HWCAPS, а также тесты для POE-контекста в signal frame. Это помогает ловить регрессии в ABI и обработке сигналов. Отдельный патч называется kselftest/arm64: Add 2025 dpISA coverage to hwcaps.

  • Perf-исправления. В ARM64-блок вошли исправления кодировок событий DVM node в драйвере CMN, унификация пользовательского имени Qualcomm и обновление записи MAINTAINERS для HiSilicon PMU. Эти изменения перечислены в разделе Perf официального тега arm64-upstream.

  • Новые системные регистры и ESR-кодировки для HDBSS. Добавлена информация о регистрах и кодировках ESR для HDBSS. Это инфраструктурная работа: она подготавливает ядро к корректному описанию и обработке новых архитектурных возможностей ARM. Изменение указано в разделе System registers тега arm64-upstream.

Источник

Перемещено hobbit из kernel

★★★★★

Последнее исправление: unclestephen (всего исправлений: 2)
Ответ на: комментарий от firkax

Оффтопик-лист п.27 и -20 читается.

К сожалению, при удалении неподтверждённых топиков такой возможности нет. И это нужно исправить!

dataman ★★★★★
()
Ответ на: комментарий от firkax

как говорит Филипп Бедросович, абсолютно любой может ошибиться дверью

unclestephen ★★★★★
() автор топика
Ответ на: комментарий от unclestephen

и в том, что тут 100 процентов видна работа ИИ, причём кривее, чем в последних обычных новостях.

cetjs2 ★★★★★
()
Ответ на: комментарий от cetjs2

Я подумал и согласился. Новость про 7.1 ещё стоила того, чтобы её вычистить и подтверждать как мини. Это – нет.

hobbit ★★★★★
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария