[dpdk-dev] [PATCH] igb_uio: remove device reset in open
Rasesh.Mody at cavium.com
Thu Oct 26 01:43:25 CEST 2017
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Ferruh Yigit
> Sent: Friday, October 20, 2017 9:58 AM
> On 10/20/2017 9:55 AM, Ferruh Yigit wrote:
> > Remove device reset during application start, the reset for
> > application exit still there.
> > Reset in open removed because of following comments:
> > 1- Device reset not completed when VF driver loaded, which cause VF PMD
> > initialization error.
> > Adding delay can solve the issue but will increase driver load time.
> > 2- Reset will be issues all devices unconditionally, not very efficient
> > way.
> > Fixes: b58eedfc7dd5 ("igb_uio: issue FLR during open and release of
> > device file")
> > Cc: stable at dpdk.org
> > Signed-off-by: Ferruh Yigit <ferruh.yigit at intel.com>
> Hi Jingjing, Shijith, Gregory, Harish,
> Can you please test this on top of current master (which has already Jingjin's
> fix) ?
The original FLR change during igb_uio open()/release() in DPDK17.08 also impacts BNX2X PMD and it exhibits the issues with bare metal testing.
Now, we tested this change for BNX2X PMD using latest dpdk, which has this fix where FLR is invoked only in the release(). However, we ran into an issue when trying to reload the testpmd application in quick succession. The pci reset, called during the igb_uio release() operation, is taking longer time and adapter is still doing the FLR when we relaunch the application. We see this behavior with bare metal testing.
> > ---
> > Cc: Jianfeng Tan <jianfeng.tan at intel.com>
> > Cc: Jingjing Wu <jingjing.wu at intel.com>
> > Cc: Shijith Thotton <shijith.thotton at caviumnetworks.com>
> > Cc: Gregory Etelson <gregory at weka.io>
> > Cc: Harish Patil <harish.patil at cavium.com>
> > Cc: George Prekas <george.prekas at epfl.ch>
> > Cc: Sergio Gonzalez Monroy <sergio.gonzalez.monroy at intel.com>
> > ---
> > lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 2 --
> > 1 file changed, 2 deletions(-)
> > diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
> > b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
> > index f7ef82554..fd320d87d 100644
> > --- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
> > +++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
> > @@ -336,8 +336,6 @@ igbuio_pci_open(struct uio_info *info, struct inode
> > struct pci_dev *dev = udev->pdev;
> > int err;
> > - pci_reset_function(dev);
> > -
> > /* set bus master, which was cleared by the reset function */
> > pci_set_master(dev);
More information about the dev