Messages in this thread | | | Subject | Re: [PATCH] sched: fix tsk->pi_lock isn't held when do_set_cpus_allowed() | From | Wanpeng Li <> | Date | Tue, 25 Aug 2015 16:38:14 +0800 |
| |
On 8/25/15 4:30 PM, Ingo Molnar wrote: > * Wanpeng Li <wanpeng.li@hotmail.com> wrote: > >>>> --- a/kernel/cpuset.c >>>> +++ b/kernel/cpuset.c >>>> @@ -2376,8 +2376,12 @@ void cpuset_cpus_allowed(struct task_struct *tsk, struct cpumask *pmask) >>>> void cpuset_cpus_allowed_fallback(struct task_struct *tsk) >>>> { >>>> + unsigned long flags; >>>> + >>>> rcu_read_lock(); >>>> + raw_spin_lock_irqsave(&tsk->pi_lock, flags); >>>> do_set_cpus_allowed(tsk, task_cs(tsk)->effective_cpus); >>>> + raw_spin_lock_irqsave(&tsk->pi_lock, flags); >>> Just curious, Will introduce deadlock after acquire lock twice? ;) >> Could you point out where acquires lock twice? > In the code you quote?
Shame me, sorry for sending out the wrong version. I fix in it soon in v2.
Regards, Wanpeng Li
> > Thanks, > > Ingo
| |