refscale: Avoid false-positive warnings in ref_scale_reader()
authorPaul E. McKenney <paulmck@kernel.org>
Thu, 10 Jun 2021 16:24:43 +0000 (09:24 -0700)
committerPaul E. McKenney <paulmck@kernel.org>
Tue, 6 Jul 2021 19:38:08 +0000 (12:38 -0700)
commit05bc276cf243d90b9f1eb6ae2962f41eeb53a741
tree526aac12edbbbbac524dba8fa4d43148b9bbd58c
parent22b6d14992b733e9421a475f4d43df24629737ab
refscale: Avoid false-positive warnings in ref_scale_reader()

If the call to set_cpus_allowed_ptr() in ref_scale_reader()
fails, a later WARN_ONCE() complains.  But with the advent of
570a752b7a9b ("lib/smp_processor_id: Use is_percpu_thread() instead of
nr_cpus_allowed"), this complaint can be drowned out by complaints from
smp_processor_id().  The rationale for this change is that refscale's
kthreads are not marked with PF_NO_SETAFFINITY, which means that a system
administrator could change affinity at any time.

However, refscale is a performance/stress test, and the system
administrator might well have a valid test-the-test reason for changing
affinity.  This commit therefore changes to raw_smp_processor_id()
in order to avoid the noise, and also adds a WARN_ON_ONCE() to the
call to set_cpus_allowed_ptr() in order to directly detect immediate
failure.  There is no WARN_ON_ONCE() within the test loop, allowing
human-reflex-based affinity resetting, if desired.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
kernel/rcu/refscale.c