* Wanpeng Li <wanpeng.li@xxxxxxxxxxx> wrote:
In the code you quote?Could you point out where acquires lock twice?--- a/kernel/cpuset.cJust curious, Will introduce deadlock after acquire lock twice? ;)
+++ 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);
Thanks,
Ingo