From: Peter Zijlstra <peterz@infradead.org>
To: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Cc: linux-kernel@vger.kernel.org, mingo@elte.hu,
laijs@cn.fujitsu.com, dipankar@in.ibm.com,
akpm@linux-foundation.org, mathieu.desnoyers@polymtl.ca,
josh@joshtriplett.org, dvhltc@us.ibm.com, niv@us.ibm.com,
tglx@linutronix.de, rostedt@goodmis.org, Valdis.Kletnieks@vt.edu,
dhowells@redhat.com, eric.dumazet@gmail.com,
Daniel J Blueman <daniel.blueman@gmail.com>
Subject: Re: [PATCH tip/core/urgent 1/3] rcu: fix lockdep splat in wake_affine()
Date: Wed, 16 Jun 2010 08:23:11 +0200 [thread overview]
Message-ID: <1276669391.1745.594.camel@laptop> (raw)
In-Reply-To: <1276640983-14641-1-git-send-email-paulmck@linux.vnet.ibm.com>
On Tue, 2010-06-15 at 15:29 -0700, Paul E. McKenney wrote:
> From: Daniel J Blueman <daniel.blueman@gmail.com>
>
> With 2.6.35-rc1 and your patch in the context below, we still see
> "include/linux/cgroup.h:534 invoked rcu_dereference_check() without
> protection!", so need this additional patch:
>
> Acquire read-side RCU lock around task_group() calls, addressing
> "include/linux/cgroup.h:534 invoked rcu_dereference_check() without
> protection!" warning.
Uhm,. this is all just slapping in rcu_read_lock() to make the warning
go away, without explanation of what and why.
Its not obvious what the races is, nor how its handled.
> Signed-off-by: Daniel J Blueman <daniel.blueman@gmail.com>
> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> ---
> kernel/sched_fair.c | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c
> index eed35ed..ca56133 100644
> --- a/kernel/sched_fair.c
> +++ b/kernel/sched_fair.c
> @@ -1240,6 +1240,7 @@ static int wake_affine(struct sched_domain *sd, struct task_struct *p, int sync)
> * effect of the currently running task from the load
> * of the current CPU:
> */
> + rcu_read_lock();
> if (sync) {
> tg = task_group(current);
> weight = current->se.load.weight;
> @@ -1249,6 +1250,7 @@ static int wake_affine(struct sched_domain *sd, struct task_struct *p, int sync)
> }
>
> tg = task_group(p);
> + rcu_read_unlock();
> weight = p->se.load.weight;
>
> /*
next prev parent reply other threads:[~2010-06-16 6:23 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-15 22:29 [PATCH tip/rcu/urgent 0/3] Fix more lockdep-RCU splats Paul E. McKenney
2010-06-15 22:29 ` [PATCH tip/core/urgent 1/3] rcu: fix lockdep splat in wake_affine() Paul E. McKenney
2010-06-16 6:23 ` Peter Zijlstra [this message]
2010-06-16 23:04 ` Paul E. McKenney
2010-06-15 22:29 ` [PATCH tip/core/urgent 2/3] rcu: fix scope of wake_affine()'s new RCU read-side critical section Paul E. McKenney
2010-06-15 22:29 ` [PATCH tip/core/urgent 3/3] idr: fix RCU lockdep splat in idr_get_next() Paul E. McKenney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1276669391.1745.594.camel@laptop \
--to=peterz@infradead.org \
--cc=Valdis.Kletnieks@vt.edu \
--cc=akpm@linux-foundation.org \
--cc=daniel.blueman@gmail.com \
--cc=dhowells@redhat.com \
--cc=dipankar@in.ibm.com \
--cc=dvhltc@us.ibm.com \
--cc=eric.dumazet@gmail.com \
--cc=josh@joshtriplett.org \
--cc=laijs@cn.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@polymtl.ca \
--cc=mingo@elte.hu \
--cc=niv@us.ibm.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.