On 1/2/2020 6:58 PM, vijay mohan wrote:
> On Thu, 26 Dec 2019 at 16:58, vijay mohan <vijay1...@gmail.com> wrote:
>>
>> Hi All,
>> I am trying to use pci vf device with secondary process in a multiple 
>> process mode and finding pci_dev->mem_resource[0].addr to be NULL. This 
>> happens when the pci device is attached to igb_uio.ko but with vfio_pci it 
>> works fine.
>>
>> Looking at the pci device initialization part for secondary process, when 
>> device is presented through igb_uio, (in pci_uio_map_secondary), it doesn't 
>> seems to update pci_dev->mem_resource[X].addr. For vfio-pci, it updates the 
>> addresses in pci_vfio_map_resource_secondary. With the following patch, i am 
>> able to use the device from secondary process but would like to know if I am 
>> missing something.
>>
>> diff --git a/drivers/bus/pci/pci_common_uio.c 
>> b/drivers/bus/pci/pci_common_uio.c
>> index 7ea73db..f4dca9d 100644
>> --- a/drivers/bus/pci/pci_common_uio.c
>> +++ b/drivers/bus/pci/pci_common_uio.c
>> @@ -70,6 +70,7 @@
>>                                 }
>>                                 return -1;
>>                         }
>> +                       dev->mem_resource[i].addr = mapaddr;
>>                 }
>>                 return 0;
>>         }
> 
> Hi Ferruh Yigit/John Griffin,
> I am trying to use QAT crypto VF device attached to igb_uio.ko with
> secondary process and has observed following errors while setting up
> the queues due to pci_dev->mem_resource[0].addr check from
> qat_qp_setup. mem_resource[0].addr happens to be NULL when the device
> is presented to dpdk through igb_uio but works fine with vfio_pci.ko.
> Could you please let me know if the fix mentioned above is sufficient
> for the device to work with secondary process.

Hi Vijay,

Sorry for late response.

Yes, 'dev->mem_resource[i].addr' seems not updated in the secondary process for
igb_uio, independent from being VF or PF.

And yes vfio path already updates it and your above suggested code looks good 
to me.

Feel free to attach following tag when the patch sent:
Reviewed-by: Ferruh Yigit <ferruh.yi...@intel.com>


> 
> CRYPTODEV: Initialisation parameters - name: BDF_qat_sym,socket id: 0,
> max queue pairs: 0
> qat_sym_dev_create(): Created QAT SYM device BDF_qat_sym as cryptodev 
> instance 0
> qat_comp_dev_create(): Creating QAT COMP device BDF_qat_comp
> qat_comp_dev_create(): Created QAT COMP device BDF_qat_comp as
> compressdev instance 0
> Dev config
> Setting up queues
> qat_qp_setup(): Setup qp 0 on qat pci device 0 gen 2
> qat_qp_setup(): Could not find VF config space (UIO driver attached?).
> Crypto device queue pair init failed
> 
> Thanks,
> Vijay
> 

Reply via email to