Skip to content

Grace-period fixes for v4.19

Paul E. McKenney lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest22 patches 22 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/22rcu: Clean up handling of tasks blocked across full-rcu_node offlinekernel/rcu/tree.c+17 -130 replies
2/22rcu: Fix an obsolete ->qsmaskinit commentkernel/rcu/tree.c+2 -20 replies
3/22rcu: Make rcu_init_new_rnp() stop upon already-set bitkernel/rcu/tree.c+5 -10 replies
4/22rcu: Make rcu_report_unblock_qs_rnp() warn on violated preconditionskernel/rcu/tree.c+4 -20 replies
5/22rcu: Fix typo and add additional debugkernel/rcu/tree.c kernel/rcu/tree_plugin.h+9 -20 replies
6/22rcu: Replace smp_wmb() with smp_store_release() for stall checkkernel/rcu/tree.c+2 -20 replies
7/22rcu: Prevent useless FQS scan after all CPUs have checked inkernel/rcu/tree.c+2 -00 replies
8/22rcu: Suppress false-positive offline-CPU lockdep-RCU splatkernel/rcu/tree.c+24 -240 replies
9/22rcu: Suppress false-positive preempted-task splatskernel/rcu/tree.c+5 -00 replies
10/22rcu: Suppress more involved false-positive preempted-task splatskernel/rcu/tree.c+6 -10 replies
11/22rcu: Suppress false-positive splats from mid-init task resumekernel/rcu/tree_plugin.h+2 -10 replies
12/22rcu: Fix grace-period hangs from mid-init task resumekernel/rcu/tree.c+17 -30 replies
13/22rcu: Fix grace-period hangs due to race with CPU offlinekernel/rcu/tree.c kernel/rcu/tree.h+10 -022 replies
14/22rcu: Add RCU-preempt check for waiting on newly onlined CPUkernel/rcu/tree_plugin.h+3 -00 replies
15/22rcu: Move grace-period pre-init delay after pre-initkernel/rcu/tree.c tools/testing/selftests/rcutorture/configs/rcu/TREE03.boot+2 -20 replies
16/22rcu: Remove failsafe check for lost quiescent statekernel/rcu/tree.c+3 -130 replies
17/22rcutorture: Change units of onoff_interval to jiffiesDocumentation/admin-guide/kernel-parameters.txt kernel/rcu/rcutorture.c tools/testing/selftests/rcutorture/configs/rcu/TREE03.boot +1 more+6 -60 replies
18/22rcu: Remove CPU-hotplug failsafe from force-quiescent-state code pathinclude/trace/events/rcu.h kernel/rcu/tree.c kernel/rcu/tree.h+6 -140 replies
19/22rcu: Add up-tree information to dump_blkd_tasks() diagnosticskernel/rcu/tree_plugin.h+6 -40 replies
20/22rcu: Add CPU online/offline state to dump_blkd_tasks()kernel/rcu/tree.c kernel/rcu/tree.h kernel/rcu/tree_plugin.h+39 -100 replies
21/22rcu: Record ->gp_state for both phases of grace-period initializationkernel/rcu/tree.c kernel/rcu/tree.h+10 -40 replies
22/22rcu: Add diagnostics for offline CPUs failing to report QSkernel/rcu/tree.c kernel/rcu/tree.h+23 -00 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH tip/core/rcu 0/22] Grace-period fixes for v4.19

Hello!

This series includes grace-period-related fixes that suppress false-positive warnings and add forward-progress fixes that would otherwise have resulted in grace-period hangs when the failsafes were removed. The reason for wanting to remove the failsafes is that they result in lock contention, which needs to be reduced in preparation for consolidation of the three flavors of RCU into one flavor to rule them all.

1. Clean up handling of tasks blocked across full-rcu_node offline.

2. Fix an obsolete ->qsmaskinit comment.

3. Make rcu_init_new_rnp() stop upon already-set bit.

4. Make rcu_report_unblock_qs_rnp() warn on violated preconditions.

5. Fix typo and add additional debug in code warning of task
blocked on the current grace period before it has started.

6. Replace smp_wmb() with smp_store_release() for stall check
in order to improve readability (no change in ordering).

7. Prevent useless FQS scan after all CPUs have checked in.

8. Suppress false-positive offline-CPU lockdep-RCU splat.

9. Suppress false-positive preempted-task splats.

10. Suppress more involved false-positive preempted-task splats.

11. Suppress false-positive splats from mid-init task resume.

12. Fix grace-period hangs from mid-init task resume. (Well, they
would be hangs without the failsafes, anyway.)

13. Fix grace-period hangs due to race with CPU offline. (Again,
they would be hangs without the failsafes.)

14. Add RCU-preempt check for waiting on newly onlined CPU.

15. Move grace-period pre-init delay after pre-init.

16. Remove failsafe check for lost quiescent state.

17. Change units of onoff_interval to jiffies in order to allow more
intensive testing of CPU-hotplug interactions with RCU.

18. Remove CPU-hotplug failsafe from force-quiescent-state code path.

19. Add up-tree information to dump_blkd_tasks() diagnostics.

20. Add CPU online/offline state to dump_blkd_tasks().

21. Record ->gp_state for both phases of grace-period initialization.

22. Add diagnostics for offline CPUs failing to report QS.

Thanx, Paul

------------------------------------------------------------------------

 Documentation/admin-guide/kernel-parameters.txt                 |    4 
 include/trace/events/rcu.h                                      |   10 
 kernel/rcu/rcutorture.c                                         |    4 
 kernel/rcu/tree.c                                               |  202 ++++++----
 kernel/rcu/tree.h                                               |   30 +
 kernel/rcu/tree_plugin.h                                        |   51 +-
 tools/testing/selftests/rcutorture/configs/rcu/TREE03.boot      |    4 
 tools/testing/selftests/rcutorture/configs/rcu/ver_functions.sh |    2 
 8 files changed, 203 insertions(+), 104 deletions(-)