From: Dipankar Sarma <dipankar@in.ibm.com>
To: Andrew Morton <akpm@osdl.org>
Cc: Linus Torvalds <torvalds@osdl.org>, Dave Jones <davej@redhat.com>,
ego@in.ibm.com, rusty@rustcorp.com.au,
linux-kernel@vger.kernel.org, arjan@intel.linux.com,
mingo@elte.hu, vatsa@in.ibm.com, ashok.raj@intel.com
Subject: Re: [RFC][PATCH 0/4] Redesign cpu_hotplug locking.
Date: Sun, 27 Aug 2006 11:41:55 +0530 [thread overview]
Message-ID: <20060827061155.GC22565@in.ibm.com> (raw)
In-Reply-To: <20060826150422.a1d492a7.akpm@osdl.org>
On Sat, Aug 26, 2006 at 03:04:22PM -0700, Andrew Morton wrote:
> On Sat, 26 Aug 2006 14:09:55 -0700 (PDT)
> Linus Torvalds <torvalds@osdl.org> wrote:
>
> > I definitely want to have this fixed, and Gautham's patches look like a
> > good thing to me, but the "trying to fix up the current mess" part was
> > really about trying to get 2.6.18 in a mostly working state rather than
> > anything else. I think it's been too late to try to actually _fix_ it for
> > 2.6.18 for a long time already.
> >
> > So my reaction is that this redesign should go in asap after 2.6.18,
> > unless people feel strongly that the current locking has so many bugs that
> > people can actually _hit_ in practice that it's better to go for the
> > redesign early.
>
> It certainly needs a redesign. A new sort of lock which makes it appear to
> work won't fix races like:
>
> int cpufreq_update_policy(unsigned int cpu)
> {
> struct cpufreq_policy *data = cpufreq_cpu_get(cpu);
>
> ...
>
> lock_cpu_hotplug();
>
The problem with cpufreq was that it used lock_cpu_hotplug()
in some common routines because it
was needed in some paths and then also called the same routines
from the CPU hotplug callback path. That is easily fixable and
Gautham's patch 1/4 does exactly that.
One thing I have privately suggested to Gautham is to do an audit
of bad lock_cpu_hotplug() uses.
Now coming to the read-side of lock_cpu_hotplug() - cpu hotplug
is a very special asynchronous event. You cannot protect against
it using your own subsystem lock because you don't control
access to cpu_online_map. With multiple low-level subsystems
needing it, it also becomes difficult to work out the lock
hierarchies. The right way to do this is what Gautham and Ingo
are discussing - a scalable rw semaphore type lock that allows
recursive readers.
>
> I rather doubt that anyone will be hitting the races in practice. I'd
> recommend simply removing all the lock_cpu_hotplug() calls for 2.6.18.
I don't think that is a good idea. The right thing to do would be to
do an audit and clean up the bad lock_cpu_hotplug() calls. People
seem to have just got lazy with lock_cpu_hotplug().
Thanks
Dipankar
next prev parent reply other threads:[~2006-08-27 6:11 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-24 10:26 [RFC][PATCH 0/4] Redesign cpu_hotplug locking Gautham R Shenoy
2006-08-24 10:34 ` Ingo Molnar
2006-08-24 11:27 ` Gautham R Shenoy
2006-08-24 11:24 ` Ingo Molnar
2006-08-24 16:17 ` Andrew Morton
2006-08-25 9:50 ` Dave Jones
2006-08-26 21:09 ` Linus Torvalds
2006-08-26 22:04 ` Andrew Morton
2006-08-27 6:11 ` Dipankar Sarma [this message]
2006-08-27 6:46 ` Andrew Morton
2006-08-27 7:11 ` Dipankar Sarma
2006-08-27 7:42 ` Andrew Morton
2006-08-27 8:57 ` Nick Piggin
2006-08-27 11:06 ` Dipankar Sarma
2006-08-27 17:21 ` Andrew Morton
2006-08-27 17:49 ` Dipankar Sarma
2006-08-27 18:01 ` Andrew Morton
2006-08-27 7:37 ` Dipankar Sarma
2006-08-27 7:57 ` Andrew Morton
2006-08-26 22:05 ` Ingo Molnar
2006-08-26 22:25 ` Andrew Morton
2006-08-28 2:37 ` Srivatsa Vaddagiri
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060827061155.GC22565@in.ibm.com \
--to=dipankar@in.ibm.com \
--cc=akpm@osdl.org \
--cc=arjan@intel.linux.com \
--cc=ashok.raj@intel.com \
--cc=davej@redhat.com \
--cc=ego@in.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rusty@rustcorp.com.au \
--cc=torvalds@osdl.org \
--cc=vatsa@in.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.