Hello! This series provides SRCU updates, perhaps most notably some changes that greatly reduce the size of the srcu_struct structure in kernels built with large values for the CONFIG_NR_CPUS Kconfig option. 1. Tighten cleanup_srcu_struct() GP checks. 2. Fix s/is/if/ typo in srcu_node comment. 3. Make srcu_funnel_gp_start() cache ->mynode in snp_leaf. 4. Dynamically allocate srcu_node array. 5. Make Tree SRCU able to operate without snp_node array. 6. Add size-state transitioning code. 7. Make rcutorture dump the SRCU size state. 8. Add boot-time control over srcu_node array allocation. 9. Use export for srcu_struct defined by DEFINE_STATIC_SRCU(), courtesy of Alexander Aring. 10. Compute snp_seq earlier in srcu_funnel_gp_start(). 11. Use invalid initial value for srcu_node GP sequence numbers. 12. Avoid NULL dereference in srcu_torture_stats_print(). 13. Prevent cleanup_srcu_struct() from freeing non-dynamic ->sda. 14. Explain srcu_funnel_gp_start() call to list_add() is safe. 15. Create concurrency-safe helper for initiating size transition. 16. Add contention-triggered addition of srcu_node tree. 17. Make srcu_size_state_name static, courtesy of Jiapeng Chong. 18. Automatically determine size-transition strategy at boot. 19. Add contention check to call_srcu() srcu_data ->lock acquisition. Thanx, Paul ------------------------------------------------------------------------ Documentation/admin-guide/kernel-parameters.txt | 9 b/Documentation/admin-guide/kernel-parameters.txt | 22 b/include/linux/srcutree.h | 8 b/kernel/rcu/srcutree.c | 6 include/linux/srcutree.h | 20 kernel/rcu/srcutree.c | 644 +++++++++++++++------- 6 files changed, 500 insertions(+), 209 deletions(-)