linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Balbir Singh <balbir@linux.vnet.ibm.com>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	linux-mm@kvack.org, lizf@cn.fujitsu.com,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Subject: Re: [RFC][PATCH 0/5] Memory controller soft limit patches (v8)
Date: Fri, 10 Jul 2009 11:23:11 +0530	[thread overview]
Message-ID: <661de9470907092253r8bbe353kbcbf96559ced021c@mail.gmail.com> (raw)
In-Reply-To: <20090710135340.97b82f17.kamezawa.hiroyu@jp.fujitsu.com>

On Fri, Jul 10, 2009 at 10:23 AM, KAMEZAWA
Hiroyuki<kamezawa.hiroyu@jp.fujitsu.com> wrote:
> On Thu, 09 Jul 2009 22:44:41 +0530
> Balbir Singh <balbir@linux.vnet.ibm.com> wrote:
>
>>
>> From: Balbir Singh <balbir@linux.vnet.ibm.com>
>>
>> New Feature: Soft limits for memory resource controller.
>>
>> Here is v8 of the new soft limit implementation. Soft limits is a new feature
>> for the memory resource controller, something similar has existed in the
>> group scheduler in the form of shares. The CPU controllers interpretation
>> of shares is very different though.
>>
>> Soft limits are the most useful feature to have for environments where
>> the administrator wants to overcommit the system, such that only on memory
>> contention do the limits become active. The current soft limits implementation
>> provides a soft_limit_in_bytes interface for the memory controller and not
>> for memory+swap controller. The implementation maintains an RB-Tree of groups
>> that exceed their soft limit and starts reclaiming from the group that
>> exceeds this limit by the maximum amount.
>>
>> v8 has come out after a long duration, we were held back by bug fixes
>> (most notably swap cache leak fix) and Kamezawa-San has his series of
>> patches for soft limits. Kamezawa-San asked me to refactor these patches
>> to make the data structure per-node-per-zone.
>>
>> TODOs
>>
>> 1. The current implementation maintains the delta from the soft limit
>>    and pushes back groups to their soft limits, a ratio of delta/soft_limit
>>    might be more useful
>> 2. Small optimizations that I intend to push in v9, if the v8 design looks
>>    good and acceptable.
>>
>> Tests
>> -----
>>
>> I've run two memory intensive workloads with differing soft limits and
>> seen that they are pushed back to their soft limit on contention. Their usage
>> was their soft limit plus additional memory that they were able to grab
>> on the system. Soft limit can take a while before we see the expected
>> results.
>>
>
> Before pointing out nitpicks, here are my impressions.
>
>  1. seems good in general.
>

Thanks

>  2. Documentation is not enough. I think it's necessary to write "excuse" as
>    "soft-limit is built on complex memory management system's behavior, then,
>     this may not work as you expect. But in many case, this works well.
>     please take this as best-effort service" or some.
>

Sure, I'll revisit it and update.

>  3. Using "jiffies" again is not good. plz use other check or event counter.
>

Yes, I considered event based sampling and update. I wrote the code,
but then realized that it works really well if I keep the sampling per
cpu, otherwise it does not scale well. My problem with per-cpu
sampling is that the view we get could vary drastically if we migrated
or the task migrated to a different node and allocated memory.

>  4. I think it's better to limit soltlimit only against root of hierarcy node.
>    (use_hierarchy=1) I can't explain how the system works if several soft limits
>    are set to root and its children under a hierarchy.
>

The idea is that if we add a node and it has children and that node
goes above the soft limit, we'll do hierarchical reclaim from the
children underneath almost like a normal reclaim, where the unused
pages would be reclaimed/ Having said that I am open to your
suggestion, my concern is that semantics can get a bit confusing as to
when the administrator can setup soft limits. We can come up with
guidelines and recommend your suggestion.

>  5. I'm glad if you extract patch 4/5 as an independent clean up patch.
>

Thanks,

>  6. no overheads ?
>

I ran some tests and saw no additional overheads, I'll test some more
and post results. There are some cleanups pending like the ones you
pointed, where we can use page_to_* instead of pc_* routines. I did
not clean them up as I wanted to get out the RFC soon with working
functionality and post v9 with those cleaned up.

Thanks for the review.
Balbir

--
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/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

      reply	other threads:[~2009-07-10  5:30 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-09 17:14 [RFC][PATCH 0/5] Memory controller soft limit patches (v8) Balbir Singh
2009-07-09 17:14 ` [RFC][PATCH 1/5] Memory controller soft limit documentation (v8) Balbir Singh
2009-07-10  5:32   ` KAMEZAWA Hiroyuki
2009-07-10  6:48     ` Balbir Singh
2009-07-09 17:14 ` [RFC][PATCH 2/5] Memory controller soft limit interface (v8) Balbir Singh
2009-07-09 17:15 ` [RFC][PATCH 3/5] Memory controller soft limit organize cgroups (v8) Balbir Singh
2009-07-10  5:21   ` KAMEZAWA Hiroyuki
2009-07-10  6:47     ` Balbir Singh
2009-07-10  7:16       ` KAMEZAWA Hiroyuki
2009-07-10  8:05     ` Balbir Singh
2009-07-10  8:14       ` KAMEZAWA Hiroyuki
2009-07-10  8:20         ` Balbir Singh
2009-07-09 17:15 ` [RFC][PATCH 4/5] Memory controller soft limit refactor reclaim flags (v8) Balbir Singh
2009-07-09 17:15 ` [RFC][PATCH 5/5] Memory controller soft limit reclaim on contention (v8) Balbir Singh
2009-07-10  5:30   ` KAMEZAWA Hiroyuki
2009-07-10  6:53     ` Balbir Singh
2009-07-10  7:30       ` KAMEZAWA Hiroyuki
2009-07-10  7:49         ` Balbir Singh
2009-07-10 10:56           ` Balbir Singh
2009-07-10 14:15             ` KAMEZAWA Hiroyuki
2009-07-10 14:22               ` Balbir Singh
2009-07-10  4:53 ` [RFC][PATCH 0/5] Memory controller soft limit patches (v8) KAMEZAWA Hiroyuki
2009-07-10  5:53   ` Balbir Singh [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=661de9470907092253r8bbe353kbcbf96559ced021c@mail.gmail.com \
    --to=balbir@linux.vnet.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-mm@kvack.org \
    --cc=lizf@cn.fujitsu.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).