[LTP] [PATCH] testcases: cve-2017-2671: Set attempts according to cpus

Mylène Josserand mylene.josserand@bootlin.com
Mon Jul 23 09:04:15 CEST 2018


Hello,

Thank you for your review.

On Mon, 16 Jul 2018 11:32:08 +0200
Richard Palethorpe <rpalethorpe@suse.de> wrote:

> Hello,
> 
> Mylène Josserand writes:
> 
> > This test tries to run commands with 0x8000 attempts.
> > In a slow system platform, it leads to a failure
> > because of a timeout even when it is configured with
> > LTP_TIMEOUT_MUL=10.
> >
> > This commit adds a way to configure the number of attempts
> > according to the number of CPUs.
> > In case of 1 CPU and a slow platform, using 0x2000 attempts
> > with a LTP_TIMEOUT_MUL=3 make the test pass.  
> 
> I think the Fuzzy Sync library needs to be improved to remove the
> iteration constants altogether. That is, we specify how long the test(s)
> should run for, not how many iterations each one should do.

Okay, I will have a look at the Fuzzy Sync library because, honestly, I
have no idea what is it :)

> 
> We can do this by taking a moving average of the iteration time and
> using it to predict when the next iteration will exceed the time
> limit. Then exit the loop at that point.

okay, I see what you mean, thanks.

> 
> Also Cyril thinks that we can improve the time Fuzzy Sync takes to reach
> the synchronisation point by using a PID controller algorithm which
> makes a lot of sense.

Could you explain me more in details what you have in mind here?

Thank you in advance,
Best regards,

Mylène

> 
> >
> > Signed-off-by: Mylène Josserand <mylene.josserand@bootlin.com>
> > ---
> >  testcases/cve/cve-2017-2671.c | 10 +++++++---
> >  1 file changed, 7 insertions(+), 3 deletions(-)
> >
> > diff --git a/testcases/cve/cve-2017-2671.c b/testcases/cve/cve-2017-2671.c
> > index b0471bfff..a56bb45a8 100644
> > --- a/testcases/cve/cve-2017-2671.c
> > +++ b/testcases/cve/cve-2017-2671.c
> > @@ -49,7 +49,7 @@
> >
> >  #include "tst_fuzzy_sync.h"
> >
> > -#define ATTEMPTS 0x80000
> > +#define ATTEMPTS 0x2000
> >  #define PING_SYSCTL_PATH "/proc/sys/net/ipv4/ping_group_range"
> >
> >  static int sockfd;
> > @@ -109,9 +109,13 @@ static void *connect_b(void * param LTP_ATTRIBUTE_UNUSED)
> >
> >  static void run(void)
> >  {
> > -	int i;
> > +	int i, total_cpus;
> >
> > -	for (i = 0; i < ATTEMPTS; i++) {
> > +	total_cpus = tst_ncpus();
> > +	if (total_cpus > 4)
> > +		total_cpus = 4;
> > +
> > +	for (i = 0; i < ATTEMPTS * total_cpus; i++) {
> >  		SAFE_CONNECT(sockfd,
> >  			     (struct sockaddr *)&iaddr, sizeof(iaddr));
> >
> > --
> > 2.11.0  
> 
> 
> --
> Thank you,
> Richard.

Best regards,

-- 
Mylène Josserand, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com


More information about the ltp mailing list