Messages in this thread Patch in this message | | | Date | Wed, 21 Apr 2010 14:48:48 -0700 | From | "Paul E. McKenney" <> | Subject | Re: [PATCH] RCU: don't turn off lockdep when find suspicious rcu_dereference_check() usage |
| |
On Wed, Apr 21, 2010 at 02:35:43PM -0700, Paul E. McKenney wrote: > On Tue, Apr 20, 2010 at 11:38:28AM -0400, Miles Lane wrote: > > Excellent. Here are the results on my machine. .config appended. > > First, thank you very much for testing this, Miles!
And as Tetsuo Handa pointed out privately, my patch was way broken.
Here is an updated version.
Thanx, Paul
commit b15e561ed91b7a366c3cc635026f3b9ce6483070 Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Date: Wed Apr 21 14:04:56 2010 -0700
sched: protect __sched_setscheduler() access to cgroups
A given task's cgroups structures must remain while that task is running due to reference counting, so this is presumably a false positive. Updated to reflect feedback from Tetsuo Handa.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
diff --git a/kernel/sched.c b/kernel/sched.c index 14c44ec..f425a2b 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -4575,9 +4575,13 @@ recheck: * Do not allow realtime tasks into groups that have no runtime * assigned. */ + rcu_read_lock(); if (rt_bandwidth_enabled() && rt_policy(policy) && - task_group(p)->rt_bandwidth.rt_runtime == 0) + task_group(p)->rt_bandwidth.rt_runtime == 0) { + rcu_read_unlock(); return -EPERM; + } + rcu_read_unlock(); #endif retval = security_task_setscheduler(p, policy, param);
| |