From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Tan, Jianfeng" Subject: Re: [PATCH v2] igb_uio: add config option to control reset Date: Fri, 3 Nov 2017 10:57:09 +0800 Message-ID: References: <20171103003005.44339-1-ferruh.yigit@intel.com> <20171103005100.44633-1-ferruh.yigit@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Cc: dev@dpdk.org, stable@dpdk.org, Jingjing Wu , Shijith Thotton , Gregory Etelson , Harish Patil , George Prekas , Sergio Gonzalez Monroy , Rasesh Mody To: Ferruh Yigit , Thomas Monjalon Return-path: In-Reply-To: <20171103005100.44633-1-ferruh.yigit@intel.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 11/3/2017 8:51 AM, Ferruh Yigit wrote: > Adding a compile time configuration option to control device reset done > during DPDK application exit. > > Config option is CONFIG_RTE_EAL_IGB_UIO_RESET and enabled by default, > so by default reset will happen. Having this reset is safer to be sure > device left in a proper case. > > But for special cases [1] it is possible to disable the config option > to prevent the device reset. > > [1] > http://dpdk.org/ml/archives/dev/2017-November/080927.html > > Fixes: b58eedfc7dd5 ("igb_uio: issue FLR during open and release of device file") > Cc: stable@dpdk.org > > Signed-off-by: Ferruh Yigit Realize that we do have a pci_clear_master() in the release() to disable the DMA from device until the next open() will enable the DMA again . Here is my: Reviewed-by: Jianfeng Tan Thanks, Jianfeng > --- > Cc: Jianfeng Tan > Cc: Jingjing Wu > Cc: Shijith Thotton > Cc: Gregory Etelson > Cc: Harish Patil > Cc: George Prekas > Cc: Sergio Gonzalez Monroy > Cc: Rasesh Mody > > v2: > * fix typo in commit log > --- > config/common_base | 1 + > config/common_linuxapp | 1 + > lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 2 ++ > 3 files changed, 4 insertions(+) > > diff --git a/config/common_base b/config/common_base > index 82ee75456..2a9947420 100644 > --- a/config/common_base > +++ b/config/common_base > @@ -102,6 +102,7 @@ CONFIG_RTE_LIBEAL_USE_HPET=n > CONFIG_RTE_EAL_ALLOW_INV_SOCKET_ID=n > CONFIG_RTE_EAL_ALWAYS_PANIC_ON_ERROR=n > CONFIG_RTE_EAL_IGB_UIO=n > +CONFIG_RTE_EAL_IGB_UIO_RESET=n > CONFIG_RTE_EAL_VFIO=n > CONFIG_RTE_MALLOC_DEBUG=n > CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n > diff --git a/config/common_linuxapp b/config/common_linuxapp > index 74c7d64ec..b3a602909 100644 > --- a/config/common_linuxapp > +++ b/config/common_linuxapp > @@ -37,6 +37,7 @@ CONFIG_RTE_EXEC_ENV_LINUXAPP=y > > CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=y > CONFIG_RTE_EAL_IGB_UIO=y > +CONFIG_RTE_EAL_IGB_UIO_RESET=y > CONFIG_RTE_EAL_VFIO=y > CONFIG_RTE_KNI_KMOD=y > CONFIG_RTE_LIBRTE_KNI=y > diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c > index fd320d87d..0325722c0 100644 > --- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c > +++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c > @@ -360,7 +360,9 @@ igbuio_pci_release(struct uio_info *info, struct inode *inode) > /* stop the device from further DMA */ > pci_clear_master(dev); > > +#ifdef RTE_EAL_IGB_UIO_RESET > pci_reset_function(dev); > +#endif > > return 0; > }