通过 AMD-V iommu 将 Marvell 88SE9230 直通至 Xen 客户机

通过 AMD-V iommu 将 Marvell 88SE9230 直通至 Xen 客户机

我有一块 Gigabyte GA-970A-DS3P 主板,配有 AMD FX(tm)-8350 CPU。我在 BIOS 中启用了 IOMMU。对于非 XEN Linux 启动,我将其iommu=pt amd_iommu_dump作为内核参数传递,并可以通过 验证是否已加载 AMD-V dmsg | grep AMD-V。运行 QEMU/虚拟机我可以将 Marvell 88SE9230 卡直通给客人,一切正常

我想让这个传递与西恩设置但是,88SE9230 卡提供的 4 个 SATA 0-3 端口中只有最后一个端口实际发现了磁盘(即,如果连接了端口 0 和 1,那么会发现端口 1 上的磁盘,而端口 0 保持为空)。

我现在在 Ubuntu-18.04 dom0 中运行Xen 4.9via 。内核是。我按照说明通过 pciback.sh 重新绑定我的设备(在我的情况下为 0000:01:00.0)apt-get install xen-hypervisor-4.9-amd644.15.0-29-generic这里并通过 重新绑定pciback.sh "0000:01:00.0"。然后我就可以将 0000:01:00.0 附加到 Xen 客户机。

客户机内部0000:01:00.0出现,lspci并且pciconf(在我的情况下,XEN 客户机是 FreBSD FreeNAS)正常工作。但是,仅检测到最后一个连接端口上的磁盘。即使我连接了磁盘,所有其他端口似乎都是空的。在 KVM 版本中,这些磁盘是可以识别的。

我想知道在 Xen 情况下 AMD iommu 处理在哪里实现。Ubuntu 18.04 dom0 在 sysfs 中没有任何 iommu 条目,并且不会打印 AMD-V 调试消息。所以我猜有一个裸机 XEN 虚拟机管理程序实现了 iommu 初始化。我是否需要添加一些选项来在虚拟机管理程序中启用 AMD iommu 处理(相当于 Linux 选项iommu=pt)以及如何做到这一点?

答案1

标准 Xen 模拟 IDE 将显示为 ada0,而直通 SATA 设备也将显示为 ada0。这会导致一个磁盘遮蔽另一个磁盘。在 /dev/ 中只会看到一个 ada0 条目。

相关内容