On Tue, Dec 05, 2023 at 03:20:27PM -0700, Nirmal Patel wrote: > ... > In guest, vmd is passthrough including pci topology behind vmd. ... IIUC this says the VMD bridge itself is passed through to the guest, as well as the VMD Root Ports and devices below them. Why is the VMD bridge itself passed through to the guest? I assume the host OS vmd driver enables the VMD bridge functionality, i.e., in vmd_enable_domain()? I gleaned this from the dmesg logs at https://bugzilla.kernel.org/show_bug.cgi?id=215027. I assume these are from the host: pci 0000:00:0e.0: [8086:467f] type 00 # VMD Endpoint vmd 0000:00:0e.0: PCI host bridge to bus 10000:e0 pci_bus 10000:e0: root bus resource [bus e0-ff] pci 10000:e0:06.0: [8086:464d] type 01 # VMD Root Port pci 10000:e0:06.0: PCI bridge to [bus e1] pci 10000:e1:00.0: [144d:a80a] type 00 # NVMe nvme 10000:e1:00.0: PCI INT A: not connected What does it look like in the guest? Does the guest see all three of these devices (VMD Endpoint, VMD Root Port, NVMe)? If the guest sees the VMD Endpoint, what does it do with it? Does the host vmd driver coordinate with the guest vmd driver? Bjorn