app/test: fix LACP handshake overtime

Message ID 20220818054341.93517-1-ke1x.zhang@intel.com (mailing list archive)
State Rejected
Delegated to: Ferruh Yigit
Headers
Series app/test: fix LACP handshake overtime |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation success Compilation OK
ci/intel-Testing fail Testing issues
ci/github-robot: build success github build: passed
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS

Commit Message

Zhang, Ke1X Aug. 18, 2022, 5:43 a.m. UTC
  Increase the loop count so that there is a longer
threshold time for the LACP handshake process.

Fixes: 5e41ab250dfa ("app/test: unit tests for bonding mode 4")
Cc: stable@dpdk.org

Signed-off-by: Ke Zhang <ke1x.zhang@intel.com>
---
 app/test/test_link_bonding_mode4.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

humin (Q) Sept. 23, 2022, 12:58 a.m. UTC | #1
Hi, Zhang,

     Why LACP handshake "overtime" in your test?

     Maybe in other occasions, 60 * delay is also not enough.

     BTW, how about config "conf.update_timeout_ms" for the test?

在 2022/8/18 13:43, Ke Zhang 写道:
> Increase the loop count so that there is a longer
> threshold time for the LACP handshake process.
>
> Fixes: 5e41ab250dfa ("app/test: unit tests for bonding mode 4")
> Cc: stable@dpdk.org
>
> Signed-off-by: Ke Zhang <ke1x.zhang@intel.com>
> ---
>   app/test/test_link_bonding_mode4.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/app/test/test_link_bonding_mode4.c b/app/test/test_link_bonding_mode4.c
> index d9b9c323c7..bfdd18cdd1 100644
> --- a/app/test/test_link_bonding_mode4.c
> +++ b/app/test/test_link_bonding_mode4.c
> @@ -613,7 +613,7 @@ bond_handshake(void)
>   
>   	/* Exchange LACP frames */
>   	all_slaves_done = 0;
> -	for (i = 0; i < 30 && all_slaves_done == 0; ++i) {
> +	for (i = 0; i < 60 && all_slaves_done == 0; ++i) {
>   		rte_delay_ms(delay);
>   
>   		all_slaves_done = 1;
  
Zhang, Ke1X Sept. 30, 2022, 1:27 a.m. UTC | #2
Hi humin:

Thanks for your comments, I test the case, I try to change

for (i = 0; i < 30 && all_slaves_done == 0; ++i)
to
for (i = 0; i < 32 && all_slaves_done == 0; ++i)

it works good, so I think 60 is enough.

And the "conf.update_timeout_ms" seems to be used as a base unit to compute in many places as below:

Test_link_bonding_mode4.c (app\test):	return conf.update_timeout_ms;
Test_link_bonding_mode4.c (app\test):	old_delay = conf.update_timeout_ms;
Test_link_bonding_mode4.c (app\test):	conf.update_timeout_ms = 10;
Test_link_bonding_mode4.c (app\test):	for (i = 0; i < old_delay/conf.update_timeout_ms * 2; i++) {
Test_link_bonding_mode4.c (app\test):		rte_delay_ms(conf.update_timeout_ms);
Test_link_bonding_mode4.c (app\test):	for (j = 0; j < conf.long_timeout_ms/conf.update_timeout_ms + 2; j++) {
Test_link_bonding_mode4.c (app\test):		rte_delay_ms(conf.update_timeout_ms);

So I didn't change the value, please confirming , many thanks.

BR
Zhangke

> -----Original Message-----
> From: humin (Q) <humin29@huawei.com>
> Sent: Friday, September 23, 2022 8:58 AM
> To: Zhang, Ke1X <ke1x.zhang@intel.com>; chas3@att.com; dev@dpdk.org
> Cc: stable@dpdk.org
> Subject: Re: [PATCH] app/test: fix LACP handshake overtime
> 
> Hi, Zhang,
> 
>      Why LACP handshake "overtime" in your test?
> 
>      Maybe in other occasions, 60 * delay is also not enough.
> 
>      BTW, how about config "conf.update_timeout_ms" for the test?
> 
> 在 2022/8/18 13:43, Ke Zhang 写道:
> > Increase the loop count so that there is a longer threshold time for
> > the LACP handshake process.
> >
> > Fixes: 5e41ab250dfa ("app/test: unit tests for bonding mode 4")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Ke Zhang <ke1x.zhang@intel.com>
> > ---
> >   app/test/test_link_bonding_mode4.c | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/app/test/test_link_bonding_mode4.c
> > b/app/test/test_link_bonding_mode4.c
> > index d9b9c323c7..bfdd18cdd1 100644
> > --- a/app/test/test_link_bonding_mode4.c
> > +++ b/app/test/test_link_bonding_mode4.c
> > @@ -613,7 +613,7 @@ bond_handshake(void)
> >
> >   	/* Exchange LACP frames */
> >   	all_slaves_done = 0;
> > -	for (i = 0; i < 30 && all_slaves_done == 0; ++i) {
> > +	for (i = 0; i < 60 && all_slaves_done == 0; ++i) {
> >   		rte_delay_ms(delay);
> >
> >   		all_slaves_done = 1;
  
Zhang, Ke1X Oct. 21, 2022, 7:33 a.m. UTC | #3
Hi humin:

Maybe in other occasions, 60 * delay is also not enough.
===================================================
Yes, maybe it is not enough for other occasions, so what value is set in you opinion?

BTW, how about config "conf.update_timeout_ms" for the test?
====================================================================================
conf.update_timeout_ms is 100 default, it is a basic unit , it is used in other place, if I changed the value, the other code logic is changed.

Thanks.

Br
Zhangke

> -----Original Message-----
> From: Zhang, Ke1X
> Sent: Friday, September 30, 2022 9:28 AM
> To: humin (Q) <humin29@huawei.com>; chas3@att.com; dev@dpdk.org
> Cc: stable@dpdk.org
> Subject: RE: [PATCH] app/test: fix LACP handshake overtime
> 
> Hi humin:
> 
> Thanks for your comments, I test the case, I try to change
> 
> for (i = 0; i < 30 && all_slaves_done == 0; ++i) to for (i = 0; i < 32 &&
> all_slaves_done == 0; ++i)
> 
> it works good, so I think 60 is enough.
> 
> And the "conf.update_timeout_ms" seems to be used as a base unit to
> compute in many places as below:
> 
> Test_link_bonding_mode4.c (app\test):	return
> conf.update_timeout_ms;
> Test_link_bonding_mode4.c (app\test):	old_delay =
> conf.update_timeout_ms;
> Test_link_bonding_mode4.c (app\test):	conf.update_timeout_ms =
> 10;
> Test_link_bonding_mode4.c (app\test):	for (i = 0; i <
> old_delay/conf.update_timeout_ms * 2; i++) {
> Test_link_bonding_mode4.c (app\test):
> 	rte_delay_ms(conf.update_timeout_ms);
> Test_link_bonding_mode4.c (app\test):	for (j = 0; j <
> conf.long_timeout_ms/conf.update_timeout_ms + 2; j++) {
> Test_link_bonding_mode4.c (app\test):
> 	rte_delay_ms(conf.update_timeout_ms);
> 
> So I didn't change the value, please confirming , many thanks.
> 
> BR
> Zhangke
> 
> > -----Original Message-----
> > From: humin (Q) <humin29@huawei.com>
> > Sent: Friday, September 23, 2022 8:58 AM
> > To: Zhang, Ke1X <ke1x.zhang@intel.com>; chas3@att.com; dev@dpdk.org
> > Cc: stable@dpdk.org
> > Subject: Re: [PATCH] app/test: fix LACP handshake overtime
> >
> > Hi, Zhang,
> >
> >      Why LACP handshake "overtime" in your test?
> >
> >      Maybe in other occasions, 60 * delay is also not enough.
> >
> >      BTW, how about config "conf.update_timeout_ms" for the test?
> >
> > 在 2022/8/18 13:43, Ke Zhang 写道:
> > > Increase the loop count so that there is a longer threshold time for
> > > the LACP handshake process.
> > >
> > > Fixes: 5e41ab250dfa ("app/test: unit tests for bonding mode 4")
> > > Cc: stable@dpdk.org
> > >
> > > Signed-off-by: Ke Zhang <ke1x.zhang@intel.com>
> > > ---
> > >   app/test/test_link_bonding_mode4.c | 2 +-
> > >   1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/app/test/test_link_bonding_mode4.c
> > > b/app/test/test_link_bonding_mode4.c
> > > index d9b9c323c7..bfdd18cdd1 100644
> > > --- a/app/test/test_link_bonding_mode4.c
> > > +++ b/app/test/test_link_bonding_mode4.c
> > > @@ -613,7 +613,7 @@ bond_handshake(void)
> > >
> > >   	/* Exchange LACP frames */
> > >   	all_slaves_done = 0;
> > > -	for (i = 0; i < 30 && all_slaves_done == 0; ++i) {
> > > +	for (i = 0; i < 60 && all_slaves_done == 0; ++i) {
> > >   		rte_delay_ms(delay);
> > >
> > >   		all_slaves_done = 1;
  
Ferruh Yigit April 17, 2024, 10:25 a.m. UTC | #4
On 8/18/2022 6:43 AM, Ke Zhang wrote:
> Increase the loop count so that there is a longer
> threshold time for the LACP handshake process.
> 
> Fixes: 5e41ab250dfa ("app/test: unit tests for bonding mode 4")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Ke Zhang <ke1x.zhang@intel.com>
>

Patch seems to fix unit test where LACP times out, but I can't reproduce
the failure, keeping old timeout value.

If this still needs to change, please send a new version describing why
change is required.
  

Patch

diff --git a/app/test/test_link_bonding_mode4.c b/app/test/test_link_bonding_mode4.c
index d9b9c323c7..bfdd18cdd1 100644
--- a/app/test/test_link_bonding_mode4.c
+++ b/app/test/test_link_bonding_mode4.c
@@ -613,7 +613,7 @@  bond_handshake(void)
 
 	/* Exchange LACP frames */
 	all_slaves_done = 0;
-	for (i = 0; i < 30 && all_slaves_done == 0; ++i) {
+	for (i = 0; i < 60 && all_slaves_done == 0; ++i) {
 		rte_delay_ms(delay);
 
 		all_slaves_done = 1;