Процессорная топология

NUMA-привязка PCIe-устройства

Определение

NUMA-привязка PCIe-устройства — узел NUMA, к которому Linux относит устройство для описания его локальности. В sysfs это показывает numa_node; значение -1 означает, что узел системе неизвестен.

Также ищут: PCIe NUMA locality · NUMA node PCIe · локальность PCIe-устройства

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

Для сетевой карты, GPU или контроллера важно не только наличие слота, но и его положение относительно процессоров и памяти. При приёмке фиксируют numa_node и локальные CPU; если узел неизвестен, нельзя выдавать запасной список CPU за подтверждённую топологию.

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

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

NUMA-привязка PCIe-устройства
Доказательная часть

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

  1. ABI Linux определяет /sys/bus/pci/devices/.../numa_node как NUMA-узел, к которому подключено PCI-устройство, или -1, если узел неизвестен.

    Граница применимости: Linux PCI sysfs ABI; это представление топологии ядром, а не измерение задержки.

  2. Начальное значение numa_node Linux получает из ACPI _PXM или аналогичного источника прошивки.

    Граница применимости: Linux PCI sysfs ABI; конкретный источник зависит от платформы.

  3. Запись нового значения в numa_node считается обходом ошибки прошивки: Linux помечает ядро TAINT_FIRMWARE_WORKAROUND и рекомендует сообщить проблему поставщику системы.

    Граница применимости: Linux PCI sysfs ABI; это не штатная рекомендация по настройке производительности.

  4. В Linux 6.12 local_cpus и local_cpulist для PCI-устройства используют маску CPU его NUMA-узла, если узел известен.

    Граница применимости: Реализация pci_dev_show_local_cpu() при CONFIG_NUMA в Linux 6.12.

  5. Если NUMA-узел PCI-устройства неизвестен, Linux 6.12 возвращает в local_cpus/local_cpulist маску всех online CPU вместо найденной локальной группы.

    Граница применимости: Реализация pci_dev_show_local_cpu() при CONFIG_NUMA; это fallback интерфейса и не восстановленная физическая локальность.

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

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

  1. Запишите BDF и значение numa_node для устройства.
  2. Если numa_node известен, сопоставьте его с local_cpulist и размещением нагрузки.
  3. Если numa_node равен -1, не трактуйте local_cpulist как подтверждённую физическую локальность.
  4. Не переписывайте numa_node ради косметики: сначала разберите прошивку и поддержку платформы.
Открытые основания

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

  • Документация2
  • Официальная документация
    ABI testing symbols: sysfs-bus-pci The Linux Kernel documentation · документация ABI ядра Linux (sysfs-bus-pci), страница открыта 7 сентября 2026 года · проверено

    Открыт редактором 7 сентября 2026 года, заголовок документа сверен.

  • Официальная документация
    Linux v6.12 — drivers/pci/pci-sysfs.c Linux kernel maintainers / torvalds/linux · исходный код ядра Linux, тег v6.12, drivers/pci/pci-sysfs.c, страница открыта 7 сентября 2026 года · проверено

    Открыт редактором 7 сентября 2026 года, файл по тегу v6.12 сверен. Официальная реализация, не ABI-файл.

Следующий шаг

Сформулируйте задачу и уточните требования к своей системе.

Подготовить состав проекта

Откроется черновик вопроса. Отправьте его, когда будете готовы.

Сообщить об ошибке

Опишите проблему — постараемся исправить как можно скорее.

Спасибо!

Получили ваше сообщение.
Подтвердите действие