Backport v5.15 rcu/locking/cgroup dependencies for kernel-rt
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2022806
MR: !130 (merged)
Omitted-fix: fb5d69a5cd78 ("csky: bitops: Remove duplicate __clear_bit define")
csky is not a supported arch.
This patch series backports a number of v5.15 locking, rcu, cgroup and some other misceallaneous patches that are dependencies required for kernel-rt to move up to v5.15-rt release for RHEL9.0. The last 2 patches are v5.16 fixes.
All the patches applied cleanly without conflicts.
Signed-off-by: Waiman Long longman@redhat.com
Waiman Long (99):
refscale: Add measurement of clock readout
torture: Add clocksource-watchdog testing to torture.sh
torture: Make torture.sh accept --do-all and --donone
rcu: Fix to include first blocked task in stall warning
rcu: Fix stall-warning deadlock due to non-release of rcu_node ->lock
rcutorture: Preempt rather than block when testing task stalls
rcu/nocb: Start moving nocb code to its own plugin file
rcu/nocb: Remove NOCB deferred wakeup from rcutree_dead_cpu()
rcu: Remove special bit at the bottom of the ->dynticks counter
rcu: Weaken ->dynticks accesses and updates
Documentation/RCU: Fix emphasis markers
rcu: Mark accesses to ->rcu_read_lock_nesting
Documentation/RCU: Fix nested inline markup
rcu: Mark accesses in tree_stall.h
rculist: Unify documentation about missing list_empty_rcu()
rcu/tree: Handle VM stoppage in stall detection
rcu: Do not disable GP stall detection in rcu_cpu_stall_reset()
rcu: Start timing stall repetitions after warning complete
rcu-tasks: Add comments explaining task_struct strategy
rcu-tasks: Mark ->trc_reader_nesting data races
rcu-tasks: Mark ->trc_reader_special.b.need_qs data races
docs: Fix a typo in Documentation/RCU/stallwarn.rst
locktorture: Mark statistics data races
locktorture: Count lock readers
srcutiny: Mark read-side data races
rcu: Mark lockless ->qsmask read in rcu_check_boost_fail()
torture: Enable KCSAN summaries over groups of torture-test runs
torture: Create KCSAN summaries for torture.sh runs
rcu: Make rcu_gp_init() and rcu_gp_fqs_loop noinline to conserve stack
rcu/doc: Add a quick quiz to explain further why we need
smp_mb__after_unlock_lock()
torture: Make kvm-recheck-scf.sh tolerate qemu-cmd comments
torture: Make kvm-recheck-lock.sh tolerate qemu-cmd comments
torture: Log more kvm-remote.sh information
torture: Protect kvm-remote.sh directory trees from /tmp reaping
rcuscale: Console output claims too few grace periods
rcu-tasks: Fix synchronize_rcu_rude() typo in comment
torture: Make kvm-recheck.sh skip kcsan.sum for build-only runs
torture: Move parse-console.sh call to PATH-aware scripts
tools: include: nolibc: Fix a typo occured to occurred in the file
nolibc.h
tools/nolibc: Implement msleep()
scftorture: Add RPC-like IPI tests
rcu: Remove useless "ret" update in rcu_gp_fqs_loop()
rcu: Use per_cpu_ptr to get the pointer of per_cpu variable
Documentation/atomic_t: Document cmpxchg() vs try_cmpxchg()
rcu: Explain why rcu_all_qs() is a stub in preemptible TREE RCU
locking/rwsem: Remove an unused parameter of rwsem_wake()
torture: Put kvm.sh batch-creation awk script into a temp file
torture: Make kvm.sh select per-scenario affinity masks
torture: Don't redirect qemu-cmd comment lines
torture: Make kvm-test-1-run-qemu.sh apply affinity
rcutorture: Upgrade two-CPU scenarios to four CPUs
torture: Use numeric taskset argument in jitter.sh
torture: Consistently name "qemu*" test output files
torture: Make kvm-test-1-run-batch.sh select per-scenario affinity
masks
torture: Don't use "test" command's "-a" argument
torture: Add timestamps to kvm-test-1-run-qemu.sh output
torture: Make kvm-test-1-run-qemu.sh check for reboot loops
scftorture: Avoid NULL pointer exception on early exit
rcu: Fix macro name CONFIG_TASKS_RCU_TRACE
locking/atomic: simplify ifdef generation
locking/atomic: remove ARCH_ATOMIC remanants
locking/atomic: centralize generated headers
locking/atomic: add arch_atomic_long*()
locking/atomic: add generic arch_*() bitops
doc: Update stallwarn.rst with recent changes
cgroup: remove cgroup_mount from comments
rcu: Print human-readable message for schedule() in RCU reader
rcu: Mark accesses to rcu_state.n_force_qs
cgroup/cpuset: Miscellaneous code cleanup
cgroup/cpuset: Fix a partition bug with hotplug
cgroup/cpuset: Fix violation of cpuset locking rule
locking/atomic: simplify non-atomic wrappers
eventfd: Make signal recursion protection a task bit
Documentation/atomic_t: Document forward progress expectations
Documentation: Replace deprecated CPU-hotplug functions.
perf/x86/intel: Replace deprecated CPU-hotplug functions
perf/hw_breakpoint: Replace deprecated CPU-hotplug functions
md/raid5: Replace deprecated CPU-hotplug functions.
thermal: Replace deprecated CPU-hotplug functions.
mm: Replace deprecated CPU-hotplug functions.
cgroup: Replace deprecated CPU-hotplug functions.
genirq/affinity: Replace deprecated CPU-hotplug functions.
rcu: Replace deprecated CPU-hotplug functions
smpboot: Replace deprecated CPU-hotplug functions.
clocksource: Replace deprecated CPU-hotplug functions.
torture: Replace deprecated CPU-hotplug functions.
static_call: Update API documentation
locking/semaphore: Add might_sleep() to down_*() family
cgroup: cgroup-v1: clean up kernel-doc notation
cgroup/cpuset: Enable event notification when partition state changes
debugobjects: Make them PREEMPT_RT aware
media/atomisp: Use lockdep instead of *mutex_is_locked()
cgroup: Avoid compiler warnings with no subsystems
futex: Clarify comment for requeue_pi_wake_futex()
futex: Avoid redundant task lookup
docs/core-api: Modify document layout
Documentation: core-api/cpuhotplug: Rewrite the API section
efi: Change down_interruptible() in virt_efi_reset_system() to
down_trylock()
rcu: Fix rcu_dynticks_curr_cpu_in_eqs() vs noinstr
.../Tree-RCU-Memory-Ordering.rst | 29 +
.../RCU/Design/Requirements/Requirements.rst | 8 +-
Documentation/RCU/checklist.rst | 24 +-
Documentation/RCU/rcu_dereference.rst | 6 +-
Documentation/RCU/stallwarn.rst | 31 +-
Documentation/atomic_t.txt | 94 +
Documentation/core-api/cpu_hotplug.rst | 599 +++++--
Documentation/trace/ftrace.rst | 2 +-
arch/x86/events/intel/core.c | 8 +-
arch/x86/events/intel/pt.c | 4 +-
drivers/firmware/efi/runtime-wrappers.c | 2 +-
drivers/md/raid5.c | 4 +-
.../staging/media/atomisp/pci/atomisp_ioctl.c | 4 +-
drivers/thermal/intel/intel_powerclamp.c | 4 +-
fs/aio.c | 2 +-
fs/eventfd.c | 12 +-
include/asm-generic/atomic-long.h | 1014 -----------
include/asm-generic/bitops/atomic.h | 32 +-
include/asm-generic/bitops/lock.h | 39 +-
include/asm-generic/bitops/non-atomic.h | 39 +-
include/linux/atomic.h | 7 +-
.../linux/{ => atomic}/atomic-arch-fallback.h | 0
.../atomic}/atomic-instrumented.h | 586 ++++++-
include/linux/atomic/atomic-long.h | 1014 +++++++++++
include/linux/cpuhotplug.h | 132 +-
include/linux/eventfd.h | 11 +-
include/linux/rculist.h | 35 +-
include/linux/rcupdate.h | 4 +-
include/linux/rcutiny.h | 3 -
include/linux/sched.h | 4 +
include/linux/srcutiny.h | 8 +-
include/linux/static_call.h | 33 +
kernel/cgroup/cgroup-v1.c | 8 +-
kernel/cgroup/cgroup.c | 27 +-
kernel/cgroup/cpuset.c | 151 +-
kernel/events/hw_breakpoint.c | 4 +-
kernel/futex.c | 93 +-
kernel/irq/affinity.c | 8 +-
kernel/locking/locktorture.c | 25 +-
kernel/locking/rwsem.c | 6 +-
kernel/locking/semaphore.c | 4 +
kernel/rcu/rcuscale.c | 4 +-
kernel/rcu/rcutorture.c | 7 +-
kernel/rcu/refscale.c | 36 +-
kernel/rcu/srcutiny.c | 2 +-
kernel/rcu/tasks.h | 36 +-
kernel/rcu/tree.c | 117 +-
kernel/rcu/tree_nocb.h | 1496 ++++++++++++++++
kernel/rcu/tree_plugin.h | 1506 +----------------
kernel/rcu/tree_stall.h | 111 +-
kernel/scftorture.c | 78 +-
kernel/sched/core.c | 11 +
kernel/smpboot.c | 8 +-
kernel/time/clocksource.c | 6 +-
kernel/torture.c | 6 +-
lib/debugobjects.c | 7 +-
mm/swap_slots.c | 4 +-
mm/vmstat.c | 12 +-
scripts/atomic/check-atomics.sh | 6 +-
scripts/atomic/fallbacks/acquire | 4 +-
scripts/atomic/fallbacks/add_negative | 6 +-
scripts/atomic/fallbacks/add_unless | 6 +-
scripts/atomic/fallbacks/andnot | 4 +-
scripts/atomic/fallbacks/dec | 4 +-
scripts/atomic/fallbacks/dec_and_test | 6 +-
scripts/atomic/fallbacks/dec_if_positive | 6 +-
scripts/atomic/fallbacks/dec_unless_positive | 6 +-
scripts/atomic/fallbacks/fence | 4 +-
scripts/atomic/fallbacks/fetch_add_unless | 8 +-
scripts/atomic/fallbacks/inc | 4 +-
scripts/atomic/fallbacks/inc_and_test | 6 +-
scripts/atomic/fallbacks/inc_not_zero | 6 +-
scripts/atomic/fallbacks/inc_unless_negative | 6 +-
scripts/atomic/fallbacks/read_acquire | 2 +-
scripts/atomic/fallbacks/release | 4 +-
scripts/atomic/fallbacks/set_release | 2 +-
scripts/atomic/fallbacks/sub_and_test | 6 +-
scripts/atomic/fallbacks/try_cmpxchg | 4 +-
scripts/atomic/gen-atomic-fallback.sh | 68 +-
scripts/atomic/gen-atomic-instrumented.sh | 11 +-
scripts/atomic/gen-atomic-long.sh | 10 +-
scripts/atomic/gen-atomics.sh | 6 +-
tools/include/nolibc/nolibc.h | 15 +-
.../selftests/rcutorture/bin/jitter.sh | 10 +-
.../rcutorture/bin/kcsan-collapse.sh | 2 +-
.../selftests/rcutorture/bin/kvm-again.sh | 4 +-
.../rcutorture/bin/kvm-assign-cpus.sh | 106 ++
.../rcutorture/bin/kvm-get-cpus-script.sh | 88 +
.../rcutorture/bin/kvm-recheck-lock.sh | 2 +-
.../rcutorture/bin/kvm-recheck-scf.sh | 2 +-
.../selftests/rcutorture/bin/kvm-recheck.sh | 5 +-
.../rcutorture/bin/kvm-remote-noreap.sh | 30 +
.../selftests/rcutorture/bin/kvm-remote.sh | 20 +-
.../rcutorture/bin/kvm-test-1-run-batch.sh | 24 +
.../rcutorture/bin/kvm-test-1-run-qemu.sh | 49 +-
.../rcutorture/bin/kvm-test-1-run.sh | 2 +
tools/testing/selftests/rcutorture/bin/kvm.sh | 39 +-
.../selftests/rcutorture/bin/torture.sh | 37 +-
.../selftests/rcutorture/configs/rcu/RUDE01 | 2 +-
.../selftests/rcutorture/configs/rcu/TASKS01 | 2 +-
.../selftests/rcutorture/configs/rcu/TASKS03 | 2 +-
101 files changed, 4977 insertions(+), 3226 deletions(-)
delete mode 100644 include/asm-generic/atomic-long.h
rename include/linux/{ => atomic}/atomic-arch-fallback.h (100%)
rename include/{asm-generic => linux/atomic}/atomic-instrumented.h (68%)
create mode 100644 include/linux/atomic/atomic-long.h
create mode 100644 kernel/rcu/tree_nocb.h
create mode 100755 tools/testing/selftests/rcutorture/bin/kvm-assign-cpus.sh
create mode 100755 tools/testing/selftests/rcutorture/bin/kvm-get-cpus-script.sh
create mode 100755 tools/testing/selftests/rcutorture/bin/kvm-remote-noreap.sh
Edited by Waiman Long