From: Tejun Heo <tj@kernel.org>
To: Oleg Nesterov <oleg@redhat.com>
Cc: "Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>,
tglx@linutronix.de, peterz@infradead.org,
paulmck@linux.vnet.ibm.com, rusty@rustcorp.com.au,
mingo@kernel.org, akpm@linux-foundation.org, namhyung@kernel.org,
vincent.guittot@linaro.org, sbw@mit.edu,
amit.kucheria@linaro.org, rostedt@goodmis.org, rjw@sisk.pl,
wangyun@linux.vnet.ibm.com, xiaoguangrong@linux.vnet.ibm.com,
linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH v2 01/10] CPU hotplug: Provide APIs for "light" atomic readers to prevent CPU offline
Date: Wed, 5 Dec 2012 10:27:35 -0800 [thread overview]
Message-ID: <20121205182735.GM3885@mtj.dyndns.org> (raw)
In-Reply-To: <20121205181524.GA9401@redhat.com>
Hello, Oleg.
On Wed, Dec 05, 2012 at 07:15:24PM +0100, Oleg Nesterov wrote:
> On 12/05, Tejun Heo wrote:
> > Replacing get_online_cpus() w/ percpu_rwsem is great but this thread
> > is about replacing preempt_disable with something finer grained and
> > less heavy on the writer side
>
> If only I understood why preempt_disable() is bad ;)
>
> OK, I guess "less heavy on the writer side" is the hint, and in the
> previous email you mentioned that "stop_machine() itself is extremely
> heavy".
>
> Looks like, you are going to remove stop_machine() from cpu_down ???
Yeah, that's what Srivatsa is trying to do. The problem seems to be
that cpu up/down is very frequent on certain mobile platforms for
power management and as currently implemented cpu hotplug is too heavy
and latency-inducing.
> > The problem seems that we don't have percpu_rwlock yet. It shouldn't
> > be too difficult to implement, right?
>
> Oh, I am not sure... unless you simply copy-and-paste the lglock code
> and replace spinlock_t with rwlock_t.
Ah... right, so that's where brlock ended up. So, lglock is the new
thing and brlock is a wrapper around it.
> We probably want something more efficient, but I bet we can't avoid
> the barriers on the read side.
>
> And somehow we should avoid the livelocks. Say, we can't simply add
> the per_cpu_reader_counter, _read_lock should spin if the writer is
> active. But at the same time _read_lock should be recursive.
I think we should just go with lglock. It does involve local atomic
ops but atomic ops themselves aren't that expensive and it's not like
we can avoid memory barriers. Also, that's the non-sleeping
counterpart of percpu_rwsem. If it's not good enough for some reason,
we should improve it rather than introducing something else.
Thanks.
--
tejun
next prev parent reply other threads:[~2012-12-05 18:27 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20121205131038.17383.55472.stgit@srivatsabhat.in.ibm.com>
[not found] ` <20121205131136.17383.23318.stgit@srivatsabhat.in.ibm.com>
[not found] ` <20121205142316.GI3885@mtj.dyndns.org>
[not found] ` <20121205164640.GA7382@redhat.com>
[not found] ` <20121205165356.GL3885@mtj.dyndns.org>
2012-12-05 18:15 ` Oleg Nesterov
2012-12-05 18:27 ` Tejun Heo [this message]
2012-12-05 18:32 ` Srivatsa S. Bhat
2012-12-05 18:42 [RFC PATCH v2 00/10][RESEND] CPU hotplug: stop_machine()-free CPU hotplug Srivatsa S. Bhat
2012-12-05 18:43 ` [RFC PATCH v2 01/10] CPU hotplug: Provide APIs for "light" atomic readers to prevent CPU offline Srivatsa S. Bhat
2012-12-05 18:47 ` Srivatsa S. Bhat
2012-12-05 18:51 ` Srivatsa S. Bhat
2012-12-05 18:53 ` Srivatsa S. Bhat
2012-12-05 18:56 ` Srivatsa S. Bhat
2012-12-05 18:59 ` Srivatsa S. Bhat
2012-12-05 20:14 ` Srivatsa S. Bhat
2012-12-06 16:18 ` Oleg Nesterov
2012-12-06 18:48 ` Srivatsa S. Bhat
2012-12-06 19:17 ` Srivatsa S. Bhat
2012-12-07 21:01 ` Oleg Nesterov
2012-12-06 19:28 ` Steven Rostedt
2012-12-06 19:36 ` Srivatsa S. Bhat
2012-12-06 22:02 ` Steven Rostedt
2012-12-07 17:33 ` Srivatsa S. Bhat
[not found] ` <20121207200014.GB13238@redhat.com>
2012-12-10 18:21 ` Oleg Nesterov
2012-12-10 19:07 ` Steven Rostedt
2012-12-07 19:56 ` Oleg Nesterov
2012-12-07 20:25 ` Srivatsa S. Bhat
2012-12-07 20:59 ` Oleg Nesterov
2012-12-05 19:07 ` Oleg Nesterov
2012-12-05 19:16 ` Srivatsa S. Bhat
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=20121205182735.GM3885@mtj.dyndns.org \
--to=tj@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=amit.kucheria@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=oleg@redhat.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=rjw@sisk.pl \
--cc=rostedt@goodmis.org \
--cc=rusty@rustcorp.com.au \
--cc=sbw@mit.edu \
--cc=srivatsa.bhat@linux.vnet.ibm.com \
--cc=tglx@linutronix.de \
--cc=vincent.guittot@linaro.org \
--cc=wangyun@linux.vnet.ibm.com \
--cc=xiaoguangrong@linux.vnet.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®