From: Bharata B Rao <bharata@linux.vnet.ibm.com>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>,
balbir@linux.vnet.ibm.com, Li Zefan <lizf@cn.fujitsu.com>,
linux-kernel@vger.kernel.org,
Dhaval Giani <dhaval@linux.vnet.ibm.com>,
Paul Menage <menage@google.com>, Ingo Molnar <mingo@elte.hu>
Subject: Re: [PATCH -tip] cpuacct: Make cpuacct hierarchy walk in cpuacct_charge() safe when rcupreempt is used.
Date: Wed, 18 Mar 2009 10:18:01 +0530 [thread overview]
Message-ID: <20090318044801.GC3960@in.ibm.com> (raw)
In-Reply-To: <20090318125434.63d833e4.kamezawa.hiroyu@jp.fujitsu.com>
On Wed, Mar 18, 2009 at 12:54:34PM +0900, KAMEZAWA Hiroyuki wrote:
> On Wed, 18 Mar 2009 08:55:58 +0530
> Bharata B Rao <bharata@linux.vnet.ibm.com> wrote:
>
> > On Tue, Mar 17, 2009 at 03:04:46PM +0100, Peter Zijlstra wrote:
> > > On Tue, 2009-03-17 at 19:29 +0530, Balbir Singh wrote:
> > > > * Peter Zijlstra <a.p.zijlstra@chello.nl> [2009-03-17 14:26:01]:
> > > >
> > > > > On Tue, 2009-03-17 at 18:42 +0530, Balbir Singh wrote:
> > > > >
> > > > > > I'd like to get the patches in -tip and see the results, I would
> > > > > > recommend using percpu_counter_sum() while reading the data as an
> > > > > > enhancement to this patch. If user space does not overwhelm with a lot
> > > > > > of reads, sum would work out better.
> > > > >
> > > > > You trust userspace? I'd rather not.
> > > > >
> > > >
> > > > Fair enough.. A badly written application monitor can frequently read
> > > > this data and cause horrible performance issues. On the other hand
> > > > large number of CPUs can make the lag even worse. Is it time yet for
> > > > percpu_counter batch numbers? I've tested this patch and the results
> > > > were not badly off the mark.
> > >
> > > I'd rather err on the side of caution here, you might get some crazy
> > > folks depending on it and then expecting us to maintain it.
> >
> > So if we want to be cautious, we could use percpu_counter_sum() as
> > Balbir suggested. That would address both the issues with percpu_counter
> > that I pointed out earlier:
> >
> > - Readers are serialized with writers and we get consistent/correct
> > values during reads.
> > - Negates the effect of batching and reads would always get updated/current
> > values.
> >
>
> Is this wrong ?
> ==
> -- CONFIG_32BIT
> s64 static inline s64 percpu_counter_read_slow(struct percpu_counter *fbc)
> {
> s64 val;
> retry:
> val = fbc->counter;
> smp_mb();
> wait_spin_unlock(&fbc->lock);
> if (fbc->counter < val) {
> goto retry;
> return val;
> }
> ==
Looks ok to me, but will wait for experts' comments.
However, I did a quick measurement of read times with percpu_counter_read()
(no readside lock) and percpu_counter_sum() (readside lock) and I don't
see a major slowdown with percpu_counter_sum().
Time taken for 100 reads of cpuacct.stat with 1s delay b/n every read.
percpu_counter_read() - 9845 us
percpu_counter_sum() - 9974 us
This is on a 8cpu system.
Regards,
Bharata.
next prev parent reply other threads:[~2009-03-18 4:48 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-17 6:17 [PATCH -tip] cpuacct: Make cpuacct hierarchy walk in cpuacct_charge() safe when rcupreempt is used Bharata B Rao
2009-03-17 6:28 ` Li Zefan
2009-03-17 7:36 ` Bharata B Rao
2009-03-17 13:12 ` Balbir Singh
2009-03-17 13:26 ` Peter Zijlstra
2009-03-17 13:59 ` Balbir Singh
2009-03-17 14:04 ` Peter Zijlstra
2009-03-18 3:25 ` Bharata B Rao
2009-03-18 3:54 ` KAMEZAWA Hiroyuki
2009-03-18 4:48 ` Bharata B Rao [this message]
2009-03-18 7:08 ` KAMEZAWA Hiroyuki
2009-03-18 8:05 ` Bharata B Rao
2009-03-17 23:59 ` KAMEZAWA Hiroyuki
2009-03-18 3:18 ` Bharata B Rao
2009-03-18 9:36 ` Balbir Singh
2009-03-19 9:20 ` Peter Zijlstra
2009-03-19 9:43 ` Bharata B Rao
2009-03-17 12:40 ` Balbir Singh
2009-03-18 1:40 ` Li Zefan
2009-03-18 2:59 ` Balbir Singh
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=20090318044801.GC3960@in.ibm.com \
--to=bharata@linux.vnet.ibm.com \
--cc=a.p.zijlstra@chello.nl \
--cc=balbir@linux.vnet.ibm.com \
--cc=dhaval@linux.vnet.ibm.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lizf@cn.fujitsu.com \
--cc=menage@google.com \
--cc=mingo@elte.hu \
/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.