lkml.org 
[lkml]   [2014]   [Dec]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] rcu: don't use __this_cpu_* from preemptible context
On Sun, Dec 28, 2014 at 11:49:40AM -0500, Sasha Levin wrote:
> 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>

Good catch, queued for 3.20 (same as the offending commit).

Thanx, Paul

> ---
> 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
>



\
 
 \ /
  Last update: 2014-12-31 13:41    [W:0.146 / U:0.752 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site