DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] net/ixgbe: fix device hotplug remove
@ 2019-11-06  5:09 Di ChenxuX
  2019-11-07  6:28 ` [dpdk-dev] [PATCH v2] " Di ChenxuX
  0 siblings, 1 reply; 8+ messages in thread
From: Di ChenxuX @ 2019-11-06  5:09 UTC (permalink / raw)
  To: dev; +Cc: Yang Qiming, Di ChenxuX

testpmd will occur infinite loops when device hotplug remove.
We can fix the issue by using the pci generic remove function

Fixes: f2f4990eff94 ("net/ixgbe: release port upon close")

Signed-off-by: Di ChenxuX <chenxux.di@intel.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index dbce7a80e..84b98071d 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -1796,16 +1796,7 @@ eth_ixgbe_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
 
 static int eth_ixgbe_pci_remove(struct rte_pci_device *pci_dev)
 {
-	struct rte_eth_dev *ethdev;
-
-	ethdev = rte_eth_dev_allocated(pci_dev->device.name);
-	if (!ethdev)
-		return -ENODEV;
-
-	if (ethdev->data->dev_flags & RTE_ETH_DEV_REPRESENTOR)
-		return rte_eth_dev_destroy(ethdev, ixgbe_vf_representor_uninit);
-	else
-		return rte_eth_dev_destroy(ethdev, eth_ixgbe_dev_uninit);
+	return rte_eth_dev_pci_generic_remove(pci_dev, eth_ixgbe_dev_uninit);
 }
 
 static struct rte_pci_driver rte_ixgbe_pmd = {
-- 
2.17.1


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

* [dpdk-dev] [PATCH v2] net/ixgbe: fix device hotplug remove
  2019-11-06  5:09 [dpdk-dev] [PATCH] net/ixgbe: fix device hotplug remove Di ChenxuX
@ 2019-11-07  6:28 ` Di ChenxuX
  2019-11-11  8:41   ` Ye Xiaolong
  2019-11-12  6:00   ` [dpdk-dev] [PATCH v3] " Di ChenxuX
  0 siblings, 2 replies; 8+ messages in thread
From: Di ChenxuX @ 2019-11-07  6:28 UTC (permalink / raw)
  To: dev; +Cc: Yang Qiming, Di ChenxuX

testpmd will occur infinite loops when device hotplug remove.
We can fix the issue by using the pci generic remove function

Fixes: f2f4990eff94 ("net/ixgbe: release port upon close")

Signed-off-by: Di ChenxuX <chenxux.di@intel.com>

v2:
reverted the code about ixgbe_vf_representor_uninit.
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index dbce7a80e..7ec55a4de 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -1800,12 +1800,13 @@ static int eth_ixgbe_pci_remove(struct rte_pci_device *pci_dev)
 
 	ethdev = rte_eth_dev_allocated(pci_dev->device.name);
 	if (!ethdev)
-		return -ENODEV;
+		return 0;
 
 	if (ethdev->data->dev_flags & RTE_ETH_DEV_REPRESENTOR)
 		return rte_eth_dev_destroy(ethdev, ixgbe_vf_representor_uninit);
 	else
-		return rte_eth_dev_destroy(ethdev, eth_ixgbe_dev_uninit);
+		return rte_eth_dev_pci_generic_remove(pci_dev,
+						eth_ixgbe_dev_uninit);
 }
 
 static struct rte_pci_driver rte_ixgbe_pmd = {
-- 
2.17.1


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

* Re: [dpdk-dev] [PATCH v2] net/ixgbe: fix device hotplug remove
  2019-11-07  6:28 ` [dpdk-dev] [PATCH v2] " Di ChenxuX
@ 2019-11-11  8:41   ` Ye Xiaolong
  2019-11-11  8:50     ` Di, ChenxuX
  2019-11-12  6:00   ` [dpdk-dev] [PATCH v3] " Di ChenxuX
  1 sibling, 1 reply; 8+ messages in thread
From: Ye Xiaolong @ 2019-11-11  8:41 UTC (permalink / raw)
  To: Di ChenxuX; +Cc: dev, Yang Qiming

On 11/07, Di ChenxuX wrote:
>testpmd will occur infinite loops when device hotplug remove.
>We can fix the issue by using the pci generic remove function
>
>Fixes: f2f4990eff94 ("net/ixgbe: release port upon close")
>
>Signed-off-by: Di ChenxuX <chenxux.di@intel.com>
>
>v2:
>reverted the code about ixgbe_vf_representor_uninit.
>---
> drivers/net/ixgbe/ixgbe_ethdev.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
>diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
>index dbce7a80e..7ec55a4de 100644
>--- a/drivers/net/ixgbe/ixgbe_ethdev.c
>+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
>@@ -1800,12 +1800,13 @@ static int eth_ixgbe_pci_remove(struct rte_pci_device *pci_dev)
> 
> 	ethdev = rte_eth_dev_allocated(pci_dev->device.name);
> 	if (!ethdev)
>-		return -ENODEV;
>+		return 0;
> 
> 	if (ethdev->data->dev_flags & RTE_ETH_DEV_REPRESENTOR)
> 		return rte_eth_dev_destroy(ethdev, ixgbe_vf_representor_uninit);

Can we use rte_eth_dev_pci_generic_remove for vf representor as well?

Thanks,
Xiaolong
> 	else
>-		return rte_eth_dev_destroy(ethdev, eth_ixgbe_dev_uninit);
>+		return rte_eth_dev_pci_generic_remove(pci_dev,
>+						eth_ixgbe_dev_uninit);
> }
> 
> static struct rte_pci_driver rte_ixgbe_pmd = {
>-- 
>2.17.1
>

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

* Re: [dpdk-dev] [PATCH v2] net/ixgbe: fix device hotplug remove
  2019-11-11  8:41   ` Ye Xiaolong
@ 2019-11-11  8:50     ` Di, ChenxuX
  2019-11-11  9:00       ` Ye Xiaolong
  0 siblings, 1 reply; 8+ messages in thread
From: Di, ChenxuX @ 2019-11-11  8:50 UTC (permalink / raw)
  To: Ye, Xiaolong; +Cc: dev, Yang, Qiming

Hi,

> -----Original Message-----
> From: Ye, Xiaolong
> Sent: Monday, November 11, 2019 4:42 PM
> To: Di, ChenxuX <chenxux.di@intel.com>
> Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>
> Subject: Re: [dpdk-dev] [PATCH v2] net/ixgbe: fix device hotplug remove
> 
> On 11/07, Di ChenxuX wrote:
> >testpmd will occur infinite loops when device hotplug remove.
> >We can fix the issue by using the pci generic remove function
> >
> >Fixes: f2f4990eff94 ("net/ixgbe: release port upon close")
> >
> >Signed-off-by: Di ChenxuX <chenxux.di@intel.com>
> >
> >v2:
> >reverted the code about ixgbe_vf_representor_uninit.
> >---
> > drivers/net/ixgbe/ixgbe_ethdev.c | 5 +++--
> > 1 file changed, 3 insertions(+), 2 deletions(-)
> >
> >diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> b/drivers/net/ixgbe/ixgbe_ethdev.c
> >index dbce7a80e..7ec55a4de 100644
> >--- a/drivers/net/ixgbe/ixgbe_ethdev.c
> >+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> >@@ -1800,12 +1800,13 @@ static int eth_ixgbe_pci_remove(struct
> rte_pci_device *pci_dev)
> >
> > 	ethdev = rte_eth_dev_allocated(pci_dev->device.name);
> > 	if (!ethdev)
> >-		return -ENODEV;
> >+		return 0;
> >
> > 	if (ethdev->data->dev_flags & RTE_ETH_DEV_REPRESENTOR)
> > 		return rte_eth_dev_destroy(ethdev,
> ixgbe_vf_representor_uninit);
> 
> Can we use rte_eth_dev_pci_generic_remove for vf representor as well?
> 

I think it can be used. Should I do it and send a new patch?

Thx
Di Chenxu

> Thanks,
> Xiaolong
> > 	else
> >-		return rte_eth_dev_destroy(ethdev, eth_ixgbe_dev_uninit);
> >+		return rte_eth_dev_pci_generic_remove(pci_dev,
> >+						eth_ixgbe_dev_uninit);
> > }
> >
> > static struct rte_pci_driver rte_ixgbe_pmd = {
> >--
> >2.17.1
> >

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

* Re: [dpdk-dev] [PATCH v2] net/ixgbe: fix device hotplug remove
  2019-11-11  8:50     ` Di, ChenxuX
@ 2019-11-11  9:00       ` Ye Xiaolong
  2019-11-11  9:38         ` Di, ChenxuX
  0 siblings, 1 reply; 8+ messages in thread
From: Ye Xiaolong @ 2019-11-11  9:00 UTC (permalink / raw)
  To: Di, ChenxuX; +Cc: dev, Yang, Qiming

On 11/11, Di, ChenxuX wrote:
>Hi,
>
>> -----Original Message-----
>> From: Ye, Xiaolong
>> Sent: Monday, November 11, 2019 4:42 PM
>> To: Di, ChenxuX <chenxux.di@intel.com>
>> Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>
>> Subject: Re: [dpdk-dev] [PATCH v2] net/ixgbe: fix device hotplug remove
>> 
>> On 11/07, Di ChenxuX wrote:
>> >testpmd will occur infinite loops when device hotplug remove.
>> >We can fix the issue by using the pci generic remove function
>> >
>> >Fixes: f2f4990eff94 ("net/ixgbe: release port upon close")
>> >
>> >Signed-off-by: Di ChenxuX <chenxux.di@intel.com>
>> >
>> >v2:
>> >reverted the code about ixgbe_vf_representor_uninit.
>> >---
>> > drivers/net/ixgbe/ixgbe_ethdev.c | 5 +++--
>> > 1 file changed, 3 insertions(+), 2 deletions(-)
>> >
>> >diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
>> b/drivers/net/ixgbe/ixgbe_ethdev.c
>> >index dbce7a80e..7ec55a4de 100644
>> >--- a/drivers/net/ixgbe/ixgbe_ethdev.c
>> >+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
>> >@@ -1800,12 +1800,13 @@ static int eth_ixgbe_pci_remove(struct
>> rte_pci_device *pci_dev)
>> >
>> > 	ethdev = rte_eth_dev_allocated(pci_dev->device.name);
>> > 	if (!ethdev)
>> >-		return -ENODEV;
>> >+		return 0;
>> >
>> > 	if (ethdev->data->dev_flags & RTE_ETH_DEV_REPRESENTOR)
>> > 		return rte_eth_dev_destroy(ethdev,
>> ixgbe_vf_representor_uninit);
>> 
>> Can we use rte_eth_dev_pci_generic_remove for vf representor as well?
>> 
>
>I think it can be used. Should I do it and send a new patch?

Yes, please send a new patch after verification, and don't forget to remove
rte_eth_dev_allocated check int eth_ixgbe_pci_remove, since it has been contained
in rte_eth_dev_pci_generic_remove.

Same for i40e patch.

Thanks,
Xiaolong

>
>Thx
>Di Chenxu
>
>> Thanks,
>> Xiaolong
>> > 	else
>> >-		return rte_eth_dev_destroy(ethdev, eth_ixgbe_dev_uninit);
>> >+		return rte_eth_dev_pci_generic_remove(pci_dev,
>> >+						eth_ixgbe_dev_uninit);
>> > }
>> >
>> > static struct rte_pci_driver rte_ixgbe_pmd = {
>> >--
>> >2.17.1
>> >

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

* Re: [dpdk-dev] [PATCH v2] net/ixgbe: fix device hotplug remove
  2019-11-11  9:00       ` Ye Xiaolong
@ 2019-11-11  9:38         ` Di, ChenxuX
  0 siblings, 0 replies; 8+ messages in thread
From: Di, ChenxuX @ 2019-11-11  9:38 UTC (permalink / raw)
  To: Ye, Xiaolong; +Cc: dev, Yang, Qiming



> -----Original Message-----
> From: Ye, Xiaolong
> Sent: Monday, November 11, 2019 5:00 PM
> To: Di, ChenxuX <chenxux.di@intel.com>
> Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>
> Subject: Re: [dpdk-dev] [PATCH v2] net/ixgbe: fix device hotplug remove
> 
> On 11/11, Di, ChenxuX wrote:
> >Hi,
> >
> >> -----Original Message-----
> >> From: Ye, Xiaolong
> >> Sent: Monday, November 11, 2019 4:42 PM
> >> To: Di, ChenxuX <chenxux.di@intel.com>
> >> Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>
> >> Subject: Re: [dpdk-dev] [PATCH v2] net/ixgbe: fix device hotplug
> >> remove
> >>
> >> On 11/07, Di ChenxuX wrote:
> >> >testpmd will occur infinite loops when device hotplug remove.
> >> >We can fix the issue by using the pci generic remove function
> >> >
> >> >Fixes: f2f4990eff94 ("net/ixgbe: release port upon close")
> >> >
> >> >Signed-off-by: Di ChenxuX <chenxux.di@intel.com>
> >> >
> >> >v2:
> >> >reverted the code about ixgbe_vf_representor_uninit.
> >> >---
> >> > drivers/net/ixgbe/ixgbe_ethdev.c | 5 +++--
> >> > 1 file changed, 3 insertions(+), 2 deletions(-)
> >> >
> >> >diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> >> b/drivers/net/ixgbe/ixgbe_ethdev.c
> >> >index dbce7a80e..7ec55a4de 100644
> >> >--- a/drivers/net/ixgbe/ixgbe_ethdev.c
> >> >+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> >> >@@ -1800,12 +1800,13 @@ static int eth_ixgbe_pci_remove(struct
> >> rte_pci_device *pci_dev)
> >> >
> >> > 	ethdev = rte_eth_dev_allocated(pci_dev->device.name);
> >> > 	if (!ethdev)
> >> >-		return -ENODEV;
> >> >+		return 0;
> >> >
> >> > 	if (ethdev->data->dev_flags & RTE_ETH_DEV_REPRESENTOR)
> >> > 		return rte_eth_dev_destroy(ethdev,
> >> ixgbe_vf_representor_uninit);
> >>
> >> Can we use rte_eth_dev_pci_generic_remove for vf representor as well?
> >>
> >
> >I think it can be used. Should I do it and send a new patch?
> 
> Yes, please send a new patch after verification, and don't forget to remove
> rte_eth_dev_allocated check int eth_ixgbe_pci_remove, since it has been
> contained in rte_eth_dev_pci_generic_remove.
> 

Ok,I will prepare new patch.
 however the ethdev->data->dev_flags need to be check, I don't think rte_eth_dev_allocated 
Can be removed.

Thx
Di Chenxu

> Same for i40e patch.
> 
> Thanks,
> Xiaolong
> 
> >
> >Thx
> >Di Chenxu
> >
> >> Thanks,
> >> Xiaolong
> >> > 	else
> >> >-		return rte_eth_dev_destroy(ethdev, eth_ixgbe_dev_uninit);
> >> >+		return rte_eth_dev_pci_generic_remove(pci_dev,
> >> >+						eth_ixgbe_dev_uninit);
> >> > }
> >> >
> >> > static struct rte_pci_driver rte_ixgbe_pmd = {
> >> >--
> >> >2.17.1
> >> >

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

* [dpdk-dev] [PATCH v3] net/ixgbe: fix device hotplug remove
  2019-11-07  6:28 ` [dpdk-dev] [PATCH v2] " Di ChenxuX
  2019-11-11  8:41   ` Ye Xiaolong
@ 2019-11-12  6:00   ` Di ChenxuX
  2019-11-13  2:11     ` Ye Xiaolong
  1 sibling, 1 reply; 8+ messages in thread
From: Di ChenxuX @ 2019-11-12  6:00 UTC (permalink / raw)
  To: dev; +Cc: Yang Qiming, Di ChenxuX

testpmd will occur infinite loops when device hotplug remove.
We can fix the issue by using the pci generic remove function

Fixes: f2f4990eff94 ("net/ixgbe: release port upon close")

Signed-off-by: Di ChenxuX <chenxux.di@intel.com>

v4:
used generic remove function for ixgbe_vf_representor_uninit.
v3:
reverted the code about ixgbe_vf_representor_uninit.
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index dbce7a80e..94721141a 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -1800,12 +1800,14 @@ static int eth_ixgbe_pci_remove(struct rte_pci_device *pci_dev)
 
 	ethdev = rte_eth_dev_allocated(pci_dev->device.name);
 	if (!ethdev)
-		return -ENODEV;
+		return 0;
 
 	if (ethdev->data->dev_flags & RTE_ETH_DEV_REPRESENTOR)
-		return rte_eth_dev_destroy(ethdev, ixgbe_vf_representor_uninit);
+		return rte_eth_dev_pci_generic_remove(pci_dev,
+					ixgbe_vf_representor_uninit);
 	else
-		return rte_eth_dev_destroy(ethdev, eth_ixgbe_dev_uninit);
+		return rte_eth_dev_pci_generic_remove(pci_dev,
+						eth_ixgbe_dev_uninit);
 }
 
 static struct rte_pci_driver rte_ixgbe_pmd = {
-- 
2.17.1


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

* Re: [dpdk-dev] [PATCH v3] net/ixgbe: fix device hotplug remove
  2019-11-12  6:00   ` [dpdk-dev] [PATCH v3] " Di ChenxuX
@ 2019-11-13  2:11     ` Ye Xiaolong
  0 siblings, 0 replies; 8+ messages in thread
From: Ye Xiaolong @ 2019-11-13  2:11 UTC (permalink / raw)
  To: Di ChenxuX; +Cc: dev, Yang Qiming

On 11/12, Di ChenxuX wrote:
>testpmd will occur infinite loops when device hotplug remove.
>We can fix the issue by using the pci generic remove function
>
>Fixes: f2f4990eff94 ("net/ixgbe: release port upon close")
>
>Signed-off-by: Di ChenxuX <chenxux.di@intel.com>
>
>v4:
>used generic remove function for ixgbe_vf_representor_uninit.
>v3:
>reverted the code about ixgbe_vf_representor_uninit.
>---

Please put the change log after '---' marker.

Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
Applied to dpdk-next-net-intel with changelog removed. Thanks.


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

end of thread, other threads:[~2019-11-13  2:14 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-06  5:09 [dpdk-dev] [PATCH] net/ixgbe: fix device hotplug remove Di ChenxuX
2019-11-07  6:28 ` [dpdk-dev] [PATCH v2] " Di ChenxuX
2019-11-11  8:41   ` Ye Xiaolong
2019-11-11  8:50     ` Di, ChenxuX
2019-11-11  9:00       ` Ye Xiaolong
2019-11-11  9:38         ` Di, ChenxuX
2019-11-12  6:00   ` [dpdk-dev] [PATCH v3] " Di ChenxuX
2019-11-13  2:11     ` Ye Xiaolong

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).