Контекст: MONAKA выходит в свет
После двух лет разработки и патчей для GCC, Fujitsu официально представила серверный процессор MONAKA на базе архитектуры ARM64. Это 144-ядерный чип, ориентированный на инфраструктуру искусственного интеллекта. Теперь, когда железо анонсировано, разработчики ядра Linux начали интегрировать специфические обходные пути (workarounds) для исправления аппаратных багов, выявленных в ходе тестирования.
Три критических исправления в ядре
Архитектура ARM64 в целом хорошо поддерживается Linux, но MONAKA требует специфических патчей для корректной работы. В текущем цикле обновлений были добавлены три ключевых исправления, затрагивающих фундаментальные аспекты работы процессора:
- Инвалидация TLB (Translation Lookaside Buffer): Обнаружено, что операции TLBI (TLB Invalidate), направленные на виртуальные (VA) или физические (IPA) адреса, могут не сработать в определенных сценариях. Ядро теперь принудительно отправляет дополнительные инструкции TLBI. Проблема актуальна только при использовании 64K-страниц (что рекомендуется для производительности).
- Ложные срабатывания PMU: Выявлена ошибка в работе счетчиков производительности (PMU), приводящая к ложному детектированию переполнения. Это могло вызывать «шторм прерываний» (interrupt storm), парализующий систему.
- Зависания ядер (Core Hang): Исправлена гонка данных при обработке прерываний SGI (Software Generated Interrupts). Если операция пересекается с обработкой прерывания более высокого приоритета или переходом ядра в спящий режим, запись в системный регистр может не завершиться, что приводит к висячему состоянию (hang) выдающего ядра.
Технические детали и поддержка
Детекция типа процессора MONAKA в ядре Linux реализована через новые патчи, что позволяет применять эти обходные пути только к соответствующему оборудованию, не влияя на другие системы. Для серверов MONAKA не требуется сложная настройка Device Trees, что упрощает интеграцию в стандартные серверные среды.
| Проблема | Симптом | Решение в ядре Linux |
|---|---|---|
| TLBI Invalidation Failure | Нечистая инвалидация кэша трансляций | Дополнительные инструкции TLBI (при 64K page size) |
| PMU Overflow Bug | Ложное прерывание, шторм прерываний | Коррекция логики детекции переполнения |
| SGI Race Condition | Зависание CPU-ядра | Защита от гонок при записи в системные регистры |
Значение для экосистемы
Появление этих патчей знаменует переход MONAKA из стадии «поддержки в GCC» в стадию полноценной поддержки в ядре Linux. Это критически важно для ранних адоптеров, планирующих развертывание AI-инфраструктуры на базе Fujitsu, так как без этих исправлений система может работать нестабильно или терять производительность из-за лишних прерываний.
Источник: Phoronix ↗
