diff mbox series

[net] selftests/net: relax cpu affinity requirement in msg_zerocopy test

Message ID 20200805084045.1549492-1-willemdebruijn.kernel@gmail.com
State Accepted
Delegated to: David Miller
Headers show
Series [net] selftests/net: relax cpu affinity requirement in msg_zerocopy test | expand

Commit Message

Willem de Bruijn Aug. 5, 2020, 8:40 a.m. UTC
From: Willem de Bruijn <willemb@google.com>

The msg_zerocopy test pins the sender and receiver threads to separate
cores to reduce variance between runs.

But it hardcodes the cores and skips core 0, so it fails on machines
with the selected cores offline, or simply fewer cores.

The test mainly gives code coverage in automated runs. The throughput
of zerocopy ('-z') and non-zerocopy runs is logged for manual
inspection.

Continue even when sched_setaffinity fails. Just log to warn anyone
interpreting the data.

Fixes: 07b65c5b31ce ("test: add msg_zerocopy test")
Reported-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Willem de Bruijn <willemb@google.com>
---
 tools/testing/selftests/net/msg_zerocopy.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

Comments

Colin Ian King Aug. 5, 2020, 8:48 a.m. UTC | #1
On 05/08/2020 09:40, Willem de Bruijn wrote:
> From: Willem de Bruijn <willemb@google.com>
> 
> The msg_zerocopy test pins the sender and receiver threads to separate
> cores to reduce variance between runs.
> 
> But it hardcodes the cores and skips core 0, so it fails on machines
> with the selected cores offline, or simply fewer cores.
> 
> The test mainly gives code coverage in automated runs. The throughput
> of zerocopy ('-z') and non-zerocopy runs is logged for manual
> inspection.
> 
> Continue even when sched_setaffinity fails. Just log to warn anyone
> interpreting the data.
> 
> Fixes: 07b65c5b31ce ("test: add msg_zerocopy test")
> Reported-by: Colin Ian King <colin.king@canonical.com>
> Signed-off-by: Willem de Bruijn <willemb@google.com>
> ---
>  tools/testing/selftests/net/msg_zerocopy.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/testing/selftests/net/msg_zerocopy.c b/tools/testing/selftests/net/msg_zerocopy.c
> index 4b02933cab8a..bdc03a2097e8 100644
> --- a/tools/testing/selftests/net/msg_zerocopy.c
> +++ b/tools/testing/selftests/net/msg_zerocopy.c
> @@ -125,9 +125,8 @@ static int do_setcpu(int cpu)
>  	CPU_ZERO(&mask);
>  	CPU_SET(cpu, &mask);
>  	if (sched_setaffinity(0, sizeof(mask), &mask))
> -		error(1, 0, "setaffinity %d", cpu);
> -
> -	if (cfg_verbose)
> +		fprintf(stderr, "cpu: unable to pin, may increase variance.\n");
> +	else if (cfg_verbose)
>  		fprintf(stderr, "cpu: %u\n", cpu);
>  
>  	return 0;
> 

Thanks, you solution is good for my testing requirements

Acked-by: Colin Ian King <colin.king@canonical.com>
David Miller Aug. 5, 2020, 7:26 p.m. UTC | #2
From: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
Date: Wed,  5 Aug 2020 04:40:45 -0400

> From: Willem de Bruijn <willemb@google.com>
> 
> The msg_zerocopy test pins the sender and receiver threads to separate
> cores to reduce variance between runs.
> 
> But it hardcodes the cores and skips core 0, so it fails on machines
> with the selected cores offline, or simply fewer cores.
> 
> The test mainly gives code coverage in automated runs. The throughput
> of zerocopy ('-z') and non-zerocopy runs is logged for manual
> inspection.
> 
> Continue even when sched_setaffinity fails. Just log to warn anyone
> interpreting the data.
> 
> Fixes: 07b65c5b31ce ("test: add msg_zerocopy test")
> Reported-by: Colin Ian King <colin.king@canonical.com>
> Signed-off-by: Willem de Bruijn <willemb@google.com>

Applied and queued up for -stable, thanks.
diff mbox series

Patch

diff --git a/tools/testing/selftests/net/msg_zerocopy.c b/tools/testing/selftests/net/msg_zerocopy.c
index 4b02933cab8a..bdc03a2097e8 100644
--- a/tools/testing/selftests/net/msg_zerocopy.c
+++ b/tools/testing/selftests/net/msg_zerocopy.c
@@ -125,9 +125,8 @@  static int do_setcpu(int cpu)
 	CPU_ZERO(&mask);
 	CPU_SET(cpu, &mask);
 	if (sched_setaffinity(0, sizeof(mask), &mask))
-		error(1, 0, "setaffinity %d", cpu);
-
-	if (cfg_verbose)
+		fprintf(stderr, "cpu: unable to pin, may increase variance.\n");
+	else if (cfg_verbose)
 		fprintf(stderr, "cpu: %u\n", cpu);
 
 	return 0;