[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20061207070630.GA30710@in.ibm.com>
Date: Thu, 7 Dec 2006 12:36:41 +0530
From: Gautham R Shenoy <ego@...ibm.com>
To: "Pallipadi, Venkatesh" <venkatesh.pallipadi@...el.com>
Cc: <ego@...ibm.com>, "Ingo Molnar" <mingo@...e.hu>, <akpm@...l.org>,
<linux-kernel@...r.kernel.org>, <torvalds@...l.org>,
<davej@...hat.com>, <dipankar@...ibm.com>, <vatsa@...ibm.com>
Subject: Re: CPUFREQ-CPUHOTPLUG: Possible circular locking dependency
Hi Venki,
On Wed, Dec 06, 2006 at 10:27:01AM -0800, Pallipadi, Venkatesh wrote:
> But, if we make cpufreq more affected_cpus aware and have a per_cpu
> target()
> call by moving set_cpus_allowed() from driver into cpufreq core and
> define
> the target function to be atomic/non-sleeping type, then we really don't
> need a hotplug lock for the driver any more. Driver can have
> get_cpu/put_cpu
> pair to disable preemption and then change the frequency.
Well, we would still need to keep the affected_cpus map in sync with the
cpu_online map. That would still require hotplug protection, right?
Besides, I would love to see a way of implementing target function to be
atomic/non-sleeping type. But as of now, the target functions call
cpufreq_notify_transition which might sleep.
That's not the last of my worries. The ondemand-workqueue interaction
in the cpu_hotplug callback path can cause a deadlock if we go for
per-subsystem hotcpu mutexes. Can you think of a way by which we can
avoid destroying the kondemand workqueue from the cpu-hotplug callback
path ? Please see http://lkml.org/lkml/2006/11/30/9 for the
culprit-callpath.
Thanks and Regards
gautham.
--
Gautham R Shenoy
Linux Technology Center
IBM India.
"Freedom comes with a price tag of responsibility, which is still a bargain,
because Freedom is priceless!"
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists