History

rcu: Irq nesting is always 0 on rcu_enter_idle_common

Because tasks don't nest, the ->dyntick_nesting must always be zero upon entry to rcu_idle_enter_common(). Therefore, pass "0" rather than the counter itself.

Frederic Weisbecker committed 14 years ago

Commit facc4e11 parent b6fc6021 file · +2 −3Browse files

Showing the changes to kernel/rcutree.c (1 of 1 file). Show all

Unified · Split

kernel/rcutree.c+2−3
@@ -350,12 +350,11 @@ static int rcu_implicit_offline_qs(struct rcu_data *rdp) · 349 unmodified lines
350350 */
351351 static void rcu_idle_enter_common(struct rcu_dynticks *rdtp, long long oldval)
352352 {
353− trace_rcu_dyntick("Start", oldval, rdtp->dynticks_nesting);
353+ trace_rcu_dyntick("Start", oldval, 0);
354354 if (!is_idle_task(current)) {
355355 struct task_struct *idle = idle_task(smp_processor_id());
356356
357− trace_rcu_dyntick("Error on entry: not idle task",
358− oldval, rdtp->dynticks_nesting);
357+ trace_rcu_dyntick("Error on entry: not idle task", oldval, 0);
359358 ftrace_dump(DUMP_ALL);
360359 WARN_ONCE(1, "Current pid: %d comm: %s / Idle pid: %d comm: %s",
361360 current->pid, current->comm,