From: Tim Chen <tim.c.chen@linux.intel.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Andi Kleen <andi@firstfloor.org>,
linux-kernel@vger.kernel.org, Andi Kleen <ak@linux.intel.com>,
Hugh Dickins <hughd@google.com>
Subject: Re: [PATCH v2 1/2] tmpfs: Quick token library to allow scalable retrieval of tokens from token jar
Date: Fri, 11 Jun 2010 16:29:59 -0700 [thread overview]
Message-ID: <1276298999.2385.71.camel@mudge.jf.intel.com> (raw)
In-Reply-To: <20100611152620.97bc3e59.akpm@linux-foundation.org>
On Fri, 2010-06-11 at 15:26 -0700, Andrew Morton wrote:
> }
> @@ -422,11 +423,11 @@ static swp_entry_t *shmem_swp_alloc(stru
> */
> if (sbinfo->max_blocks) {
> spin_lock(&sbinfo->stat_lock);
> - if (sbinfo->free_blocks <= 1) {
> + if (percpu_counter_read(&sbinfo->free_blocks) <= 1) {
> spin_unlock(&sbinfo->stat_lock);
Thanks for pointing me to look at this alternative implementation.
However, looking at the percpu counter code, it appears that the
percpu_counter_read is imprecise. The counters in the per cpu counters
are not accounted and the value read may be much less than the true
amount of free blocks left when used in the patch above. We could fail
the above test and not allocate pages when we actually have additional
pages available. Using percpu_counter_sum will give the precise count
but will cause the acquisition of the spin lock in the percpu_counter
and slowed things down in this performance critical path. If we feel
that we could tolerate fuzziness on the size we configured for tmpfs,
then this could be the way to go.
However, qtoken library implementation will impose a precise limit and
has the per cpu counter's speed advantage.
Tim
next prev parent reply other threads:[~2010-06-11 23:32 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-26 19:32 [PATCH v2 1/2] tmpfs: Quick token library to allow scalable retrieval of tokens from token jar Tim Chen
2010-06-01 21:51 ` Andrew Morton
2010-06-02 8:58 ` Andi Kleen
2010-06-09 22:36 ` Andrew Morton
2010-06-10 17:06 ` Tim Chen
2010-06-11 21:52 ` Andrew Morton
2010-06-11 22:06 ` Tim Chen
2010-06-11 22:26 ` Andrew Morton
2010-06-11 23:29 ` Tim Chen [this message]
2010-06-11 23:54 ` Andrew Morton
2010-06-12 7:36 ` Andi Kleen
2010-06-12 15:27 ` Andrew Morton
2010-06-15 1:24 ` Tim Chen
2010-06-02 17:32 ` Tim Chen
2010-06-09 22:41 ` Andrew Morton
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=1276298999.2385.71.camel@mudge.jf.intel.com \
--to=tim.c.chen@linux.intel.com \
--cc=ak@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=hughd@google.com \
--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 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.