[PATCH tip/core/rcu 0/18] No-CBs cblist updates for v5.3-rc2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello!

This series reduces memory footprint (RCU callbacks posted by no-CBs CPUs)
by causing the no-CBs CPUs to use the existing ->cblist segmented callback
list.  This allows these callbacks to take advantage of RCU grace periods
that were started by something other than the corresponding rcuog kthread:

1.	Use separate flag to indicate disabled ->cblist.

2.	Use separate flag to indicate offloaded ->cblist.

3.	Add checks for offloaded callback processing.

4.	Make rcutree_migrate_callbacks() start at leaf rcu_node structure.

5.	Check for deferred nocb wakeups before nohz_full early exit.

6.	Remove deferred wakeup checks for extended quiescent states.

7.	Allow lockless use of rcu_segcblist_restempty().

8.	Allow lockless use of rcu_segcblist_empty().

9.	Leave ->cblist enabled for no-CBs CPUs.

10.	Use rcu_segcblist for no-CBs CPUs.

11.	Remove obsolete nocb_head and nocb_tail fields.

12.	Remove obsolete nocb_q_count and nocb_q_count_lazy fields.

13.	Remove obsolete nocb_cb_tail and nocb_cb_head fields.

14.	Remove obsolete nocb_gp_head and nocb_gp_tail fields.

15.	Use build-time no-CBs check in rcu_do_batch().

16.	Use build-time no-CBs check in rcu_core().

17.	Use build-time no-CBs check in rcu_pending().

18.	Suppress uninitialized false-positive in nocb_gp_wait().

							Thanx, Paul

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

 include/linux/rcu_segcblist.h |    2 
 include/trace/events/rcu.h    |    1 
 kernel/rcu/rcu_segcblist.c    |   64 +++-
 kernel/rcu/rcu_segcblist.h    |   16 -
 kernel/rcu/tree.c             |  188 +++++++------
 kernel/rcu/tree.h             |   29 --
 kernel/rcu/tree_plugin.h      |  588 ++++++++++++++----------------------------
 7 files changed, 374 insertions(+), 514 deletions(-)




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux