Hi Jianfeng, > -----Original Message----- > From: Tan, Jianfeng > Sent: Wednesday, November 8, 2017 9:53 PM > To: Yang, Zhiyong <zhiyong.y...@intel.com>; dev@dpdk.org > Cc: y...@fridaylinux.org; maxime.coque...@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.y...@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