mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-25 16:11:45 +00:00
rcu: Update RCU_FAST_NO_HZ tracing for lazy callbacks
In the current code, a short dyntick-idle interval (where there is at least one non-lazy callback on the CPU) and a long dyntick-idle interval (where there are only lazy callbacks on the CPU) are traced identically, which can be less than helpful. This commit therefore emits different event traces in these two cases. Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Tested-by: Heiko Carstens <heiko.carstens@de.ibm.com> Tested-by: Pascal Chapperon <pascal.chapperon@wanadoo.fr>
This commit is contained in:
parent
8f5af6f1f2
commit
fd4b352687
2 changed files with 6 additions and 3 deletions
|
@ -2165,15 +2165,17 @@ static void rcu_prepare_for_idle(int cpu)
|
|||
!rcu_pending(cpu) &&
|
||||
!local_softirq_pending()) {
|
||||
/* Can we go dyntick-idle despite still having callbacks? */
|
||||
trace_rcu_prep_idle("Dyntick with callbacks");
|
||||
per_cpu(rcu_dyntick_drain, cpu) = 0;
|
||||
per_cpu(rcu_dyntick_holdoff, cpu) = jiffies;
|
||||
if (rcu_cpu_has_nonlazy_callbacks(cpu))
|
||||
if (rcu_cpu_has_nonlazy_callbacks(cpu)) {
|
||||
trace_rcu_prep_idle("Dyntick with callbacks");
|
||||
per_cpu(rcu_idle_gp_timer_expires, cpu) =
|
||||
jiffies + RCU_IDLE_GP_DELAY;
|
||||
else
|
||||
} else {
|
||||
per_cpu(rcu_idle_gp_timer_expires, cpu) =
|
||||
jiffies + RCU_IDLE_LAZY_GP_DELAY;
|
||||
trace_rcu_prep_idle("Dyntick with lazy callbacks");
|
||||
}
|
||||
tp = &per_cpu(rcu_idle_gp_timer, cpu);
|
||||
mod_timer_pinned(tp, per_cpu(rcu_idle_gp_timer_expires, cpu));
|
||||
per_cpu(rcu_nonlazy_posted_snap, cpu) =
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue