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)

Reply via email to