Это не вопрос про пропуск PCI под гипервизором Xen.
У меня есть карта расширения PCIe с 4 отдельными контроллерами USB3, которая работает с несколькими разными ядрами Linux, но не при запуске тех же ядер Linux под гипервизором Xen. Карта имеет несколько мостов PCIe до подключения к контроллерам USB3, что может иметь значение.
Я тестировал настолько чисто, насколько это возможно, используя initramfs, который загружает только некоторые модули и монтирует / proc /, / sys / и / dev / перед тем, как перетащить меня в оболочку.
Из оболочки initramfs, пока загружены драйверы xhci_pci и xhci_hcd, карта расширения работает нормально, протестировано путем подключения клавиатуры к одному из портов карты, чтобы увидеть, могу ли я ввести текст в консоль. Я также протестировал подключение запоминающего устройства USB к одному из портов на дополнительной карте, а затем запустил lsusb
чтобы узнать, есть ли устройство в списке.
Итак, карта не сломана, и порты не сломаны, и устройства, используемые для тестирования портов, не сломаны.
Используя те же ядра Linux, которые работают без Xen, с теми же загруженными модулями, карта не работай.
Выход lspci -vt
идентична в обоих случаях выше.
Выход lspci -v
идентично, за одним исключением:
Работает lspci -v
:
00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 07) DeviceName: Onboard - Other Subsystem: Gigabyte Technology Co., Ltd Device 5000 Flags: bus master, fast devsel, latency 0 Capabilities: [e0] Vendor Specific Information: Len=10 <?> Kernel driver in use: skl_uncore
Нерабочий lspci -v
в выводе отсутствует следующая строка:
Kernel driver in use: skl_uncore
Однако модуль skl_uncore не компилируется как модуль, а скомпилирован в ядро, поэтому строка «Используемый драйвер ядра» отсутствует, по крайней мере, не из-за того, что модуль не загружается.
Топология шины PCI:
-[0000:00]-+-00.0 Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers +-01.0-[01-06]----00.0-[02-06]--+-01.0-[03]----00.0 Renesas Technology Corp. uPD720202 USB 3.0 Host Controller | +-02.0-[04]----00.0 Renesas Technology Corp. uPD720202 USB 3.0 Host Controller | +-03.0-[05]----00.0 Renesas Technology Corp. uPD720202 USB 3.0 Host Controller | \-04.0-[06]----00.0 Renesas Technology Corp. uPD720202 USB 3.0 Host Controller ... snip ...
Проверенные гипервизоры Xen:
Ядра Linux протестированы:
VT-d включен.
Из информации xl:
release : 5.5.6-1-default version : #1 SMP Mon Feb 24 09:02:31 UTC 2020 (4a830b1) machine : x86_64 ... hw_caps : bfebfbff:77faf3ff:2c100800:00000121:0000000f:009c6fbf:00000000:00000100 virt_caps : pv hvm hvm_directio pv_directio ... xen_version : 4.13.0_08-1 xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64 ... xen_commandline : dom0-iommu=strict=1 iommu=required,quarantine,verbose,debug reboot=no,power dom0_mem=min:6144M,max:6144M vga=ask
(Точная карта расширения PCIe - это https://www.startech.com/Cards-Adapters/USB-3.0/Cards/PCI-Express-USB-3-Card-4-Dedicated-Channels-4-Port~PEXUSB3S44V)