Hello, I use vfio-driver to run ioat devices(this section is in SPDK). And I found these devices can only be initialized in primary.
My use case is as follow: ... rte_eal_init(); ioat_init(); ... I want to use these devices in multi-processes, but error report in secondary process just like this: EAL: PCI device 0000:00:04.0 on NUMA socket 0 EAL: probe driver: 8086:e20 spdk_ioat Found matching device at 0000:00:04.0 vendor:0x8086 device:0x0e20 EAL: Unknown handle type of fd -1 EAL: Unknown handle type of fd -1 EAL: PCI device 0000:00:04.1 on NUMA socket 0 EAL: probe driver: 8086:e21 spdk_ioat Found matching device at 0000:00:04.1 vendor:0x8086 device:0x0e21 EAL: Unknown handle type of fd -1 EAL: Unknown handle type of fd -1 In debug mode, I found these devices' interrupts not initialized. The error is in function pci_vfio_map_resource() The primary process runs pci_vfio_map_resource_primary(dev), while secondary runs pci_vfio_map_resource_secondary(dev). Comparing these two functions, the only difference is primary calls pci_rte_vfio_setup_device() but secondary not. And pci_vfio_setup_interrupts() is in this function. Is this intentional? And how should I share multiple devices under the multi-process model? By the way, My version is 17.11. Thanks. -- Yang Ye Network Research Center, Institute of Computing Technology, Chinese Academy of Sciences, NO.6 Kexueyuan South Road, Zhongguancun, Haidian District, Beijing, China (100190)
