From: Ravikiran G Thirumalai <kiran@scalex86.org>
To: Mingming Cao <cmm@us.ibm.com>
Cc: Christoph Lameter <clameter@sgi.com>,
akpm@osdl.org, Laurent Vivier <Laurent.Vivier@bull.net>,
linux-kernel@vger.kernel.org,
ext2-devel <ext2-devel@lists.sourceforge.net>,
linux-fsdevel@vger.kernel.org
Subject: Re: [Ext2-devel] Re: [RFC][PATCH 0/3] ext3 percpu counter fixes to suppport for ext3 unsigned long type free blocks counter
Date: Thu, 13 Apr 2006 17:20:35 -0700 [thread overview]
Message-ID: <20060414002035.GA9248@localhost.localdomain> (raw)
In-Reply-To: <1144967139.3763.29.camel@dyn9047017067.beaverton.ibm.com>
On Thu, Apr 13, 2006 at 03:25:39PM -0700, Mingming Cao wrote:
> On Thu, 2006-04-13 at 12:02 -0700, Ravikiran G Thirumalai wrote:
> > ...
> > Yes, but the global counter is modified with a lock in the SMP case, and the
> > local counters are modified by their respective cpus only, Although there
> > might be more subtle issues .....
> >
> Hmm, I was worried about the read to the 64 bit global counter, there is
> no lock to protect it from getting an half updated 64 bit counter. But I
> think the window is probably small, and with what Andreas suggested
> (keep the local per cpu counter as 32 bit value), we would avoid this
> non-atomic math in most cases.
>
> Well,anyway this counter is just an approximate value, and currently
> (with 32 bit global counter) we could still read an old global counter
> value while it's being updated since no lock is required while read it.
Yup, and percpu_counter_exceeds should take care of the race in global
counter reads where it matters.
> >
> > I thought the solution to this was to have a global unsigned counter, and
> > signed local counter, and defer updates to the global if it is going to be a
> > large value due to the case above. This way the global counter remains an up
> > counter no?
> >
>
> I think that will work, and we could get rid of the cheating
> percpu_counter_read_positive() totally;)
>
> So I think we could combine these two together: make the global counter
> an unsigned 64 bit (u64) and keep the per cpu counter still signed 32
> bit type, and also, defer updates the global counter to the global if
> the end result is larger that before. This way we could have remove the
> need for percpu_counter_read_positive(), and also allow the counter
> being used for 64 bit accounting on 32 bit arch.
>
> Comments?
Sounds OK to me.
Thanks,
Kiran
next prev parent reply other threads:[~2006-04-14 0:19 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-10 17:58 [RFC][PATCH 0/3] ext3 percpu counter fixes to suppport for ext3 unsigned long type free blocks counter Mingming Cao
2006-04-11 17:09 ` Christoph Lameter
2006-04-11 19:01 ` Mingming Cao
2006-04-11 22:20 ` Ravikiran G Thirumalai
2006-04-12 21:28 ` [Ext2-devel] " Mingming Cao
2006-04-12 21:50 ` Andreas Dilger
2006-04-13 19:02 ` Ravikiran G Thirumalai
2006-04-13 22:25 ` Mingming Cao
2006-04-14 0:20 ` Ravikiran G Thirumalai [this message]
2006-04-21 14:59 ` [PATCH 1/2] ext3 percpu counter fixes to suppport for more than 2**31 ext3 " Mingming Cao
2006-04-21 22:09 ` Andrew Morton
2006-04-24 17:48 ` Mingming Cao
2006-04-24 18:26 ` Ravikiran G Thirumalai
2006-04-24 19:13 ` Mingming Cao
2006-04-22 0:56 ` Ravikiran G Thirumalai
2006-04-24 17:49 ` Mingming Cao
2006-04-24 22:51 ` [RESEND][PATCH 1/2] percpu counter data type changes " Mingming Cao
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=20060414002035.GA9248@localhost.localdomain \
--to=kiran@scalex86.org \
--cc=Laurent.Vivier@bull.net \
--cc=akpm@osdl.org \
--cc=clameter@sgi.com \
--cc=cmm@us.ibm.com \
--cc=ext2-devel@lists.sourceforge.net \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).