Messages in this thread | | | Date | Mon, 7 Apr 2014 10:16:44 +0200 | From | Peter Zijlstra <> | Subject | Re: [tip:sched/core] sched/numa: Move task_numa_free() to __put_task_struct() |
| |
On Mon, Apr 07, 2014 at 09:30:30AM +0200, Mike Galbraith wrote: > - double_lock(&my_grp->lock, &grp->lock); > + BUG_ON(irqs_disabled()); > + double_lock_irq(&my_grp->lock, &grp->lock);
So either make this:
local_irq_disable(); double_lock();
or
> > for (i = 0; i < NR_NUMA_HINT_FAULT_STATS * nr_node_ids; i++) { > my_grp->faults[i] -= p->numa_faults_memory[i]; > @@ -1692,6 +1693,7 @@ static void task_numa_group(struct task_ > > spin_unlock(&my_grp->lock); > spin_unlock(&grp->lock); > + local_irq_enable();
use: spin_unlock() spin_unlock_irq()
or so, but this imbalance is making my itch :-)
> > rcu_assign_pointer(p->numa_group, grp); >
| |