[dpdk-users] Why secondary processes do not set up pci_vfio_device's interrupts?
杨晔
yangye at ict.ac.cn
Sun Jul 8 14:53:58 CEST 2018
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)
More information about the users
mailing list