[dpdk-dev] [PATCH v2] net/virtio: fix rxq intr config fails using vfio-pci
Yang, Zhiyong
zhiyong.yang at intel.com
Thu Nov 9 03:11:00 CET 2017
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.
Thanks
Zhiyong
More information about the dev
mailing list