Оперативная память

Регион CXL

Определение

Регион CXL — активный диапазон CXL-памяти, отображённый в системное физическое адресное пространство через HDM-декодеры. Один регион может включать память одного или нескольких CXL-устройств.

Также ищут: CXL region · регион CXL-памяти · regionZ

Зачем это знать

Приёмка CXL-памяти не заканчивается на обнаружении memdev и создании активного региона. В Linux отдельно прослеживают передачу области через DAX к memory-hotplug, затем проверяют состояние конкретных блоков и их зоны. Настройка автоматического включения описывает политику, а не подтверждает состояние уже добавленной памяти.

Связи из словаря

Карта понятия

Доказательная часть

Что подтверждено

  1. В Linux CXL region представляет активную ёмкость памяти, отображённую в системное физическое адресное пространство.

    Граница применимости: Linux 6.12 CXL Regions; потенциальные диапазоны root decoder и активный region — разные сущности.

  2. Активный CXL region задаётся HDM-декодерами на пути через мосты хоста, коммутаторы и конечные устройства.

    Граница применимости: Linux 6.12 CXL Regions; конкретный путь зависит от топологии платформы.

  3. Одинаковый набор CXL-устройств не обязан давать одинаковую карту памяти: Linux допускает разные CXL.mem-топологии на одном аппаратном составе, например с разным чередованием адресов.

    Граница применимости: Linux 6.12 theory of operation; это возможность конфигурации, а не обещание, что любая платформа поддерживает все варианты.

  4. Прошивка платформы задаёт доступные варианты чередования, а PCIe-топология ограничивает, какие конечные устройства могут участвовать в конкретной схеме декодирования CXL.

    Граница применимости: Linux 6.12; точные варианты interleave и состав endpoints зависят от платформы.

  5. Для чередования в CXL region задают число участников и гранулярность данных, приходящуюся на каждого участника полосы.

    Граница применимости: Linux 6.12 структуры cxl_region_params и cxl_decoder; это параметры отображения памяти, а не измеренная производительность приложения.

  6. В описанном Linux пути передачи CXL-памяти распределителю страниц ядра драйвер DAX передаёт область с признаком Driver Managed подсистеме memory-hotplug.

    Граница применимости: Текущая документация Linux CXL, Memory Hotplug; фиксированный выпуск страницы не установлен. Речь о включении памяти в распределитель страниц ядра, а не обо всех способах доступа через DAX. Передача области не доказывает включение всех её блоков.

  7. В описанном CXL-пути блоки памяти созданного региона становятся доступны распределителю страниц Linux после включения (online). Используют ZONE_NORMAL для почти любых выделений или ZONE_MOVABLE для перемещаемых страниц; выключенные блоки (offline) туда не включены.

    Граница применимости: Описанный CXL/DAX путь к распределителю страниц. Это не полный перечень зон Linux и не утверждение о любом способе доступа через DAX. Online не гарантирует выделение памяти любому приложению.

  8. В Linux state показывает состояние блока памяти. У включённого блока valid_zones показывает текущую зону. У выключенного первая колонка показывает, какую зону ядро выбрало бы при включении сейчас без явного указания зоны. Наличие valid_zones зависит от CONFIG_MEMORY_HOTREMOVE.

    Граница применимости: Текущая документация Linux memory-hotplug; фиксированный выпуск не установлен. У включённого блока none означает несколько зон или NUMA-узлов; такой блок нельзя перевести в offline. Для выключенного блока valid_zones не подтверждает фактическое включение.

  9. В Linux изменение auto_online_blocks задаёт режим для последующих добавлений блоков памяти и не подтверждает состояние уже существующих блоков. В отдельных случаях автоматическое включение завершается сбоем; ядро не повторяет неудавшуюся попытку.

    Граница применимости: Текущее руководство Linux memory-hotplug; фиксированный выпуск не установлен. Описан механизм, а не результат на конкретной системе. Документация отмечает, что в стандартных конфигурациях сбой автоматического включения не ожидается.

Перед спецификацией

Что проверить

  1. Проверьте, какие устройства CXL-памяти обнаружены системой.
  2. Проверьте активные регионы и их участников отдельно от списка memdev.
  3. Зафиксируйте число участников и гранулярность чередования, если оно используется.
  4. Сопоставьте регион с NUMA-топологией и измерьте целевую нагрузку.
  5. Сопоставьте активный регион с соответствующими блоками памяти; не выводите состояние блоков из самого факта создания региона.
  6. Зафиксируйте state каждого блока. В valid_zones различайте текущую зону включённого блока и возможные зоны выключенного; первая колонка — выбор ядра без явного указания зоны.
  7. Учитывайте CONFIG_MEMORY_HOTREMOVE для valid_zones; none у включённого блока означает несколько зон или NUMA-узлов.
  8. Фиксируйте auto_online_blocks отдельно от наблюдаемого состояния: настройка действует на последующие добавления.
Открытые основания

Первоисточники

  • Документация3
  • Официальная документация
    Compute Express Link Memory Devices Linux Kernel · Linux 6.12 documentation · проверено

    Описывает CXL memory devices, CXL.io/CXL.mem, Type-3 memdev, HDM-декодеры, регионы и конфигурируемую CXL.mem-топологию.

    Утверждения: 01 · 02 · 03 · 04 · 05

  • Официальная документация
    Memory Hotplug Linux Kernel · Текущая upstream-документация; фиксированный выпуск не установлен · проверено

    Описаны путь CXL через DAX к memory-hotplug и состояния новых блоков, включая ZONE_NORMAL и ZONE_MOVABLE.

    Утверждения: 06 · 07

  • Официальная документация
    Memory Hot(Un)Plug Linux Kernel · Текущая upstream-документация; фиксированный выпуск не установлен · проверено

    Описаны state и valid_zones, CONFIG_MEMORY_HOTREMOVE, auto_online_blocks и ограничения автоматического включения.

    Утверждения: 07 · 08 · 09

Подтвердите действие