selftests/bpf: Ensure that next_cpu() returns a valid CPU number
authorHou Tao <houtao1@huawei.com>
Tue, 13 Jun 2023 08:09:19 +0000 (16:09 +0800)
committerAlexei Starovoitov <ast@kernel.org>
Mon, 19 Jun 2023 20:26:43 +0000 (13:26 -0700)
commitda77ae2b27ec73a644624a6d4bffc206e2df6bb8
tree497632c6c324836e12a66a25df993208f78d4cb2
parentea400d13fc92ec66578b068e661a162e01d4b641
selftests/bpf: Ensure that next_cpu() returns a valid CPU number

When using option -a without --prod-affinity or --cons-affinity, if the
number of producers and consumers is greater than the number of online
CPUs, the benchmark will fail to run as shown below:

  $ getconf _NPROCESSORS_ONLN
  8
  $ ./bench bpf-loop -a -p9
  Setting up benchmark 'bpf-loop'...
  setting affinity to CPU #8 failed: -22

Fix it by returning the remainder of next_cpu divided by the number of
online CPUs in next_cpu().

Signed-off-by: Hou Tao <houtao1@huawei.com>
Link: https://lore.kernel.org/r/20230613080921.1623219-4-houtao@huaweicloud.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/bench.c
tools/testing/selftests/bpf/bench.h