Messages in this thread Patch in this message | | | From | Sasha Levin <> | Subject | [PATCH] rcu: don't use __this_cpu_* from preemptible context | Date | Sun, 28 Dec 2014 11:49:40 -0500 |
| |
Commit "rcu: Make cond_resched_rcu_qs() apply to normal RCU flavors" has added debug code which tries to read from __this_cpu in a preemptible code, which doesn't work too well.
Signed-off-by: Sasha Levin <sasha.levin@oracle.com> --- kernel/rcu/tree_trace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/rcu/tree_trace.c b/kernel/rcu/tree_trace.c index a9b79ca..fbb6240 100644 --- a/kernel/rcu/tree_trace.c +++ b/kernel/rcu/tree_trace.c @@ -122,7 +122,7 @@ static void print_one_rcu_data(struct seq_file *m, struct rcu_data *rdp) cpu_is_offline(rdp->cpu) ? '!' : ' ', ulong2long(rdp->completed), ulong2long(rdp->gpnum), rdp->passed_quiesce, - rdp->rcu_qs_ctr_snap == __this_cpu_read(rcu_qs_ctr), + rdp->rcu_qs_ctr_snap == per_cpu(rcu_qs_ctr, rdp->cpu), rdp->qs_pending); seq_printf(m, " dt=%d/%llx/%d df=%lu", atomic_read(&rdp->dynticks->dynticks), -- 1.7.10.4
| |