У меня есть Гигабайт GA-970A-DS3P плата с FX AMD (TM)-8350 CPU. У меня есть IOMMU, включенный в BIOS. Поскольку non-XEN Linux загружается, я передаю iommu=pt amd_iommu_dump
как аргумент ядра и может проверить, что AMD-V загружается через dmsg | grep AMD-V
. При выполнении гостя QEMU/KVM я могу передача Marvell 88SE9230 карта гостю, и все хорошо работает.
Я хочу получить эту передачу, работающую с установкой XEN также. Однако от 4 портов SATA 0-3, что 88SE9230 карта предоставляет только последний порт, на самом деле обнаруживает диск (т.е. если порт 0 и 1 соединен, то диск на порте 1 обнаружен, в то время как порт 0 остается пустым).
Я теперь работаю Xen 4.9
через apt-get install xen-hypervisor-4.9-amd64
в Ubuntu 18.04 dom0. Ядро 4.15.0-29-generic
. Я снова переплетаю свое устройство (в моем случае 0000:01:00.0) через pciback.sh, как описано здесь и снова переплетаю через pciback.sh "0000:01:00.0"
. Затем я могу присоединить 0000:01:00.0 к гостю Xen.
В госте 0000:01:00.0
появляется и lspci
и pciconf
(в моем случае гость XEN является FreBSD FreeNAS), работы правильно. Однако только диск на последнем подключенном порте обнаруживается. Все другие порты, кажется, пусты, даже если мне соединили диск. В версии KVM распознаны эти диски.
Я задавался вопросом, где AMD iommu обработка реализован в случае Xen. Ubuntu 18.04 dom0 не имеет никаких iommu записей в sysfs, и сообщения отладки AMD-V не печатаются. Таким образом, я предполагаю, что существует baremetal XEN гипервизор, который реализует iommu инициализацию. Есть ли некоторая опция, которую я должен добавить для включения AMD iommu обрабатывающий в гипервизоре (эквивалентный Linux iommu=pt
опция) и как это сделано?
Стандартный Xen, эмулированный, IDE появится как ada0, в то время как передача устройство SATA также появится как ada0. Это приводит к одному дисковому затенению другой. В/dev/будет замечена только одна ada0 запись.