On Thu, Jul 06, 2017 at 08:27:17PM +0300, Gregory Etelson wrote: > I could not reproduce server crash with > http://dpdk.org/dev/patchwork/patch/25267/ [1] > However, pci_try_reset_function() API used in that patch is not defined in > RedHat-6.x Linux-2.6.32 kernels > Therefore I work with http://dpdk.org/dev/patchwork/patch/25061/ patch [2]. > [2] was successfully tested with IXGBE & I40e VFs on RH 6.x, RH 7.x Ubuntu > 14.04 and SLES-11.4 > > Regards, > Gregory > > On Thursday, 6 July 2017 19:41:40 IDT Ferruh Yigit wrote: > > On 6/12/2017 10:38 AM, Shijith Thotton wrote: > > > Set UIO info device file operations open and release. Call pci reset > > > function inside open and release to clear device state at start and end. > > > Copied this behaviour from vfio_pci kernel module code. With this patch, > > > it is not mandatory to issue FLR by PMD's during init and close. > > > > > > Bus master enable and disable are added in open and release respectively > > > to take care of device DMA. > > > > > > Signed-off-by: Shijith Thotton <shijith.thot...@caviumnetworks.com> > > > > This patch, and Gregory's patch [1] are very similar and main target is > > to leave device in a more proper state when DPDK application quits > > unexpectedly. > > > > Difference between two are, this one implements both .open and .release > > ops, and sets / clears bus master accordingly. > > > > Although main concern is .reset, I am OK to follow vfio_pci approach > > here, and clearing bus master on .reset can prevent unwanted DMA access. > > > > So, I am for this patch and I am testing it for a few days without a > > problem. > > > > But Gregory reported a crash with older version of this patch, without > > more detail, we should clear that first. With Gregory's Tested-by, I am > > OK with this patch. > > > > > > Gregory, > > > > Are you using your version, what are the results? And would you mind > > testing this patch? > > > > Thanks, > > ferruh > > > > > > [1] > > http://dpdk.org/dev/patchwork/patch/25061/ > > > >
Hi Gregory, Please try the following change: s/pci_try_reset_function/pci_reset_function/ pci_try_reset_function is same as pci_reset_function, except it returns -EAGAIN if unable to lock the device[1]. If everyone agrees, I can submit v2 with this change. 1. http://elixir.free-electrons.com/linux/latest/source/drivers/pci/pci.c#L4293 Thanks, Shijith