patches for DPDK stable branches
 help / color / mirror / Atom feed
* [dpdk-stable] [dpdk-dev] [PATCH] net/failsafe: fix fd leak
@ 2020-04-27 10:44 wangyunjian
  2020-04-27 11:12 ` Gaëtan Rivet
  0 siblings, 1 reply; 9+ messages in thread
From: wangyunjian @ 2020-04-27 10:44 UTC (permalink / raw)
  To: dev, grive; +Cc: jerry.lilijun, xudingke, Yunjian Wang, stable

From: Yunjian Wang <wangyunjian@huawei.com>

Zero is a valid fd. The fd won't be closed thus leading fd leak,
when it is zero.

Fixes: f234e5bd996d ("net/failsafe: register slaves Rx interrupts")
Fixes: 9e0360aebf23 ("net/failsafe: register as Rx interrupt mode")
Cc: stable@dpdk.org

Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
---
 drivers/net/failsafe/failsafe_intr.c | 2 +-
 drivers/net/failsafe/failsafe_ops.c  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/failsafe/failsafe_intr.c b/drivers/net/failsafe/failsafe_intr.c
index d8728fe7e..602c04033 100644
--- a/drivers/net/failsafe/failsafe_intr.c
+++ b/drivers/net/failsafe/failsafe_intr.c
@@ -393,7 +393,7 @@ fs_rx_event_proxy_uninstall(struct fs_priv *priv)
 		free(priv->rxp.evec);
 		priv->rxp.evec = NULL;
 	}
-	if (priv->rxp.efd > 0) {
+	if (priv->rxp.efd >= 0) {
 		close(priv->rxp.efd);
 		priv->rxp.efd = -1;
 	}
diff --git a/drivers/net/failsafe/failsafe_ops.c b/drivers/net/failsafe/failsafe_ops.c
index 50f2aca4e..e1d08e46c 100644
--- a/drivers/net/failsafe/failsafe_ops.c
+++ b/drivers/net/failsafe/failsafe_ops.c
@@ -380,7 +380,7 @@ fs_rx_queue_release(void *queue)
 	rxq = queue;
 	dev = &rte_eth_devices[rxq->priv->data->port_id];
 	fs_lock(dev, 0);
-	if (rxq->event_fd > 0)
+	if (rxq->event_fd >= 0)
 		close(rxq->event_fd);
 	FOREACH_SUBDEV_STATE(sdev, i, dev, DEV_ACTIVE) {
 		if (ETH(sdev)->data->rx_queues != NULL &&
-- 
2.19.1



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-stable] [dpdk-dev] [PATCH] net/failsafe: fix fd leak
  2020-04-27 10:44 [dpdk-stable] [dpdk-dev] [PATCH] net/failsafe: fix fd leak wangyunjian
@ 2020-04-27 11:12 ` Gaëtan Rivet
  2020-04-27 16:55   ` Ferruh Yigit
  0 siblings, 1 reply; 9+ messages in thread
From: Gaëtan Rivet @ 2020-04-27 11:12 UTC (permalink / raw)
  To: wangyunjian; +Cc: dev, jerry.lilijun, xudingke, stable

On 27/04/20 18:44 +0800, wangyunjian wrote:
> From: Yunjian Wang <wangyunjian@huawei.com>
> 
> Zero is a valid fd. The fd won't be closed thus leading fd leak,
> when it is zero.
> 
> Fixes: f234e5bd996d ("net/failsafe: register slaves Rx interrupts")
> Fixes: 9e0360aebf23 ("net/failsafe: register as Rx interrupt mode")
> Cc: stable@dpdk.org
> 

Hello Yunjian,

Nothing prevents a DPDK app from closing 0 and getting it from
another call, good catch.

> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>

Acked-by: Gaetan Rivet <grive@u256.net>

> ---
>  drivers/net/failsafe/failsafe_intr.c | 2 +-
>  drivers/net/failsafe/failsafe_ops.c  | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/failsafe/failsafe_intr.c b/drivers/net/failsafe/failsafe_intr.c
> index d8728fe7e..602c04033 100644
> --- a/drivers/net/failsafe/failsafe_intr.c
> +++ b/drivers/net/failsafe/failsafe_intr.c
> @@ -393,7 +393,7 @@ fs_rx_event_proxy_uninstall(struct fs_priv *priv)
>  		free(priv->rxp.evec);
>  		priv->rxp.evec = NULL;
>  	}
> -	if (priv->rxp.efd > 0) {
> +	if (priv->rxp.efd >= 0) {
>  		close(priv->rxp.efd);
>  		priv->rxp.efd = -1;
>  	}
> diff --git a/drivers/net/failsafe/failsafe_ops.c b/drivers/net/failsafe/failsafe_ops.c
> index 50f2aca4e..e1d08e46c 100644
> --- a/drivers/net/failsafe/failsafe_ops.c
> +++ b/drivers/net/failsafe/failsafe_ops.c
> @@ -380,7 +380,7 @@ fs_rx_queue_release(void *queue)
>  	rxq = queue;
>  	dev = &rte_eth_devices[rxq->priv->data->port_id];
>  	fs_lock(dev, 0);
> -	if (rxq->event_fd > 0)
> +	if (rxq->event_fd >= 0)
>  		close(rxq->event_fd);
>  	FOREACH_SUBDEV_STATE(sdev, i, dev, DEV_ACTIVE) {
>  		if (ETH(sdev)->data->rx_queues != NULL &&
> -- 
> 2.19.1
> 
> 

-- 
Gaëtan

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-stable] [dpdk-dev] [PATCH] net/failsafe: fix fd leak
  2020-04-27 11:12 ` Gaëtan Rivet
@ 2020-04-27 16:55   ` Ferruh Yigit
  2020-05-03 11:33     ` Ali Alnubani
  0 siblings, 1 reply; 9+ messages in thread
From: Ferruh Yigit @ 2020-04-27 16:55 UTC (permalink / raw)
  To: Gaëtan Rivet, wangyunjian; +Cc: dev, jerry.lilijun, xudingke, stable

On 4/27/2020 12:12 PM, Gaëtan Rivet wrote:
> On 27/04/20 18:44 +0800, wangyunjian wrote:
>> From: Yunjian Wang <wangyunjian@huawei.com>
>>
>> Zero is a valid fd. The fd won't be closed thus leading fd leak,
>> when it is zero.
>>
>> Fixes: f234e5bd996d ("net/failsafe: register slaves Rx interrupts")
>> Fixes: 9e0360aebf23 ("net/failsafe: register as Rx interrupt mode")
>> Cc: stable@dpdk.org
>>
> 
> Hello Yunjian,
> 
> Nothing prevents a DPDK app from closing 0 and getting it from
> another call, good catch.
> 
>> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
> 
> Acked-by: Gaetan Rivet <grive@u256.net>

Applied to dpdk-next-net/master, thanks.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-stable] [dpdk-dev]   [PATCH] net/failsafe: fix fd leak
  2020-04-27 16:55   ` Ferruh Yigit
@ 2020-05-03 11:33     ` Ali Alnubani
  2020-05-04 16:22       ` Gaëtan Rivet
  0 siblings, 1 reply; 9+ messages in thread
From: Ali Alnubani @ 2020-05-03 11:33 UTC (permalink / raw)
  To: Ferruh Yigit, Gaëtan Rivet, wangyunjian
  Cc: dev, jerry.lilijun, xudingke, stable, Raslan Darawsheh

Hi,

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Ferruh Yigit
> Sent: Monday, April 27, 2020 7:56 PM
> To: Gaëtan Rivet <grive@u256.net>; wangyunjian
> <wangyunjian@huawei.com>
> Cc: dev@dpdk.org; jerry.lilijun@huawei.com; xudingke@huawei.com;
> stable@dpdk.org
> Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH] net/failsafe: fix fd leak
> 
> On 4/27/2020 12:12 PM, Gaëtan Rivet wrote:
> > On 27/04/20 18:44 +0800, wangyunjian wrote:
> >> From: Yunjian Wang <wangyunjian@huawei.com>
> >>
> >> Zero is a valid fd. The fd won't be closed thus leading fd leak, when
> >> it is zero.
> >>
> >> Fixes: f234e5bd996d ("net/failsafe: register slaves Rx interrupts")
> >> Fixes: 9e0360aebf23 ("net/failsafe: register as Rx interrupt mode")
> >> Cc: stable@dpdk.org
> >>
> >
> > Hello Yunjian,
> >
> > Nothing prevents a DPDK app from closing 0 and getting it from another
> > call, good catch.
> >
> >> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
> >
> > Acked-by: Gaetan Rivet <grive@u256.net>
> 
> Applied to dpdk-next-net/master, thanks.

This patch is causing Testpmd to quit when I issue a "port stop" command. Testpmd log:

"""
x86_64-native-linuxapp-gcc/build/app/test-pmd/testpmd -n 4 -- -i --forward-mode=mac
EAL: Detected 8 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: No available hugepages reported in hugepages-1048576kB
EAL: Probing VFIO support...
EAL: PCI device 0002:00:02.0 on NUMA socket 0
EAL:   probe driver: 15b3:1004 net_mlx4
Interactive-mode selected
Set mac packet forwarding mode
Warning: NUMA should be configured manually by using --port-numa-config and --ring-numa-config parameters along with --numa.
testpmd: create a new mbuf pool <mbuf_pool_socket_0>: n=203456, size=2176, socket=0
testpmd: preferred mempool ops selected: ring_mp_mc

Warning! port-topology=paired and odd forward ports number, the last port will pair with itself.

Configuring Port 1 (socket 0)
Port 1: 00:15:5D:26:2B:00
Checking link statuses...
Done
testpmd> port stop 1
Stopping ports...
Checking link statuses...
Done
testpmd>
Stopping port 1...
Stopping ports...
Done

Shutting down port 1...
Closing ports...
Done

Bye...
"""

My terminal gets broken at this point, and I have to reinitialize it with a "reset".

- Ali

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-stable] [dpdk-dev]   [PATCH] net/failsafe: fix fd leak
  2020-05-03 11:33     ` Ali Alnubani
@ 2020-05-04 16:22       ` Gaëtan Rivet
  2020-05-04 16:28         ` Stephen Hemminger
  2020-05-05  9:14         ` Ali Alnubani
  0 siblings, 2 replies; 9+ messages in thread
From: Gaëtan Rivet @ 2020-05-04 16:22 UTC (permalink / raw)
  To: Ali Alnubani
  Cc: Ferruh Yigit, wangyunjian, dev, jerry.lilijun, xudingke, stable,
	Raslan Darawsheh

On 03/05/20 11:33 +0000, Ali Alnubani wrote:
> Hi,
> 
> > -----Original Message-----
> > From: dev <dev-bounces@dpdk.org> On Behalf Of Ferruh Yigit
> > Sent: Monday, April 27, 2020 7:56 PM
> > To: Gaëtan Rivet <grive@u256.net>; wangyunjian
> > <wangyunjian@huawei.com>
> > Cc: dev@dpdk.org; jerry.lilijun@huawei.com; xudingke@huawei.com;
> > stable@dpdk.org
> > Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH] net/failsafe: fix fd leak
> > 
> > On 4/27/2020 12:12 PM, Gaëtan Rivet wrote:
> > > On 27/04/20 18:44 +0800, wangyunjian wrote:
> > >> From: Yunjian Wang <wangyunjian@huawei.com>
> > >>
> > >> Zero is a valid fd. The fd won't be closed thus leading fd leak, when
> > >> it is zero.
> > >>
> > >> Fixes: f234e5bd996d ("net/failsafe: register slaves Rx interrupts")
> > >> Fixes: 9e0360aebf23 ("net/failsafe: register as Rx interrupt mode")
> > >> Cc: stable@dpdk.org
> > >>
> > >
> > > Hello Yunjian,
> > >
> > > Nothing prevents a DPDK app from closing 0 and getting it from another
> > > call, good catch.
> > >
> > >> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
> > >
> > > Acked-by: Gaetan Rivet <grive@u256.net>
> > 
> > Applied to dpdk-next-net/master, thanks.
> 
> This patch is causing Testpmd to quit when I issue a "port stop" command. Testpmd log:
> 
> """
> x86_64-native-linuxapp-gcc/build/app/test-pmd/testpmd -n 4 -- -i --forward-mode=mac
> EAL: Detected 8 lcore(s)
> EAL: Detected 1 NUMA nodes
> EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
> EAL: Selected IOVA mode 'PA'
> EAL: No available hugepages reported in hugepages-1048576kB
> EAL: Probing VFIO support...
> EAL: PCI device 0002:00:02.0 on NUMA socket 0
> EAL:   probe driver: 15b3:1004 net_mlx4
> Interactive-mode selected
> Set mac packet forwarding mode
> Warning: NUMA should be configured manually by using --port-numa-config and --ring-numa-config parameters along with --numa.
> testpmd: create a new mbuf pool <mbuf_pool_socket_0>: n=203456, size=2176, socket=0
> testpmd: preferred mempool ops selected: ring_mp_mc
> 
> Warning! port-topology=paired and odd forward ports number, the last port will pair with itself.
> 
> Configuring Port 1 (socket 0)
> Port 1: 00:15:5D:26:2B:00
> Checking link statuses...
> Done
> testpmd> port stop 1
> Stopping ports...
> Checking link statuses...
> Done
> testpmd>
> Stopping port 1...
> Stopping ports...
> Done
> 
> Shutting down port 1...
> Closing ports...
> Done
> 
> Bye...
> """
> 
> My terminal gets broken at this point, and I have to reinitialize it with a "reset".
> 
> - Ali

Hi Ali,

Thanks for the report, I am looking into it.

Are you testing failsafe on Azure?

I see a segfault currently at startup, so in any case there are fixes to be pushed.
I'll see afterward if I need a specific platform to reproduce your bug.

Regards,
-- 
Gaëtan

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-stable] [dpdk-dev]   [PATCH] net/failsafe: fix fd leak
  2020-05-04 16:22       ` Gaëtan Rivet
@ 2020-05-04 16:28         ` Stephen Hemminger
  2020-05-05  9:47           ` Ali Alnubani
  2020-05-05  9:14         ` Ali Alnubani
  1 sibling, 1 reply; 9+ messages in thread
From: Stephen Hemminger @ 2020-05-04 16:28 UTC (permalink / raw)
  To: Gaëtan Rivet
  Cc: Ali Alnubani, Ferruh Yigit, wangyunjian, dev, jerry.lilijun,
	xudingke, stable, Raslan Darawsheh

On Mon, 4 May 2020 18:22:26 +0200
Gaëtan Rivet <grive@u256.net> wrote:

> On 03/05/20 11:33 +0000, Ali Alnubani wrote:
> > Hi,
> >   
> > > -----Original Message-----
> > > From: dev <dev-bounces@dpdk.org> On Behalf Of Ferruh Yigit
> > > Sent: Monday, April 27, 2020 7:56 PM
> > > To: Gaëtan Rivet <grive@u256.net>; wangyunjian
> > > <wangyunjian@huawei.com>
> > > Cc: dev@dpdk.org; jerry.lilijun@huawei.com; xudingke@huawei.com;
> > > stable@dpdk.org
> > > Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH] net/failsafe: fix fd leak
> > > 
> > > On 4/27/2020 12:12 PM, Gaëtan Rivet wrote:  
> > > > On 27/04/20 18:44 +0800, wangyunjian wrote:  
> > > >> From: Yunjian Wang <wangyunjian@huawei.com>
> > > >>
> > > >> Zero is a valid fd. The fd won't be closed thus leading fd leak, when
> > > >> it is zero.
> > > >>
> > > >> Fixes: f234e5bd996d ("net/failsafe: register slaves Rx interrupts")
> > > >> Fixes: 9e0360aebf23 ("net/failsafe: register as Rx interrupt mode")
> > > >> Cc: stable@dpdk.org
> > > >>  
> > > >
> > > > Hello Yunjian,
> > > >
> > > > Nothing prevents a DPDK app from closing 0 and getting it from another
> > > > call, good catch.
> > > >  
> > > >> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>  
> > > >
> > > > Acked-by: Gaetan Rivet <grive@u256.net>  
> > > 
> > > Applied to dpdk-next-net/master, thanks.  
> > 
> > This patch is causing Testpmd to quit when I issue a "port stop" command. Testpmd log:
> > 
> > """
> > x86_64-native-linuxapp-gcc/build/app/test-pmd/testpmd -n 4 -- -i --forward-mode=mac
> > EAL: Detected 8 lcore(s)
> > EAL: Detected 1 NUMA nodes
> > EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
> > EAL: Selected IOVA mode 'PA'
> > EAL: No available hugepages reported in hugepages-1048576kB
> > EAL: Probing VFIO support...
> > EAL: PCI device 0002:00:02.0 on NUMA socket 0
> > EAL:   probe driver: 15b3:1004 net_mlx4
> > Interactive-mode selected
> > Set mac packet forwarding mode
> > Warning: NUMA should be configured manually by using --port-numa-config and --ring-numa-config parameters along with --numa.
> > testpmd: create a new mbuf pool <mbuf_pool_socket_0>: n=203456, size=2176, socket=0
> > testpmd: preferred mempool ops selected: ring_mp_mc
> > 
> > Warning! port-topology=paired and odd forward ports number, the last port will pair with itself.
> > 
> > Configuring Port 1 (socket 0)
> > Port 1: 00:15:5D:26:2B:00
> > Checking link statuses...
> > Done  
> > testpmd> port stop 1  
> > Stopping ports...
> > Checking link statuses...
> > Done  
> > testpmd>  
> > Stopping port 1...
> > Stopping ports...
> > Done
> > 
> > Shutting down port 1...
> > Closing ports...
> > Done
> > 
> > Bye...
> > """
> > 
> > My terminal gets broken at this point, and I have to reinitialize it with a "reset".

The problem is that you did not blacklist the PCI address of the Mellanox device associated with
your login session (normally this is the PCI device associated with eth0).

By default, DPDK will take over all VF devices it finds as part of the Mellanox device
startup. This means the traffic that was going to the VF associated with eth0 (your ssh)
is now going to DPDK; which is not what you want.

The solution is to either use blacklist (-b option) or whitelist (-w option) to get only
the PCI devices you want to be part of the DPDK.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-stable] [dpdk-dev]   [PATCH] net/failsafe: fix fd leak
  2020-05-04 16:22       ` Gaëtan Rivet
  2020-05-04 16:28         ` Stephen Hemminger
@ 2020-05-05  9:14         ` Ali Alnubani
  2020-05-05 18:35           ` Gaëtan Rivet
  1 sibling, 1 reply; 9+ messages in thread
From: Ali Alnubani @ 2020-05-05  9:14 UTC (permalink / raw)
  To: Gaëtan Rivet
  Cc: Ferruh Yigit, wangyunjian, dev, jerry.lilijun, xudingke, stable,
	Raslan Darawsheh

> -----Original Message-----
> From: Gaëtan Rivet <grive@u256.net>
> Sent: Monday, May 4, 2020 7:22 PM
> To: Ali Alnubani <alialnu@mellanox.com>
> Cc: Ferruh Yigit <ferruh.yigit@intel.com>; wangyunjian
> <wangyunjian@huawei.com>; dev@dpdk.org; jerry.lilijun@huawei.com;
> xudingke@huawei.com; stable@dpdk.org; Raslan Darawsheh
> <rasland@mellanox.com>
> Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH] net/failsafe: fix fd leak
> 
> On 03/05/20 11:33 +0000, Ali Alnubani wrote:
> > Hi,
> >
> > > -----Original Message-----
> > > From: dev <dev-bounces@dpdk.org> On Behalf Of Ferruh Yigit
> > > Sent: Monday, April 27, 2020 7:56 PM
> > > To: Gaëtan Rivet <grive@u256.net>; wangyunjian
> > > <wangyunjian@huawei.com>
> > > Cc: dev@dpdk.org; jerry.lilijun@huawei.com; xudingke@huawei.com;
> > > stable@dpdk.org
> > > Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH] net/failsafe: fix fd
> > > leak
> > >
> > > On 4/27/2020 12:12 PM, Gaëtan Rivet wrote:
> > > > On 27/04/20 18:44 +0800, wangyunjian wrote:
> > > >> From: Yunjian Wang <wangyunjian@huawei.com>
> > > >>
> > > >> Zero is a valid fd. The fd won't be closed thus leading fd leak,
> > > >> when it is zero.
> > > >>
> > > >> Fixes: f234e5bd996d ("net/failsafe: register slaves Rx
> > > >> interrupts")
> > > >> Fixes: 9e0360aebf23 ("net/failsafe: register as Rx interrupt
> > > >> mode")
> > > >> Cc: stable@dpdk.org
> > > >>
> > > >
> > > > Hello Yunjian,
> > > >
> > > > Nothing prevents a DPDK app from closing 0 and getting it from
> > > > another call, good catch.
> > > >
> > > >> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
> > > >
> > > > Acked-by: Gaetan Rivet <grive@u256.net>
> > >
> > > Applied to dpdk-next-net/master, thanks.
> >
> > This patch is causing Testpmd to quit when I issue a "port stop" command.
> Testpmd log:
> >
> > """
> > x86_64-native-linuxapp-gcc/build/app/test-pmd/testpmd -n 4 -- -i
> > --forward-mode=mac
> > EAL: Detected 8 lcore(s)
> > EAL: Detected 1 NUMA nodes
> > EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
> > EAL: Selected IOVA mode 'PA'
> > EAL: No available hugepages reported in hugepages-1048576kB
> > EAL: Probing VFIO support...
> > EAL: PCI device 0002:00:02.0 on NUMA socket 0
> > EAL:   probe driver: 15b3:1004 net_mlx4
> > Interactive-mode selected
> > Set mac packet forwarding mode
> > Warning: NUMA should be configured manually by using --port-numa-config
> and --ring-numa-config parameters along with --numa.
> > testpmd: create a new mbuf pool <mbuf_pool_socket_0>: n=203456,
> > size=2176, socket=0
> > testpmd: preferred mempool ops selected: ring_mp_mc
> >
> > Warning! port-topology=paired and odd forward ports number, the last port
> will pair with itself.
> >
> > Configuring Port 1 (socket 0)
> > Port 1: 00:15:5D:26:2B:00
> > Checking link statuses...
> > Done
> > testpmd> port stop 1
> > Stopping ports...
> > Checking link statuses...
> > Done
> > testpmd>
> > Stopping port 1...
> > Stopping ports...
> > Done
> >
> > Shutting down port 1...
> > Closing ports...
> > Done
> >
> > Bye...
> > """
> >
> > My terminal gets broken at this point, and I have to reinitialize it with a
> "reset".
> >
> > - Ali
> 
> Hi Ali,
> 
> Thanks for the report, I am looking into it.
> 
> Are you testing failsafe on Azure?

This reproduces with Failsafe, but not necessarily on Azure. You can try to reproduce on any platform if you pass something like '-w 00:00.0 --vdev="net_failsafe0,dev(0000:08:00.0)"'.

> 
> I see a segfault currently at startup, so in any case there are fixes to be
> pushed.
> I'll see afterward if I need a specific platform to reproduce your bug.
> 
> Regards,
> --
> Gaëtan

Regards,
Ali

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-stable] [dpdk-dev]   [PATCH] net/failsafe: fix fd leak
  2020-05-04 16:28         ` Stephen Hemminger
@ 2020-05-05  9:47           ` Ali Alnubani
  0 siblings, 0 replies; 9+ messages in thread
From: Ali Alnubani @ 2020-05-05  9:47 UTC (permalink / raw)
  To: Stephen Hemminger
  Cc: Ferruh Yigit, wangyunjian, dev, jerry.lilijun, xudingke, stable,
	Raslan Darawsheh, Gaëtan Rivet

Hi Stephen,

> -----Original Message-----
> From: Stephen Hemminger <stephen@networkplumber.org>
> Sent: Monday, May 4, 2020 7:29 PM
> To: Gaëtan Rivet <grive@u256.net>
> Cc: Ali Alnubani <alialnu@mellanox.com>; Ferruh Yigit
> <ferruh.yigit@intel.com>; wangyunjian <wangyunjian@huawei.com>;
> dev@dpdk.org; jerry.lilijun@huawei.com; xudingke@huawei.com;
> stable@dpdk.org; Raslan Darawsheh <rasland@mellanox.com>
> Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH] net/failsafe: fix fd leak
> 
> On Mon, 4 May 2020 18:22:26 +0200
> Gaëtan Rivet <grive@u256.net> wrote:
> 
> > On 03/05/20 11:33 +0000, Ali Alnubani wrote:
> > > Hi,
> > >
> > > > -----Original Message-----
> > > > From: dev <dev-bounces@dpdk.org> On Behalf Of Ferruh Yigit
> > > > Sent: Monday, April 27, 2020 7:56 PM
> > > > To: Gaëtan Rivet <grive@u256.net>; wangyunjian
> > > > <wangyunjian@huawei.com>
> > > > Cc: dev@dpdk.org; jerry.lilijun@huawei.com; xudingke@huawei.com;
> > > > stable@dpdk.org
> > > > Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH] net/failsafe: fix fd
> > > > leak
> > > >
> > > > On 4/27/2020 12:12 PM, Gaëtan Rivet wrote:
> > > > > On 27/04/20 18:44 +0800, wangyunjian wrote:
> > > > >> From: Yunjian Wang <wangyunjian@huawei.com>
> > > > >>
> > > > >> Zero is a valid fd. The fd won't be closed thus leading fd
> > > > >> leak, when it is zero.
> > > > >>
> > > > >> Fixes: f234e5bd996d ("net/failsafe: register slaves Rx
> > > > >> interrupts")
> > > > >> Fixes: 9e0360aebf23 ("net/failsafe: register as Rx interrupt
> > > > >> mode")
> > > > >> Cc: stable@dpdk.org
> > > > >>
> > > > >
> > > > > Hello Yunjian,
> > > > >
> > > > > Nothing prevents a DPDK app from closing 0 and getting it from
> > > > > another call, good catch.
> > > > >
> > > > >> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
> > > > >
> > > > > Acked-by: Gaetan Rivet <grive@u256.net>
> > > >
> > > > Applied to dpdk-next-net/master, thanks.
> > >
> > > This patch is causing Testpmd to quit when I issue a "port stop" command.
> Testpmd log:
> > >
> > > """
> > > x86_64-native-linuxapp-gcc/build/app/test-pmd/testpmd -n 4 -- -i
> > > --forward-mode=mac
> > > EAL: Detected 8 lcore(s)
> > > EAL: Detected 1 NUMA nodes
> > > EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
> > > EAL: Selected IOVA mode 'PA'
> > > EAL: No available hugepages reported in hugepages-1048576kB
> > > EAL: Probing VFIO support...
> > > EAL: PCI device 0002:00:02.0 on NUMA socket 0
> > > EAL:   probe driver: 15b3:1004 net_mlx4
> > > Interactive-mode selected
> > > Set mac packet forwarding mode
> > > Warning: NUMA should be configured manually by using --port-numa-config
> and --ring-numa-config parameters along with --numa.
> > > testpmd: create a new mbuf pool <mbuf_pool_socket_0>: n=203456,
> > > size=2176, socket=0
> > > testpmd: preferred mempool ops selected: ring_mp_mc
> > >
> > > Warning! port-topology=paired and odd forward ports number, the last
> port will pair with itself.
> > >
> > > Configuring Port 1 (socket 0)
> > > Port 1: 00:15:5D:26:2B:00
> > > Checking link statuses...
> > > Done
> > > testpmd> port stop 1
> > > Stopping ports...
> > > Checking link statuses...
> > > Done
> > > testpmd>
> > > Stopping port 1...
> > > Stopping ports...
> > > Done
> > >
> > > Shutting down port 1...
> > > Closing ports...
> > > Done
> > >
> > > Bye...
> > > """
> > >
> > > My terminal gets broken at this point, and I have to reinitialize it with a
> "reset".
> 
> The problem is that you did not blacklist the PCI address of the Mellanox device
> associated with your login session (normally this is the PCI device associated
> with eth0).
> 
> By default, DPDK will take over all VF devices it finds as part of the Mellanox
> device startup. This means the traffic that was going to the VF associated with
> eth0 (your ssh) is now going to DPDK; which is not what you want.
> 
> The solution is to either use blacklist (-b option) or whitelist (-w option) to get
> only the PCI devices you want to be part of the DPDK.

I'm confused.
I don't think my login interface was being whitelisted in DPDK because my issue isn't that I lose my connection, it's that testpmd quits when I stop a port.

Regards,
Ali

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-stable] [dpdk-dev]   [PATCH] net/failsafe: fix fd leak
  2020-05-05  9:14         ` Ali Alnubani
@ 2020-05-05 18:35           ` Gaëtan Rivet
  0 siblings, 0 replies; 9+ messages in thread
From: Gaëtan Rivet @ 2020-05-05 18:35 UTC (permalink / raw)
  To: Ali Alnubani
  Cc: Ferruh Yigit, wangyunjian, dev, jerry.lilijun, xudingke, stable,
	Raslan Darawsheh

On 05/05/20 09:14 +0000, Ali Alnubani wrote:
> > -----Original Message-----
> > From: Gaëtan Rivet <grive@u256.net>
> > Sent: Monday, May 4, 2020 7:22 PM
> > To: Ali Alnubani <alialnu@mellanox.com>
> > Cc: Ferruh Yigit <ferruh.yigit@intel.com>; wangyunjian
> > <wangyunjian@huawei.com>; dev@dpdk.org; jerry.lilijun@huawei.com;
> > xudingke@huawei.com; stable@dpdk.org; Raslan Darawsheh
> > <rasland@mellanox.com>
> > Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH] net/failsafe: fix fd leak
> > 
> > On 03/05/20 11:33 +0000, Ali Alnubani wrote:
> > > Hi,
> > >
> > > > -----Original Message-----
> > > > From: dev <dev-bounces@dpdk.org> On Behalf Of Ferruh Yigit
> > > > Sent: Monday, April 27, 2020 7:56 PM
> > > > To: Gaëtan Rivet <grive@u256.net>; wangyunjian
> > > > <wangyunjian@huawei.com>
> > > > Cc: dev@dpdk.org; jerry.lilijun@huawei.com; xudingke@huawei.com;
> > > > stable@dpdk.org
> > > > Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH] net/failsafe: fix fd
> > > > leak
> > > >
> > > > On 4/27/2020 12:12 PM, Gaëtan Rivet wrote:
> > > > > On 27/04/20 18:44 +0800, wangyunjian wrote:
> > > > >> From: Yunjian Wang <wangyunjian@huawei.com>
> > > > >>
> > > > >> Zero is a valid fd. The fd won't be closed thus leading fd leak,
> > > > >> when it is zero.
> > > > >>
> > > > >> Fixes: f234e5bd996d ("net/failsafe: register slaves Rx
> > > > >> interrupts")
> > > > >> Fixes: 9e0360aebf23 ("net/failsafe: register as Rx interrupt
> > > > >> mode")
> > > > >> Cc: stable@dpdk.org
> > > > >>
> > > > >
> > > > > Hello Yunjian,
> > > > >
> > > > > Nothing prevents a DPDK app from closing 0 and getting it from
> > > > > another call, good catch.
> > > > >
> > > > >> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
> > > > >
> > > > > Acked-by: Gaetan Rivet <grive@u256.net>
> > > >
> > > > Applied to dpdk-next-net/master, thanks.
> > >
> > > This patch is causing Testpmd to quit when I issue a "port stop" command.
> > Testpmd log:
> > >
> > > """
> > > x86_64-native-linuxapp-gcc/build/app/test-pmd/testpmd -n 4 -- -i
> > > --forward-mode=mac
> > > EAL: Detected 8 lcore(s)
> > > EAL: Detected 1 NUMA nodes
> > > EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
> > > EAL: Selected IOVA mode 'PA'
> > > EAL: No available hugepages reported in hugepages-1048576kB
> > > EAL: Probing VFIO support...
> > > EAL: PCI device 0002:00:02.0 on NUMA socket 0
> > > EAL:   probe driver: 15b3:1004 net_mlx4
> > > Interactive-mode selected
> > > Set mac packet forwarding mode
> > > Warning: NUMA should be configured manually by using --port-numa-config
> > and --ring-numa-config parameters along with --numa.
> > > testpmd: create a new mbuf pool <mbuf_pool_socket_0>: n=203456,
> > > size=2176, socket=0
> > > testpmd: preferred mempool ops selected: ring_mp_mc
> > >
> > > Warning! port-topology=paired and odd forward ports number, the last port
> > will pair with itself.
> > >
> > > Configuring Port 1 (socket 0)
> > > Port 1: 00:15:5D:26:2B:00
> > > Checking link statuses...
> > > Done
> > > testpmd> port stop 1
> > > Stopping ports...
> > > Checking link statuses...
> > > Done
> > > testpmd>
> > > Stopping port 1...
> > > Stopping ports...
> > > Done
> > >
> > > Shutting down port 1...
> > > Closing ports...
> > > Done
> > >
> > > Bye...
> > > """
> > >
> > > My terminal gets broken at this point, and I have to reinitialize it with a
> > "reset".
> > >
> > > - Ali
> > 
> > Hi Ali,
> > 
> > Thanks for the report, I am looking into it.
> > 
> > Are you testing failsafe on Azure?
> 
> This reproduces with Failsafe, but not necessarily on Azure. You can try to reproduce on any platform if you pass something like '-w 00:00.0 --vdev="net_failsafe0,dev(0000:08:00.0)"'.
> 

Hi,

Indeed, I am able to reproduce the issue using this command:
   bash> ./build/app/dpdk-testpmd -n4 -m 4096 --no-huge --vdev='net_failsafe0,dev(net_ring0)' -- -i
(no need of PCI bus nor hugepages to validate failsafe sometimes).

I was asking about Azure because you did not give the command line
options for fail-safe, so I assumed it had been probed automagically.

I made a fix, will send soon.

Regards,
-- 
Gaëtan

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2020-05-05 18:35 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-27 10:44 [dpdk-stable] [dpdk-dev] [PATCH] net/failsafe: fix fd leak wangyunjian
2020-04-27 11:12 ` Gaëtan Rivet
2020-04-27 16:55   ` Ferruh Yigit
2020-05-03 11:33     ` Ali Alnubani
2020-05-04 16:22       ` Gaëtan Rivet
2020-05-04 16:28         ` Stephen Hemminger
2020-05-05  9:47           ` Ali Alnubani
2020-05-05  9:14         ` Ali Alnubani
2020-05-05 18:35           ` Gaëtan Rivet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).