From: Paul E. McKenney Date: Fri, 3 Feb 2023 00:40:07 +0000 (-0800) Subject: Merge branch 'stall.2023.01.09a' into HEAD X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=bba8d3d17dc2678f9647962900aa421a18c25320;p=linux.git Merge branch 'stall.2023.01.09a' into HEAD stall.2023.01.09a: RCU CPU stall-warning updates. --- bba8d3d17dc2678f9647962900aa421a18c25320 diff --cc Documentation/admin-guide/kernel-parameters.txt index aa453f9202d89,43ca7f3ac96a1..5ac69d8549f91 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@@ -5113,11 -5113,12 +5113,17 @@@ rcupdate.rcu_cpu_stall_timeout to be used (after conversion from seconds to milliseconds). + rcupdate.rcu_cpu_stall_cputime= [KNL] + Provide statistics on the cputime and count of + interrupts and tasks during the sampling period. For + multiple continuous RCU stalls, all sampling periods + begin at half of the first RCU stall timeout. + + rcupdate.rcu_exp_stall_task_details= [KNL] + Print stack dumps of any tasks blocking the + current expedited RCU grace period during an + expedited RCU CPU stall warning. + rcupdate.rcu_expedited= [KNL] Use expedited grace-period primitives, for example, synchronize_rcu_expedited() instead diff --cc kernel/rcu/rcu.h index 95a0038c92187,ff35920e1055e..115616ac3bfa6 --- a/kernel/rcu/rcu.h +++ b/kernel/rcu/rcu.h @@@ -224,7 -224,7 +224,8 @@@ extern int rcu_cpu_stall_ftrace_dump extern int rcu_cpu_stall_suppress; extern int rcu_cpu_stall_timeout; extern int rcu_exp_cpu_stall_timeout; + extern int rcu_cpu_stall_cputime; +extern bool rcu_exp_stall_task_details __read_mostly; int rcu_jiffies_till_stall_check(void); int rcu_exp_jiffies_till_stall_check(void); diff --cc kernel/rcu/update.c index 624ff75e08ab1,8d72cb7caeadf..19bf6fa3ee6a1 --- a/kernel/rcu/update.c +++ b/kernel/rcu/update.c @@@ -547,8 -508,8 +547,10 @@@ int rcu_cpu_stall_timeout __read_mostl module_param(rcu_cpu_stall_timeout, int, 0644); int rcu_exp_cpu_stall_timeout __read_mostly = CONFIG_RCU_EXP_CPU_STALL_TIMEOUT; module_param(rcu_exp_cpu_stall_timeout, int, 0644); + int rcu_cpu_stall_cputime __read_mostly = IS_ENABLED(CONFIG_RCU_CPU_STALL_CPUTIME); + module_param(rcu_cpu_stall_cputime, int, 0644); +bool rcu_exp_stall_task_details __read_mostly; +module_param(rcu_exp_stall_task_details, bool, 0644); #endif /* #ifdef CONFIG_RCU_STALL_COMMON */ // Suppress boot-time RCU CPU stall warnings and rcutorture writer stall