From: David Rientjes <rientjes@google.com>
To: Satoru Moriya <satoru.moriya@hds.com>
Cc: Con Kolivas <kernel@kolivas.org>,
Andrew Morton <akpm@linux-foundation.org>,
Rik van Riel <riel@redhat.com>,
Randy Dunlap <rdunlap@xenotime.net>,
Satoru Moriya <smoriya@redhat.com>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
"lwoodman@redhat.com" <lwoodman@redhat.com>,
Seiji Aguchi <saguchi@redhat.com>,
Hugh Dickins <hughd@google.com>,
"hannes@cmpxchg.org" <hannes@cmpxchg.org>
Subject: RE: [PATCH -v2 -mm] add extra free kbytes tunable
Date: Thu, 13 Oct 2011 13:48:13 -0700 (PDT) [thread overview]
Message-ID: <alpine.DEB.2.00.1110131337580.24853@chino.kir.corp.google.com> (raw)
In-Reply-To: <65795E11DBF1E645A09CEC7EAEE94B9CB516D459@USINDEVS02.corp.hds.com>
On Thu, 13 Oct 2011, Satoru Moriya wrote:
> My test case is just a simple one (maybe too simple), and I tried
> to demonstrate following issues that current kernel has with it.
>
> 1. Current kernel uses free memory as pagecache.
> 2. Applications may allocate memory burstly and when it happens
> they may get a latency issue because there are not enough free
> memory. Also the amount of required memory is wide-ranging.
This is what the per-zone watermarks are intended to address and I
understand that it's not doing a good enough job for your particular
workloads. I'm trying to find a solution that mitigates that for all
threads that allocate faster than the kernel can reclaim, realtime or
otherwise, without requiring the admin to set those watermarks himself,
which is really what extra_free_kbytes is eventually leading to.
> 3. Some users would like to control the amount of free memory
> to avoid the situation above.
The only possible way to do that is with min_free_kbytes right now and
that would increase the amount of memory that realtime threads have
exclusive access to. Let's try not to add additional tunables so that
admins need to find their own optimal watermarks for every kernel release.
I see no reason why we can't add logic for rt-threads triggering reclaim
to either reclaim faster (Con's patch) or more memory than normal (an
ALLOC_HARDER type bonus in the reclaim path to reclaim 1.25 * high_wmark,
for example). We've had a rt-thread bonus in the page allocator for a
long time, I'm not saying we don't need more elsewhere.
> 4. User can't setup the amount of free memory explicitly.
> From user's point of view, the amount of free memory is the delta
> between high watermark - min watermark because below min watermark
> user applications incur a penalty (direct reclaim). The width of
> delta depends on min_free_kbytes, actually min watermark / 2, and
> so if we want to make free memory bigger, we must make
> min_free_kbytes bigger. It's not a intuitive and it introduces
> another problem that is possibility of direct reclaim is increased.
>
So you're saying that we need to increase the space between high_wmark and
min_wmark anytime that min_free_kbytes changes? That certainly may be
true and would hopefully mitigate direct reclaim becoming too intrusive
for your workload.
We _really_ don't want to cause regressions for others, though, which
extra_free_kbytes can easily do for cpu-intensive workloads if nothing is
currently requiring that extra burst of memory (and occurs because
extra_free_kbytes is a global tunable and not tied to any specific
application [like testing for rt_task()] that we can identify when
reclaiming).
> But my concern described above is still alive because whether
> latency issue happen or not depends on how heavily workloads
> allocate memory at a short time. Of cource we can say same
> things for extra_free_kbytes, but we can change it and test
> an effect easily.
>
We'll never know the future and how much memory a latency-sensitive
application will require 100ms from now. The only thing that we can do is
(i) identify the latency-sensitive app, (ii) reclaim more aggressively for
them, and (iii) reclaim additional memory in preparation for another
burst. At some point, though, userspace needs to be responsible to not
allocate enormous amounts of memory all at once and there's room for
mitigation there too to preallocate ahead of what you actually need.
--
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 internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2011-10-13 20:48 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-01 14:52 [PATCH " Rik van Riel
2011-09-01 17:06 ` Randy Dunlap
2011-09-01 19:26 ` [PATCH -v2 " Rik van Riel
2011-09-01 21:58 ` Andrew Morton
2011-09-01 22:08 ` David Rientjes
2011-09-01 22:16 ` Andrew Morton
2011-09-02 16:31 ` Satoru Moriya
2011-10-13 7:33 ` Minchan Kim
2011-10-13 8:09 ` KAMEZAWA Hiroyuki
[not found] ` <E1FA588BC672D846BDBB452FCA1E308C2389B4@USINDEVS02.corp.hds.com>
2011-09-15 3:33 ` Satoru Moriya
2011-09-01 22:09 ` Andrew Morton
2011-09-02 16:26 ` [PATCH -mm] fixes & cleanups for "add extra free kbytes tunable" Rik van Riel
2011-09-30 21:43 ` [PATCH -v2 -mm] add extra free kbytes tunable Johannes Weiner
2011-10-08 3:08 ` David Rientjes
2011-10-10 22:37 ` Andrew Morton
2011-10-11 19:32 ` Satoru Moriya
2011-10-11 19:54 ` Andrew Morton
2011-10-11 20:23 ` Satoru Moriya
2011-10-11 20:54 ` Andrew Morton
2011-10-12 13:09 ` Rik van Riel
2011-10-12 19:20 ` Andrew Morton
2011-10-12 19:58 ` Rik van Riel
2011-10-12 20:26 ` David Rientjes
2011-10-21 23:48 ` Satoru Moriya
2011-10-23 21:22 ` David Rientjes
2011-10-25 2:04 ` Satoru Moriya
2011-10-25 21:50 ` David Rientjes
2011-10-26 18:59 ` Satoru Moriya
2011-10-12 21:08 ` Satoru Moriya
2011-10-12 22:41 ` David Rientjes
2011-10-12 23:52 ` Satoru Moriya
2011-10-13 0:01 ` David Rientjes
2011-10-13 5:35 ` KAMEZAWA Hiroyuki
2011-10-13 20:55 ` David Rientjes
2011-10-14 22:16 ` Satoru Moriya
2011-10-14 22:46 ` David Rientjes
2011-10-14 5:32 ` Satoru Moriya
2011-10-14 5:06 ` Satoru Moriya
2011-10-11 23:22 ` David Rientjes
2011-10-13 16:54 ` Satoru Moriya
2011-10-13 20:48 ` David Rientjes [this message]
2011-10-13 21:11 ` Rik van Riel
2011-10-13 22:02 ` David Rientjes
2011-10-11 19:20 ` Satoru Moriya
2011-10-11 21:04 ` David Rientjes
2011-10-12 13:13 ` Rik van Riel
2011-10-12 20:21 ` David Rientjes
2011-10-13 4:13 ` Rik van Riel
2011-10-13 5:22 ` David Rientjes
2011-10-22 0:11 ` Satoru Moriya
2011-09-09 23:01 Satoru Moriya
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=alpine.DEB.2.00.1110131337580.24853@chino.kir.corp.google.com \
--to=rientjes@google.com \
--cc=akpm@linux-foundation.org \
--cc=hannes@cmpxchg.org \
--cc=hughd@google.com \
--cc=kernel@kolivas.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lwoodman@redhat.com \
--cc=rdunlap@xenotime.net \
--cc=riel@redhat.com \
--cc=saguchi@redhat.com \
--cc=satoru.moriya@hds.com \
--cc=smoriya@redhat.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