У меня есть хост-сервер Debian 10 и гость Ubuntu 20.04 с KVM. Сервер Ubuntu создан с виртуальная установка
и работает как положено после установки. Я пытаюсь использовать транзитную передачу PCI для передачи рейд-контроллера (Adaptec 81605Z) гостю. С вирш редактировать my_vm
я добавил
<hostdev mode='subsystem' type='pci' managed='yes'>
<driver name='vfio'/>
<source>
<address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</source>
</hostdev>
к конфигурации. Затем я использовал virsh nodedev-dettach pci_0000_01_00_0
отсоединить рейд-контроллер от хоста, после чего lspci-nnv
показывает
01:00.0 Контроллер шины RAID [0104]: Adaptec Series 8 12G SAS/PCIe 3 [9005:028d] (версия 01)
Подсистема: Adaptec Series 8 12G SAS/PCIe 3 [9005:0557]
Флаги: fast devsel, IRQ 16
Память на уровне a2100000 (64-разрядная, без предварительной выборки) [размер = 1M]
Память на уровне a2280000 (64-разрядная, без предварительной выборки) [размер = 1 КБ]
Порты ввода-вывода на 4000 [размер = 256]
Расширение ПЗУ на a2200000 [отключено] [размер = 512K]
Возможности: [80] Управление питанием версии 3
Возможности: [90] MSI: Enable- Count=1/32 Maskable+ 64bit+
Возможности: [b0] MSI-X: Enable- Count=64 Masked-
Возможности: [c0] Express Endpoint, MSI 00
Возможности: [100] Расширенные отчеты об ошибках
Возможности: [300] #19
Используемый драйвер ядра: vfio-pci
Модули ядра: aacraid
Однако, когда я запускаю свою виртуальную машину с вирш запустить my_vm --console
, консоль просто зависает, ничего не печатается, значит, что-то не так, потому что виртуальная машина не загружается. Через мгновение я начинаю получать
ядро: [ 747.764965] сторожевой таймер: ОШИБКА: мягкая блокировка - ЦП № 1 зависает на 22 с! [qemu-система-x86:1305]
ошибки, и моя хост-машина значительно тормозит. Я отключил kvm от vm, так как это может вызвать проблемы. У моей виртуальной машины 4 ГБ оперативной памяти и 4 VCPU, выделенных для нее.
Что-то не так с моей конфигурацией?