DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH] app/testpmd: handle IEEE1588 init fail
@ 2024-03-30  7:44 Dengdui Huang
  2024-04-05 15:36 ` Singh, Aman Deep
  2024-04-05 16:44 ` Stephen Hemminger
  0 siblings, 2 replies; 8+ messages in thread
From: Dengdui Huang @ 2024-03-30  7:44 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, aman.deep.singh, yuying.zhang, liuyonglong

When the port's timestamping function failed to initialize
(for example, the device does not support PTP), the packets
received by the hardware do not contain the timestamp.
In this case, IEEE1588 packet forwarding should not start.
This patch fix it.

Plus, adding a failure message when failed to disable PTP.

Fixes: a78040c990cb ("app/testpmd: update forward engine beginning")
Cc: stable@dpdk.org

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
---
 app/test-pmd/ieee1588fwd.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/app/test-pmd/ieee1588fwd.c b/app/test-pmd/ieee1588fwd.c
index 3371771751..afea7735c7 100644
--- a/app/test-pmd/ieee1588fwd.c
+++ b/app/test-pmd/ieee1588fwd.c
@@ -197,14 +197,23 @@ ieee1588_packet_fwd(struct fwd_stream *fs)
 static int
 port_ieee1588_fwd_begin(portid_t pi)
 {
-	rte_eth_timesync_enable(pi);
-	return 0;
+	int ret;
+
+	ret = rte_eth_timesync_enable(pi);
+	if (ret)
+		printf("Port %u enable PTP failed, ret = %d\n", pi, ret);
+
+	return ret;
 }
 
 static void
 port_ieee1588_fwd_end(portid_t pi)
 {
-	rte_eth_timesync_disable(pi);
+	int ret;
+
+	ret = rte_eth_timesync_disable(pi);
+	if (ret)
+		printf("Port %u disable PTP failed, ret = %d\n", pi, ret);
 }
 
 static void
-- 
2.33.0


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

* Re: [PATCH] app/testpmd: handle IEEE1588 init fail
  2024-03-30  7:44 [PATCH] app/testpmd: handle IEEE1588 init fail Dengdui Huang
@ 2024-04-05 15:36 ` Singh, Aman Deep
  2024-04-05 16:44 ` Stephen Hemminger
  1 sibling, 0 replies; 8+ messages in thread
From: Singh, Aman Deep @ 2024-04-05 15:36 UTC (permalink / raw)
  To: Dengdui Huang, dev; +Cc: ferruh.yigit, yuying.zhang, liuyonglong


On 3/30/2024 1:14 PM, Dengdui Huang wrote:
> When the port's timestamping function failed to initialize
> (for example, the device does not support PTP), the packets
> received by the hardware do not contain the timestamp.
> In this case, IEEE1588 packet forwarding should not start.
> This patch fix it.
>
> Plus, adding a failure message when failed to disable PTP.
>
> Fixes: a78040c990cb ("app/testpmd: update forward engine beginning")
> Cc: stable@dpdk.org
>
> Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>

Acked-by: Aman Singh <aman.deep.singh@intel.com>

> ---
>   app/test-pmd/ieee1588fwd.c | 15 ++++++++++++---
>   1 file changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/app/test-pmd/ieee1588fwd.c b/app/test-pmd/ieee1588fwd.c
> index 3371771751..afea7735c7 100644
> --- a/app/test-pmd/ieee1588fwd.c
> +++ b/app/test-pmd/ieee1588fwd.c
> @@ -197,14 +197,23 @@ ieee1588_packet_fwd(struct fwd_stream *fs)
>   static int
>   port_ieee1588_fwd_begin(portid_t pi)
>   {
> -	rte_eth_timesync_enable(pi);
> -	return 0;
> +	int ret;
> +
> +	ret = rte_eth_timesync_enable(pi);
> +	if (ret)
> +		printf("Port %u enable PTP failed, ret = %d\n", pi, ret);
> +
> +	return ret;
>   }
>   
>   static void
>   port_ieee1588_fwd_end(portid_t pi)
>   {
> -	rte_eth_timesync_disable(pi);
> +	int ret;
> +
> +	ret = rte_eth_timesync_disable(pi);
> +	if (ret)
> +		printf("Port %u disable PTP failed, ret = %d\n", pi, ret);
>   }
>   
>   static void

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

* Re: [PATCH] app/testpmd: handle IEEE1588 init fail
  2024-03-30  7:44 [PATCH] app/testpmd: handle IEEE1588 init fail Dengdui Huang
  2024-04-05 15:36 ` Singh, Aman Deep
@ 2024-04-05 16:44 ` Stephen Hemminger
  2024-04-08  5:52   ` huangdengdui
  1 sibling, 1 reply; 8+ messages in thread
From: Stephen Hemminger @ 2024-04-05 16:44 UTC (permalink / raw)
  To: Dengdui Huang
  Cc: dev, ferruh.yigit, aman.deep.singh, yuying.zhang, liuyonglong

On Sat, 30 Mar 2024 15:44:09 +0800
Dengdui Huang <huangdengdui@huawei.com> wrote:

> When the port's timestamping function failed to initialize
> (for example, the device does not support PTP), the packets
> received by the hardware do not contain the timestamp.
> In this case, IEEE1588 packet forwarding should not start.
> This patch fix it.
> 
> Plus, adding a failure message when failed to disable PTP.
> 
> Fixes: a78040c990cb ("app/testpmd: update forward engine beginning")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>

Noticed that ieee1588 part is printing errors to stdout,
but other parts of test-pmd are using stderr or TEST_PMD_LOG.

It would be good to decide on one good way to handle this
across all of testpmd.

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

* Re: [PATCH] app/testpmd: handle IEEE1588 init fail
  2024-04-05 16:44 ` Stephen Hemminger
@ 2024-04-08  5:52   ` huangdengdui
  2024-04-08  8:45     ` Ferruh Yigit
  0 siblings, 1 reply; 8+ messages in thread
From: huangdengdui @ 2024-04-08  5:52 UTC (permalink / raw)
  To: Stephen Hemminger
  Cc: dev, ferruh.yigit, aman.deep.singh, yuying.zhang, liuyonglong



On 2024/4/6 0:44, Stephen Hemminger wrote:
> On Sat, 30 Mar 2024 15:44:09 +0800
> Dengdui Huang <huangdengdui@huawei.com> wrote:
> 
>> When the port's timestamping function failed to initialize
>> (for example, the device does not support PTP), the packets
>> received by the hardware do not contain the timestamp.
>> In this case, IEEE1588 packet forwarding should not start.
>> This patch fix it.
>>
>> Plus, adding a failure message when failed to disable PTP.
>>
>> Fixes: a78040c990cb ("app/testpmd: update forward engine beginning")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
> 
> Noticed that ieee1588 part is printing errors to stdout,
> but other parts of test-pmd are using stderr or TEST_PMD_LOG.
> 
> It would be good to decide on one good way to handle this
> across all of testpmd.

Yeah, it's a bit of a mess. Is it better to use TEST_PMD_LOG?
But this is a test app, and modifying it seems unnecessary.
What should we do next?

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

* Re: [PATCH] app/testpmd: handle IEEE1588 init fail
  2024-04-08  5:52   ` huangdengdui
@ 2024-04-08  8:45     ` Ferruh Yigit
  2024-04-09  2:06       ` huangdengdui
  0 siblings, 1 reply; 8+ messages in thread
From: Ferruh Yigit @ 2024-04-08  8:45 UTC (permalink / raw)
  To: huangdengdui, Stephen Hemminger
  Cc: dev, aman.deep.singh, liuyonglong, David Marchand, Thomas Monjalon

On 4/8/2024 6:52 AM, huangdengdui wrote:
> 
> 
> On 2024/4/6 0:44, Stephen Hemminger wrote:
>> On Sat, 30 Mar 2024 15:44:09 +0800
>> Dengdui Huang <huangdengdui@huawei.com> wrote:
>>
>>> When the port's timestamping function failed to initialize
>>> (for example, the device does not support PTP), the packets
>>> received by the hardware do not contain the timestamp.
>>> In this case, IEEE1588 packet forwarding should not start.
>>> This patch fix it.
>>>
>>> Plus, adding a failure message when failed to disable PTP.
>>>
>>> Fixes: a78040c990cb ("app/testpmd: update forward engine beginning")
>>> Cc: stable@dpdk.org
>>>
>>> Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
>>
>> Noticed that ieee1588 part is printing errors to stdout,
>> but other parts of test-pmd are using stderr or TEST_PMD_LOG.
>>
>> It would be good to decide on one good way to handle this
>> across all of testpmd.
> 
> Yeah, it's a bit of a mess. Is it better to use TEST_PMD_LOG?
> But this is a test app, and modifying it seems unnecessary.
> What should we do next?
>

'TESTPMD_LOG' exists and used in a few places, but still most of the
logging done with 'printf/fprintf'.

Agree to have an agreement what to use, document it, and stick to it.


For some cases, like 'usage()' output (testpmd supported parameters), or
cmdline prompt we always want to have output, so 'printf' suits well.

Not sure where 'TESTPMD_LOG' is needed and what is the benefit. I don't
remember many cases that I want to refine testpmd app level output.
Maybe a case can be packet verbose output, but it also has its specific
command to control it.

So should we continue to 'printf/fprintf', is there any disadvantage to
do so?

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

* Re: [PATCH] app/testpmd: handle IEEE1588 init fail
  2024-04-08  8:45     ` Ferruh Yigit
@ 2024-04-09  2:06       ` huangdengdui
  2024-04-09  2:50         ` Stephen Hemminger
  0 siblings, 1 reply; 8+ messages in thread
From: huangdengdui @ 2024-04-09  2:06 UTC (permalink / raw)
  To: Ferruh Yigit, Stephen Hemminger
  Cc: dev, aman.deep.singh, liuyonglong, David Marchand, Thomas Monjalon



On 2024/4/8 16:45, Ferruh Yigit wrote:
> On 4/8/2024 6:52 AM, huangdengdui wrote:
>>
>>
>> On 2024/4/6 0:44, Stephen Hemminger wrote:
>>> On Sat, 30 Mar 2024 15:44:09 +0800
>>> Dengdui Huang <huangdengdui@huawei.com> wrote:
>>>
>>>> When the port's timestamping function failed to initialize
>>>> (for example, the device does not support PTP), the packets
>>>> received by the hardware do not contain the timestamp.
>>>> In this case, IEEE1588 packet forwarding should not start.
>>>> This patch fix it.
>>>>
>>>> Plus, adding a failure message when failed to disable PTP.
>>>>
>>>> Fixes: a78040c990cb ("app/testpmd: update forward engine beginning")
>>>> Cc: stable@dpdk.org
>>>>
>>>> Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
>>>
>>> Noticed that ieee1588 part is printing errors to stdout,
>>> but other parts of test-pmd are using stderr or TEST_PMD_LOG.
>>>
>>> It would be good to decide on one good way to handle this
>>> across all of testpmd.
>>
>> Yeah, it's a bit of a mess. Is it better to use TEST_PMD_LOG?
>> But this is a test app, and modifying it seems unnecessary.
>> What should we do next?
>>
> 
> 'TESTPMD_LOG' exists and used in a few places, but still most of the
> logging done with 'printf/fprintf'.
> 
> Agree to have an agreement what to use, document it, and stick to it.
> 
> 
> For some cases, like 'usage()' output (testpmd supported parameters), or
> cmdline prompt we always want to have output, so 'printf' suits well.
> 
> Not sure where 'TESTPMD_LOG' is needed and what is the benefit. I don't
> remember many cases that I want to refine testpmd app level output.
> Maybe a case can be packet verbose output, but it also has its specific
> command to control it.
> 
> So should we continue to 'printf/fprintf', is there any disadvantage to
> do so?
OK, 'printf/fprintf' is really necessary. Am I to understand it as follows?

'TESTPMD_LOG' is more suitable for printing app runtime context logs,
such as initialization logs and uninstallation logs.

'printf' is suitable for normal interaction with the user, such as
show port info <port_id>

When should we print to stderr?

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

* Re: [PATCH] app/testpmd: handle IEEE1588 init fail
  2024-04-09  2:06       ` huangdengdui
@ 2024-04-09  2:50         ` Stephen Hemminger
  2024-04-17  9:26           ` huangdengdui
  0 siblings, 1 reply; 8+ messages in thread
From: Stephen Hemminger @ 2024-04-09  2:50 UTC (permalink / raw)
  To: huangdengdui
  Cc: Ferruh Yigit, dev, aman.deep.singh, liuyonglong, David Marchand,
	Thomas Monjalon

On Tue, 9 Apr 2024 10:06:01 +0800
huangdengdui <huangdengdui@huawei.com> wrote:

> On 2024/4/8 16:45, Ferruh Yigit wrote:
> > On 4/8/2024 6:52 AM, huangdengdui wrote:  
> >>
> >>
> >> On 2024/4/6 0:44, Stephen Hemminger wrote:  
> >>> On Sat, 30 Mar 2024 15:44:09 +0800
> >>> Dengdui Huang <huangdengdui@huawei.com> wrote:
> >>>  
> >>>> When the port's timestamping function failed to initialize
> >>>> (for example, the device does not support PTP), the packets
> >>>> received by the hardware do not contain the timestamp.
> >>>> In this case, IEEE1588 packet forwarding should not start.
> >>>> This patch fix it.
> >>>>
> >>>> Plus, adding a failure message when failed to disable PTP.
> >>>>
> >>>> Fixes: a78040c990cb ("app/testpmd: update forward engine beginning")
> >>>> Cc: stable@dpdk.org
> >>>>
> >>>> Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>  
> >>>
> >>> Noticed that ieee1588 part is printing errors to stdout,
> >>> but other parts of test-pmd are using stderr or TEST_PMD_LOG.
> >>>
> >>> It would be good to decide on one good way to handle this
> >>> across all of testpmd.  
> >>
> >> Yeah, it's a bit of a mess. Is it better to use TEST_PMD_LOG?
> >> But this is a test app, and modifying it seems unnecessary.
> >> What should we do next?
> >>  
> > 
> > 'TESTPMD_LOG' exists and used in a few places, but still most of the
> > logging done with 'printf/fprintf'.
> > 
> > Agree to have an agreement what to use, document it, and stick to it.
> > 
> > 
> > For some cases, like 'usage()' output (testpmd supported parameters), or
> > cmdline prompt we always want to have output, so 'printf' suits well.
> > 
> > Not sure where 'TESTPMD_LOG' is needed and what is the benefit. I don't
> > remember many cases that I want to refine testpmd app level output.
> > Maybe a case can be packet verbose output, but it also has its specific
> > command to control it.
> > 
> > So should we continue to 'printf/fprintf', is there any disadvantage to
> > do so?  
> OK, 'printf/fprintf' is really necessary. Am I to understand it as follows?
> 
> 'TESTPMD_LOG' is more suitable for printing app runtime context logs,
> such as initialization logs and uninstallation logs.
> 
> 'printf' is suitable for normal interaction with the user, such as
> show port info <port_id>
> 
> When should we print to stderr?

Any Unix convention is that any error message should go to stderr.
For test-pmd, using TESTPMD_LOG has benefits and problems.
The benefit is following a convention across all the startup and error
codes. And with the color log patches, errors are highlighted.

But the current way rte_log works, the testpmd stuff ends up going
to syslog/journal which is not necessary and overly chatty.

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

* Re: [PATCH] app/testpmd: handle IEEE1588 init fail
  2024-04-09  2:50         ` Stephen Hemminger
@ 2024-04-17  9:26           ` huangdengdui
  0 siblings, 0 replies; 8+ messages in thread
From: huangdengdui @ 2024-04-17  9:26 UTC (permalink / raw)
  To: Stephen Hemminger
  Cc: Ferruh Yigit, dev, aman.deep.singh, liuyonglong, David Marchand,
	Thomas Monjalon



On 2024/4/9 10:50, Stephen Hemminger wrote:
> On Tue, 9 Apr 2024 10:06:01 +0800
> huangdengdui <huangdengdui@huawei.com> wrote:
> 
>> On 2024/4/8 16:45, Ferruh Yigit wrote:
>>> On 4/8/2024 6:52 AM, huangdengdui wrote:  
>>>>
>>>>
>>>> On 2024/4/6 0:44, Stephen Hemminger wrote:  
>>>>> On Sat, 30 Mar 2024 15:44:09 +0800
>>>>> Dengdui Huang <huangdengdui@huawei.com> wrote:
>>>>>  
>>>>>> When the port's timestamping function failed to initialize
>>>>>> (for example, the device does not support PTP), the packets
>>>>>> received by the hardware do not contain the timestamp.
>>>>>> In this case, IEEE1588 packet forwarding should not start.
>>>>>> This patch fix it.
>>>>>>
>>>>>> Plus, adding a failure message when failed to disable PTP.
>>>>>>
>>>>>> Fixes: a78040c990cb ("app/testpmd: update forward engine beginning")
>>>>>> Cc: stable@dpdk.org
>>>>>>
>>>>>> Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>  
>>>>>
>>>>> Noticed that ieee1588 part is printing errors to stdout,
>>>>> but other parts of test-pmd are using stderr or TEST_PMD_LOG.
>>>>>
>>>>> It would be good to decide on one good way to handle this
>>>>> across all of testpmd.  
>>>>
>>>> Yeah, it's a bit of a mess. Is it better to use TEST_PMD_LOG?
>>>> But this is a test app, and modifying it seems unnecessary.
>>>> What should we do next?
>>>>  
>>>
>>> 'TESTPMD_LOG' exists and used in a few places, but still most of the
>>> logging done with 'printf/fprintf'.
>>>
>>> Agree to have an agreement what to use, document it, and stick to it.
>>>
>>>
>>> For some cases, like 'usage()' output (testpmd supported parameters), or
>>> cmdline prompt we always want to have output, so 'printf' suits well.
>>>
>>> Not sure where 'TESTPMD_LOG' is needed and what is the benefit. I don't
>>> remember many cases that I want to refine testpmd app level output.
>>> Maybe a case can be packet verbose output, but it also has its specific
>>> command to control it.
>>>
>>> So should we continue to 'printf/fprintf', is there any disadvantage to
>>> do so?  
>> OK, 'printf/fprintf' is really necessary. Am I to understand it as follows?
>>
>> 'TESTPMD_LOG' is more suitable for printing app runtime context logs,
>> such as initialization logs and uninstallation logs.
>>
>> 'printf' is suitable for normal interaction with the user, such as
>> show port info <port_id>
>>
>> When should we print to stderr?
> 
> Any Unix convention is that any error message should go to stderr.
> For test-pmd, using TESTPMD_LOG has benefits and problems.
> The benefit is following a convention across all the startup and error
> codes. And with the color log patches, errors are highlighted.
> 
> But the current way rte_log works, the testpmd stuff ends up going
> to syslog/journal which is not necessary and overly chatty.

That seems hard to unify. I don't have a better idea at the moment.
Do you have a better suggestion?

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

end of thread, other threads:[~2024-04-17  9:26 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-30  7:44 [PATCH] app/testpmd: handle IEEE1588 init fail Dengdui Huang
2024-04-05 15:36 ` Singh, Aman Deep
2024-04-05 16:44 ` Stephen Hemminger
2024-04-08  5:52   ` huangdengdui
2024-04-08  8:45     ` Ferruh Yigit
2024-04-09  2:06       ` huangdengdui
2024-04-09  2:50         ` Stephen Hemminger
2024-04-17  9:26           ` huangdengdui

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