DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] driver/net/pcap fix: pcap fd leak
@ 2021-02-26 16:20 ZhangTengfei
  2021-02-26 16:46 ` Ferruh Yigit
  0 siblings, 1 reply; 5+ messages in thread
From: ZhangTengfei @ 2021-02-26 16:20 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: dev, ZhangTengfei

pcap fd was opend when vdev probed,
but not closed when vdev removed.
This bug appears in dpdk-pdump

Signed-off-by: ZhangTengfei <zypscode@outlook.com>
---
 drivers/net/pcap/rte_eth_pcap.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c
index 90f5d75ea..fb01ea924 100644
--- a/drivers/net/pcap/rte_eth_pcap.c
+++ b/drivers/net/pcap/rte_eth_pcap.c
@@ -1597,6 +1597,7 @@ pmd_pcap_remove(struct rte_vdev_device *dev)
 	if (eth_dev == NULL)
 		return 0; /* port already released */
 
+	eth_dev_stop(eth_dev);
 	eth_dev_close(eth_dev);
 	rte_eth_dev_release_port(eth_dev);
 
-- 
2.26.2


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

* Re: [dpdk-dev] [PATCH] driver/net/pcap fix: pcap fd leak
  2021-02-26 16:20 [dpdk-dev] [PATCH] driver/net/pcap fix: pcap fd leak ZhangTengfei
@ 2021-02-26 16:46 ` Ferruh Yigit
  2021-02-26 17:47   ` [dpdk-dev] 回复: " 张 杨
  0 siblings, 1 reply; 5+ messages in thread
From: Ferruh Yigit @ 2021-02-26 16:46 UTC (permalink / raw)
  To: ZhangTengfei; +Cc: dev

On 2/26/2021 4:20 PM, ZhangTengfei wrote:
> pcap fd was opend when vdev probed,
> but not closed when vdev removed.
> This bug appears in dpdk-pdump
> 
> Signed-off-by: ZhangTengfei <zypscode@outlook.com>
> ---
>   drivers/net/pcap/rte_eth_pcap.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c
> index 90f5d75ea..fb01ea924 100644
> --- a/drivers/net/pcap/rte_eth_pcap.c
> +++ b/drivers/net/pcap/rte_eth_pcap.c
> @@ -1597,6 +1597,7 @@ pmd_pcap_remove(struct rte_vdev_device *dev)
>   	if (eth_dev == NULL)
>   		return 0; /* port already released */
>   
> +	eth_dev_stop(eth_dev);
>   	eth_dev_close(eth_dev);
>   	rte_eth_dev_release_port(eth_dev);
>   
> 

Thanks for the fix,
the cleanup seems missing in 'eth_dev_close()' too, what do you think moving 
'eth_dev_stop(eth_dev);' inside the 'eth_dev_close()'?
So both 'close' and 'remove' will be covered.


Btw, you have same patch with both "ZhangTengfei <zhangtengfei@oppo.com>" sign 
and "ZhangTengfei <zypscode@outlook.com>" sign (this one), can you please 
clarify which one do you prefer?



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

* [dpdk-dev] 回复: [PATCH] driver/net/pcap fix: pcap fd leak
  2021-02-26 16:46 ` Ferruh Yigit
@ 2021-02-26 17:47   ` 张 杨
  2021-03-01 11:40     ` Ferruh Yigit
  0 siblings, 1 reply; 5+ messages in thread
From: 张 杨 @ 2021-02-26 17:47 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: dev

I think your idea is fine

What do you think just record file path in "pmd_pcap_probe()",
Perform an open operation only in "eth_dev_start()"?

When the secondary process add pcap vdev,
it send the request to primary process,
the primary process probe pcap vdev too ,
Both the two process open the same file (in function "pmd_pcap_probe()")
It's not necessary

I prefer "ZhangTengfei <zypscode@outlook.com>" sign (this one)


发送自 Windows 10 版邮件<https://go.microsoft.com/fwlink/?LinkId=550986>应用

发件人: Ferruh Yigit<mailto:ferruh.yigit@intel.com>
发送时间: 2021年2月27日 0:46
收件人: ZhangTengfei<mailto:zypscode@outlook.com>
抄送: dev@dpdk.org<mailto:dev@dpdk.org>
主题: Re: [PATCH] driver/net/pcap fix: pcap fd leak

On 2/26/2021 4:20 PM, ZhangTengfei wrote:
> pcap fd was opend when vdev probed,
> but not closed when vdev removed.
> This bug appears in dpdk-pdump
>
> Signed-off-by: ZhangTengfei <zypscode@outlook.com>
> ---
>   drivers/net/pcap/rte_eth_pcap.c | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c
> index 90f5d75ea..fb01ea924 100644
> --- a/drivers/net/pcap/rte_eth_pcap.c
> +++ b/drivers/net/pcap/rte_eth_pcap.c
> @@ -1597,6 +1597,7 @@ pmd_pcap_remove(struct rte_vdev_device *dev)
>        if (eth_dev == NULL)
>                return 0; /* port already released */
>
> +     eth_dev_stop(eth_dev);
>        eth_dev_close(eth_dev);
>        rte_eth_dev_release_port(eth_dev);
>
>

Thanks for the fix,
the cleanup seems missing in 'eth_dev_close()' too, what do you think moving
'eth_dev_stop(eth_dev);' inside the 'eth_dev_close()'?
So both 'close' and 'remove' will be covered.


Btw, you have same patch with both "ZhangTengfei <zhangtengfei@oppo.com>" sign
and "ZhangTengfei <zypscode@outlook.com>" sign (this one), can you please
clarify which one do you prefer?



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

* Re: [dpdk-dev] 回复: [PATCH] driver/net/pcap fix: pcap fd leak
  2021-02-26 17:47   ` [dpdk-dev] 回复: " 张 杨
@ 2021-03-01 11:40     ` Ferruh Yigit
  2021-03-01 15:18       ` Tengfei Zhang
  0 siblings, 1 reply; 5+ messages in thread
From: Ferruh Yigit @ 2021-03-01 11:40 UTC (permalink / raw)
  To: 张 杨; +Cc: dev

Please do not top post, message moved down.

On 2/26/2021 5:47 PM, 张 杨 wrote:
>> I think your idea is fine
>> 
>> What do you think just record file path in "pmd_pcap_probe()",
>> 
>> Perform an open operation only in "eth_dev_start()"?
>> 
>> When the secondary process add pcap vdev,
>> 
>> it send the request to primary process,
>> 
>> the primary process probe pcap vdev too ,
>> 
>> Both the two process open the same file (in function "pmd_pcap_probe()")
>> 
>> It's not necessary
>> 
>> I prefer "ZhangTengfei <zypscode@outlook.com>" sign (this one)
>> 
>> 发送自Windows 10 版邮件 <https://go.microsoft.com/fwlink/?LinkId=550986>应用
>> 
>> *发件人: *Ferruh Yigit <mailto:ferruh.yigit@intel.com>
>> *发送时间: *2021年2月27日0:46
>> *收件人: *ZhangTengfei <mailto:zypscode@outlook.com>
>> *抄送: *dev@dpdk.org <mailto:dev@dpdk.org>
>> *主题: *Re: [PATCH] driver/net/pcap fix: pcap fd leak
>> 
>> On 2/26/2021 4:20 PM, ZhangTengfei wrote:
>>> pcap fd was opend when vdev probed,
>>> but not closed when vdev removed.
>>> This bug appears in dpdk-pdump
>>> 
>>> Signed-off-by: ZhangTengfei <zypscode@outlook.com>
>>> ---
>>>   drivers/net/pcap/rte_eth_pcap.c | 1 +
>>>   1 file changed, 1 insertion(+)
>>> 
>>> diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c
>>> index 90f5d75ea..fb01ea924 100644
>>> --- a/drivers/net/pcap/rte_eth_pcap.c
>>> +++ b/drivers/net/pcap/rte_eth_pcap.c
>>> @@ -1597,6 +1597,7 @@ pmd_pcap_remove(struct rte_vdev_device *dev)
>>>        if (eth_dev == NULL)
>>>                return 0; /* port already released */
>>>   
>>> +     eth_dev_stop(eth_dev);
>>>        eth_dev_close(eth_dev);
>>>        rte_eth_dev_release_port(eth_dev);
>>>   
>>> 
>> 
>> Thanks for the fix,
>> the cleanup seems missing in 'eth_dev_close()' too, what do you think moving
>> 'eth_dev_stop(eth_dev);' inside the 'eth_dev_close()'?
>> So both 'close' and 'remove' will be covered.
>> 
>> 
>> Btw, you have same patch with both "ZhangTengfei <zhangtengfei@oppo.com>" sign
>> and "ZhangTengfei <zypscode@outlook.com>" sign (this one), can you please
>> clarify which one do you prefer?
>> 
 >
 > I think your idea is fine
 >
 > What do you think just record file path in "pmd_pcap_probe()",
 > Perform an open operation only in "eth_dev_start()"?
 >
 > When the secondary process add pcap vdev,
 > it send the request to primary process,
 > the primary process probe pcap vdev too ,>
 > Both the two process open the same file (in function "pmd_pcap_probe()")
 > It's not necessary
 >

Opening pcap helps us fail early in probe() if something is wrong, otherwise the 
driver probed and the problem detected in the start() when it is too late.
start() also opens pcap if it is not already opened.

In your usecase, if the pcap added by the secondary with the intention to use 
only by the secondary, yes primary process also opens the pcap unnecessarily, 
but that shouldn't be really a concern, this is one time cost in probe().

 > I prefer "ZhangTengfei <zypscode@outlook.com>" sign (this one)

OK, also can you please use "Name Surname <email@address.com>" format, to be 
consistent, I guess for you it means as following:
Tengfei Zhang <zypscode@outlook.com>

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

* Re: [dpdk-dev] 回复: [PATCH] driver/net/pcap fix: pcap fd leak
  2021-03-01 11:40     ` Ferruh Yigit
@ 2021-03-01 15:18       ` Tengfei Zhang
  0 siblings, 0 replies; 5+ messages in thread
From: Tengfei Zhang @ 2021-03-01 15:18 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: dev

On 2021/3/1 下午7:40, Ferruh Yigit wrote:
> Please do not top post, message moved down.
>
> On 2/26/2021 5:47 PM, 张 杨 wrote:
>>> I think your idea is fine
>>>
>>> What do you think just record file path in "pmd_pcap_probe()",
>>>
>>> Perform an open operation only in "eth_dev_start()"?
>>>
>>> When the secondary process add pcap vdev,
>>>
>>> it send the request to primary process,
>>>
>>> the primary process probe pcap vdev too ,
>>>
>>> Both the two process open the same file (in function 
>>> "pmd_pcap_probe()")
>>>
>>> It's not necessary
>>>
>>> I prefer "ZhangTengfei <zypscode@outlook.com>" sign (this one)
>>>
>>> 发送自Windows 10 版邮件 
>>> <https://go.microsoft.com/fwlink/?LinkId=550986>应用
>>>
>>> *发件人: *Ferruh Yigit <mailto:ferruh.yigit@intel.com>
>>> *发送时间: *2021年2月27日0:46
>>> *收件人: *ZhangTengfei <mailto:zypscode@outlook.com>
>>> *抄送: *dev@dpdk.org <mailto:dev@dpdk.org>
>>> *主题: *Re: [PATCH] driver/net/pcap fix: pcap fd leak
>>>
>>> On 2/26/2021 4:20 PM, ZhangTengfei wrote:
>>>> pcap fd was opend when vdev probed,
>>>> but not closed when vdev removed.
>>>> This bug appears in dpdk-pdump
>>>>
>>>> Signed-off-by: ZhangTengfei <zypscode@outlook.com>
>>>> ---
>>>>   drivers/net/pcap/rte_eth_pcap.c | 1 +
>>>>   1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/drivers/net/pcap/rte_eth_pcap.c 
>>>> b/drivers/net/pcap/rte_eth_pcap.c
>>>> index 90f5d75ea..fb01ea924 100644
>>>> --- a/drivers/net/pcap/rte_eth_pcap.c
>>>> +++ b/drivers/net/pcap/rte_eth_pcap.c
>>>> @@ -1597,6 +1597,7 @@ pmd_pcap_remove(struct rte_vdev_device *dev)
>>>>        if (eth_dev == NULL)
>>>>                return 0; /* port already released */
>>>>   +     eth_dev_stop(eth_dev);
>>>>        eth_dev_close(eth_dev);
>>>>        rte_eth_dev_release_port(eth_dev);
>>>>
>>>
>>> Thanks for the fix,
>>> the cleanup seems missing in 'eth_dev_close()' too, what do you 
>>> think moving
>>> 'eth_dev_stop(eth_dev);' inside the 'eth_dev_close()'?
>>> So both 'close' and 'remove' will be covered.
>>>
>>>
>>> Btw, you have same patch with both "ZhangTengfei 
>>> <zhangtengfei@oppo.com>" sign
>>> and "ZhangTengfei <zypscode@outlook.com>" sign (this one), can you 
>>> please
>>> clarify which one do you prefer?
>>>
> >
> > I think your idea is fine
> >
> > What do you think just record file path in "pmd_pcap_probe()",
> > Perform an open operation only in "eth_dev_start()"?
> >
> > When the secondary process add pcap vdev,
> > it send the request to primary process,
> > the primary process probe pcap vdev too ,>
> > Both the two process open the same file (in function 
> "pmd_pcap_probe()")
> > It's not necessary
> >
>
> Opening pcap helps us fail early in probe() if something is wrong, 
> otherwise the driver probed and the problem detected in the start() 
> when it is too late.
> start() also opens pcap if it is not already opened.
>
> In your usecase, if the pcap added by the secondary with the intention 
> to use only by the secondary, yes primary process also opens the pcap 
> unnecessarily, but that shouldn't be really a concern, this is one 
> time cost in probe().
>
> > I prefer "ZhangTengfei <zypscode@outlook.com>" sign (this one)
>
> OK, also can you please use "Name Surname <email@address.com>" format, 
> to be consistent, I guess for you it means as following:
> Tengfei Zhang <zypscode@outlook.com>

Rarely submit code to the open source community. Thank you for your advice.

I quite agree with your  view "fail early".

I will update the patch




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

end of thread, other threads:[~2021-03-01 15:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-26 16:20 [dpdk-dev] [PATCH] driver/net/pcap fix: pcap fd leak ZhangTengfei
2021-02-26 16:46 ` Ferruh Yigit
2021-02-26 17:47   ` [dpdk-dev] 回复: " 张 杨
2021-03-01 11:40     ` Ferruh Yigit
2021-03-01 15:18       ` Tengfei Zhang

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