From: Andrew Morton <akpm@linux-foundation.org>
To: Andi Kleen <ak@linux.intel.com>
Cc: Tim Chen <tim.c.chen@linux.intel.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC] mm: Make vm_acct_memory scalable for large memory allocations
Date: Thu, 27 Jan 2011 16:26:26 -0800 [thread overview]
Message-ID: <20110127162626.8b38145b.akpm@linux-foundation.org> (raw)
In-Reply-To: <4D420A89.3050906@linux.intel.com>
On Thu, 27 Jan 2011 16:15:05 -0800
Andi Kleen <ak@linux.intel.com> wrote:
>
> > This seems like a pretty dumb test case. We have 64 cores sitting in a
> > loop "allocating" 32MB of memory, not actually using that memory and
> > then freeing it up again.
> >
> > Any not-completely-insane application would actually _use_ the memory.
> > Which involves pagefaults, page allocations and much memory traffic
> > modifying the page contents.
> >
> > Do we actually care?
>
> It's a bit like a poorly tuned malloc. From what I heard poorly tuned
> mallocs are quite
> common in the field, also with lots of custom ones around.
>
> While it would be good to tune them better the kernel should also have
> reasonable performance
> for this case.
>
> The poorly tuned malloc has other problems too, but this addresses at
> least one
> of them.
>
> Also I think Tim's patch is a general improvement to a somewhat dumb
> code path.
>
I guess another approach to this would be change the way in which we
decide to update the central counter.
At present we'll spill the per-cpu counter into the central counter
when the per-cpu counter exceeds some fixed threshold. But that's
dumb, because the error factor is relatively large for small values of
the counter, and relatively small for large values of the counter.
So instead, we should spill the per-cpu counter into the central
counter when the per-cpu counter exceeds some proportion of the central
counter (eg, 1%?). That way the inaccuracy is largely independent of
the counter value and the lock-taking frequency decreases for large
counter values.
And given that "large cpu count" and "lots of memory" correlate pretty
well, I suspect such a change would fix up the contention which is
being seen here without magical startup-time tuning heuristics.
This again will require moving the batch threshold into the counter
itself and also recalculating it when the central counter is updated.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom policy in Canada: sign http://dissolvethecrtc.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
prev parent reply other threads:[~2011-01-28 0:26 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-26 22:51 [RFC] mm: Make vm_acct_memory scalable for large memory allocations Tim Chen
2011-01-27 23:36 ` Andrew Morton
2011-01-28 0:15 ` Andi Kleen
2011-01-28 0:26 ` Andrew Morton [this message]
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=20110127162626.8b38145b.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=ak@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=tim.c.chen@linux.intel.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;
as well as URLs for NNTP newsgroup(s).