[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