Messages in this thread | | | Date | Thu, 9 Apr 2009 06:17:46 +0200 | From | Ingo Molnar <> | Subject | Re: pm-hibernate : possible circular locking dependency detected |
| |
* Rusty Russell <rusty@rustcorp.com.au> wrote:
> On Wednesday 08 April 2009 22:18:26 Peter Zijlstra wrote: > > On Wed, 2009-04-08 at 12:47 +0930, Rusty Russell wrote: > > > On Tuesday 07 April 2009 16:35:53 Peter Zijlstra wrote: > > > > On Tue, 2009-04-07 at 13:56 +0930, Rusty Russell wrote: > > > > > Looks like this will be fixed by Andrew's work-on-cpu-in-own-thread > > > > > patch which I just put out the pull request for. > > > > > > > > Would it make sense to teach it about a short-circuit like: > > > > > > > > work_on_cpu() { > > > > > > > > if (cpumask_weight(current->cpus_allowed) == 1 && > > > > smp_processor_id() == cpu) > > > > return do_work_right_here(); > > > > > > Does that happen much? I guess put a counter in and see? > > > > Ego spotted the case where cpufreq calls it from an cpu-affine > > workqueue, it seems to me in that case its desirable to have the > > short-cut, and currently that's needed for correctness too as it will > > generate this circular lock thingy. > > Well, the correctness issue is fixed by Andrew's > work_on_cpu-via-new-thread patch (hmm, which Linus hasn't taken, > re-xmitting).
That's now upstream as per:
6b44003: work_on_cpu(): rewrite it to create a kernel thread on demand
So re-checking whether the warning still triggers with latest -git would be nice.
Ingo
| |