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

Richard Palethorpe rpalethorpe@suse.de
Mon Jul 16 11:32:08 CEST 2018


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.

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.

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.

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


More information about the ltp mailing list