From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 3D479F97A; Thu, 19 Jan 2017 16:59:05 +0100 (CET) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga105.jf.intel.com with ESMTP; 19 Jan 2017 07:59:05 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,254,1477983600"; d="scan'208";a="215301087" Received: from fyigit-mobl1.ger.corp.intel.com (HELO [10.237.220.38]) ([10.237.220.38]) by fmsmga004.fm.intel.com with ESMTP; 19 Jan 2017 07:59:03 -0800 To: "Tan, Jianfeng" , Alejandro Lucero References: <3355891.l3I590SjcV@polaris> <608e7dfd-5226-3e30-f43b-0fbe01aee16a@intel.com> <7605618f-dc86-3060-473e-aff5545cac72@intel.com> Cc: Gregory Etelson , dev , "users@dpdk.org" , george.prekas@epfl.ch From: Ferruh Yigit Message-ID: <076f570e-0679-1208-8625-93256796a756@intel.com> Date: Thu, 19 Jan 2017 15:59:03 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [dpdk-users] [dpdk-dev] IGB_UIO: PCI Resources Management X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Jan 2017 15:59:07 -0000 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; users@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-bounces@dpdk.org] On Behalf Of Ferruh Yigit >>>> Sent: Thursday, January 12, 2017 8:22 PM >>>> To: Alejandro Lucero >>>> Cc: Gregory Etelson; dev; users@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 >>>> > 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 >