[dpdk-dev] [PATCH v2] net/virtio: fix rxq intr config fails using vfio-pci
Tan, Jianfeng
jianfeng.tan at intel.com
Thu Nov 9 04:31:56 CET 2017
On 11/9/2017 10:11 AM, Yang, Zhiyong wrote:
> Hi Jianfeng,
>
>> -----Original Message-----
>> From: Tan, Jianfeng
>> Sent: Wednesday, November 8, 2017 9:53 PM
>> To: Yang, Zhiyong <zhiyong.yang at intel.com>; dev at dpdk.org
>> Cc: yliu at fridaylinux.org; maxime.coquelin at redhat.com
>> Subject: Re: [PATCH v2] net/virtio: fix rxq intr config fails using vfio-pci
>>
>>
>> Hi Zhiyong,
>>
>>
>> On 11/8/2017 7:03 PM, Zhiyong Yang wrote:
>>> When running l3fwd-power to test virtio rxq interrupt using vfio pci
>>> noiommu mode, startup fails. In the function virtio_read_caps, the
>>> code if (flags & PCI_MSIX_ENABLE) intends to double check if vfio msix
>>> is enabled or not. However, it is not enable at that stage. So
>>> use_msix is assigned to "0", not "1", which causes the failure of
>>> configuring rxq intr in l3fwd-power.
>>> This patch adds the function vtpci_msix_detect to detect the status of
>>> msix when interrupt changes happen.
>>> In the meanwhile, virtio_intr_enable/disable are introduced to wrap
>>> rte_intr_enable/disable to enhance the ability to detect msix. Only
>>> support and enable msix can assign "1" to use_msix.
>> Should be "2". Better to use macro here.
>>
>>> Fixes: cb482cb3a305 ("net/virtio: fix MAC address read")
>>> Signed-off-by: Zhiyong Yang <zhiyong.yang at intel.com>
>>> ---
>>> @@ -1370,7 +1411,15 @@ virtio_init_device(struct rte_eth_dev *eth_dev,
>> uint64_t req_features)
>>> struct virtio_net_config local_config;
>>> struct rte_pci_device *pci_dev = NULL;
>>> int ret;
>>> + int msix_detect;
>>>
>>> + msix_detect = vtpci_msix_detect(RTE_ETH_DEV_TO_PCI(eth_dev));
>>> + if (msix_detect < 0)
>>> + return -1;
>>> + else if (msix_detect == SUPPORT_MSIX_STATUS_ENABLED)
>>> + hw->use_msix = 1;
>>> + else
>>> + hw->use_msix = 0;
>> Ditto, we directly assign return value to hw->use_msix.
>>
> The function call can be removed if use_misx can use 0, 1, 2 directly
> We can implement the same logic in virtio_read_caps instead.
Actually, I prefer not hide such an assignment in this function name
"*_detect".
> Thanks
> Zhiyong
>
More information about the dev
mailing list