On 1/13/2017 5:33 AM, Tan, Jianfeng wrote: > > >> -----Original Message----- >> From: Yigit, Ferruh >> Sent: Friday, January 13, 2017 10:05 AM >> To: Tan, Jianfeng; Alejandro Lucero >> Cc: Gregory Etelson; dev; us...@dpdk.org >> Subject: Re: [dpdk-users] [dpdk-dev] IGB_UIO: PCI Resources Management >> >> On 1/13/2017 1:51 AM, Tan, Jianfeng wrote: >>> >>> >>>> -----Original Message----- >>>> From: users [mailto:users-boun...@dpdk.org] On Behalf Of Ferruh Yigit >>>> Sent: Thursday, January 12, 2017 8:22 PM >>>> To: Alejandro Lucero >>>> Cc: Gregory Etelson; dev; us...@dpdk.org >>>> Subject: Re: [dpdk-users] [dpdk-dev] IGB_UIO: PCI Resources >> Management >>>> >>>> On 1/12/2017 12:12 PM, Alejandro Lucero wrote: >>>>> >>>>> >>>>> On Thu, Jan 12, 2017 at 11:55 AM, Ferruh Yigit <ferruh.yi...@intel.com >>>>> <mailto:ferruh.yi...@intel.com>> wrote: >>>>> >>>>> On 12/9/2016 8:54 AM, Gregory Etelson wrote: >>>>> > Hello, >>>>> > >>>>> > IGB_UIO driver does not close port PCI activities after DPDK process >>>> exits. >>>>> > DPDK API provides rte_eth_dev_close() to manage port PCI, >>>>> > but it can be skipped if process receives SIGKILL signal >>>>> >>>>> I guess I understand the problem. >>>>> >>>>> >>>>> This is a known problem, but it is not just a UIO problem, and this >>>>> patch does not solve it, maybe it just solves part of it. >>>>> >>>>> In fact, a DPDK program crashing could imply the NIC DMAing after that >>>>> and after that memory was assigned to another program. >>>> >>>> Yes. >>>> Can there be a way to stop NIC DMA, (or prevent it access to mem >>>> anymore) when app crashes? >>>> I think that is what this patch is looking for. >>> >>> If I understand it correctly, you are looking for this patch? >>> http://dpdk.org/dev/patchwork/patch/17495/ >>> >> >> That is good, thanks Jianfeng, I will check it. >> >> btw, patch's current state is rejected, which is by mistake, it seems I >> confused it with "iomem and ioport mapping" patch, sorry about it, I >> will update its status immediately. > > No problem at all. This patch is rejected as it's based on "iomem and ioport > mapping" patch. As "iomem and ioport mapping" patch has backward > compatibility issue, we need to figure out a way to resubmit this patch > without changing the original "iomem and ioport mapping" in igb_uio.
I thinks implementing uio_info->release and uio_info.open is good idea, but I have a few questions: 1- What is the the dependency to "iomem and ioport mapping" patch? 2- If we keep pci_enable_device() in probe() can this prevent moving registering/freeing interrupts in open()/release() 3- And is pci_disable_device() done in release is enough to stop NIC DMA to access memory? I did a simple test, implemented simple uio_info->release and uio_info.open, which only does pci_disable_device() and pci_enable_device(), but this prevent app receiving packets in its second run, independent from app terminated gracefully or not. Any idea why this is not working? btw, I can produce the problematic case, as George Prekas described in: http://dpdk.org/ml/archives/users/2016-September/001026.html CC'ed George, since he also seems interested in issue. > > Thanks, > Jianfeng >