Поддержка VT-d включена, но группы IOMMU отсутствуют

В системе Supermicro A2SDi-8C+-HLN4FAtom C3758 я вижу, что поддержка VT-d включена в BIOS, но я не могу найти группы IOMMU под Linux ( Fedora 31):

$ ls /sys/kernel/iommu_groups
$

Журналы ядра показывают, что обнаружен VT-d:

# journalctl -k | grep 'DMAR\|iommu' | sed 's/^.*kernel: //'
ACPI: DMAR 0x000000007E1629C0 000070 (v01 INTEL  BDW      00000001 INTL 00000001)
DMAR: Host address width 39
DMAR: DRHD base: 0x000000fed90000 flags: 0x1
DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap d2008c40660462 ecap f050da
DMAR: RMRR base: 0x0000007f0fa000 end: 0x0000007f10afff
DMAR-IR: IOAPIC id 2 under DRHD base  0xfed90000 IOMMU 0
DMAR-IR: HPET id 0 under DRHD base 0xfed90000
DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
DMAR-IR: Enabled IRQ remapping in x2apic mode
iommu: Default domain type: Translated

Нужно ли мне что-то настраивать, чтобы я также получал группы IOMMU?

Предыстория: я изучаю это, потому что не могу привязать устройство Ethernet к vfio-pci для dpdk:

# /usr/share/dpdk/usertools/dpdk-devbind.py --bind=vfio-pci 07:00.0
Error: bind failed for 0000:07:00.0 - Cannot bind to driver vfio-pci
# /usr/share/dpdk/usertools/dpdk-devbind.py --status        

Network devices using kernel driver
===================================
0000:05:00.0 'Ethernet Connection X553 1GbE 15e4' if=eno1 drv=ixgbe unused=vfio-pci *Active*
0000:05:00.1 'Ethernet Connection X553 1GbE 15e4' if=eno2 drv=ixgbe unused=vfio-pci 
0000:07:00.1 'Ethernet Connection X553 1GbE 15e4' if=eno4 drv=ixgbe unused=vfio-pci 

Other Network devices
=====================
0000:07:00.0 'Ethernet Connection X553 1GbE 15e4' unused=ixgbe,vfio-pci
# dmesg | tail -n 3
[  +0.169963] ixgbe 0000:07:00.0: complete
[  +0.000561] vfio-pci: probe of 0000:07:00.0 failed with error -22
[  +0.000040] vfio-pci: probe of 0000:07:00.0 failed with error -22
2
27.06.2020, 19:52
1 ответ

Вам нужно добавить intel_iommu=onв параметры загрузки ядра. По умолчанию этот параметр отключен (Я не знаю дистрибутива, в котором этот параметр по умолчанию установлен на on).

Если вы включили IOMMU в BIOS, таблица ACPI транслируется в DMAR ядра, и ядро ​​инициализирует это во время загрузки.

Когда вы установили intel_iommu=on, ядро ​​разделяет системные аппаратные ресурсы на группы IOMMU. Его количество и степень детализации зависят от аппаратного обеспечения. Подробности см. в VFIO -"Ввод/вывод виртуальных функций" .

2
18.03.2021, 23:24

Теги

Похожие вопросы