linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Glauber Costa <glommer@parallels.com>
To: Tejun Heo <tj@kernel.org>
Cc: Mel Gorman <mgorman@suse.de>, Michal Hocko <mhocko@suse.cz>,
	linux-kernel@vger.kernel.org, cgroups@vger.kernel.org,
	kamezawa.hiroyu@jp.fujitsu.com, devel@openvz.org,
	linux-mm@kvack.org, Suleiman Souhlal <suleiman@google.com>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	David Rientjes <rientjes@google.com>,
	Johannes Weiner <hannes@cmpxchg.org>
Subject: Re: [PATCH v3 04/13] kmem accounting basic infrastructure
Date: Mon, 1 Oct 2012 12:36:37 +0400	[thread overview]
Message-ID: <50695615.9050004@parallels.com> (raw)
In-Reply-To: <20120930075700.GE10383@mtj.dyndns.org>

On 09/30/2012 11:57 AM, Tejun Heo wrote:
> Hello, Glauber.
> 
> On Thu, Sep 27, 2012 at 10:45:01PM +0400, Glauber Costa wrote:
>>> Can you please give other examples of cases where this type of issue
>>> exists (plenty of shared kernel data structure which is inherent to
>>> the workload at hand)?  Until now, this has been the only example for
>>> this type of issues.
>>
>> Yes. the namespace related caches (*), all kinds of sockets and network
>> structures, other file system structures like file struct, vm areas, and
>> pretty much everything a full container does.
>>
>> (*) we run full userspace, so we have namespaces + cgroups combination.
> 
> This is probably me being dumb but wouldn't resources used by full
> namespaces be mostly independent?  Which parts get shared?  Also, if
> you do full namespace, isn't it more likely that you would want fuller
> resource isolation too?
> 

Not necessarily. Namespaces are pretty flexible. If you are using the
network namespace, for instance, you can create interfaces, routes,
addresses, etc. But because this deals with the network only, there is
nothing unreasonable in saying that your webserver and database lives in
the same network (which is a different network namespace), but are
entitled to different memory limits - which is cgroups realm. With
application-only containers being championed these days by multiple
users, I would expect this situation to become non-negligible.

The full container scenario, of course, is very different. Most of the
accesses tends to be local.

I will second what Michal said, since I believe this is also very
important: User memory is completely at the control of the application,
while kernel memory is not, and never will. It is perfectly fine to
imagine applications that want its memory to be limited by a very
predictable amount, and there are no reasons to believe that those
cannot live in the same box as full containers - the biggest example of
kmem interested folks. It could be, for instance, that a management tool
for containers lives in there, and that application wants to be umem
limited but not kmem limited. (If it goes touching files and data inside
each container, for instance, it is obviously not local)

>>>> Mel suggestion of not allowing this to happen once the cgroup has tasks
>>>> takes care of this, and is something I thought of myself.
>>>
>>> You mean Michal's?  It should also disallow switching if there are
>>> children cgroups, right?
>>
>> No, I meant Mel, quoting this:
>>
>> "Further I would expect that an administrator would be aware of these
>> limitations and set kmem_accounting at cgroup creation time before any
>> processes start. Maybe that should be enforced but it's not a
>> fundamental problem."
>>
>> But I guess it is pretty much the same thing Michal proposes, in essence.
>>
>> Or IOW, if your concern is with the fact that charges may have happened
>> in the past before this is enabled, we can make sure this cannot happen
>> by disallowing the limit to be set if currently unset (value changes are
>> obviously fine) if you have children or any tasks already in the group.
> 
> Yeah, please do that.
> 

I did already, patches soon! =)

--
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>

  parent reply	other threads:[~2012-10-01  8:40 UTC|newest]

Thread overview: 127+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-18 14:03 [PATCH v3 00/13] kmem controller for memcg Glauber Costa
2012-09-18 14:03 ` [PATCH v3 01/13] memcg: Make it possible to use the stock for more than one page Glauber Costa
2012-10-01 18:48   ` Johannes Weiner
2012-09-18 14:03 ` [PATCH v3 02/13] memcg: Reclaim when more than one page needed Glauber Costa
2012-10-01 19:00   ` Johannes Weiner
2012-09-18 14:04 ` [PATCH v3 03/13] memcg: change defines to an enum Glauber Costa
2012-10-01 19:06   ` Johannes Weiner
2012-10-02  9:10     ` Glauber Costa
2012-09-18 14:04 ` [PATCH v3 04/13] kmem accounting basic infrastructure Glauber Costa
2012-09-21 16:34   ` Tejun Heo
2012-09-24  8:09     ` Glauber Costa
2012-09-26 14:03   ` Michal Hocko
2012-09-26 14:33     ` Glauber Costa
2012-09-26 16:01       ` Michal Hocko
2012-09-26 17:34         ` Glauber Costa
2012-09-26 16:36     ` Tejun Heo
2012-09-26 17:36       ` Glauber Costa
2012-09-26 17:44         ` Tejun Heo
2012-09-26 17:53           ` Glauber Costa
2012-09-26 18:01             ` Tejun Heo
2012-09-26 18:56               ` Glauber Costa
2012-09-26 19:34                 ` Tejun Heo
2012-09-26 19:46                   ` Glauber Costa
2012-09-26 19:56                     ` Tejun Heo
2012-09-26 20:02                       ` Glauber Costa
2012-09-26 20:16                         ` Tejun Heo
2012-09-26 21:24                           ` Glauber Costa
2012-09-26 22:10                             ` Tejun Heo
2012-09-26 22:29                               ` Glauber Costa
2012-09-26 22:42                                 ` Tejun Heo
2012-09-26 22:54                                   ` Glauber Costa
2012-09-26 23:08                                     ` Tejun Heo
2012-09-26 23:20                                       ` Glauber Costa
2012-09-26 23:33                                         ` Tejun Heo
2012-09-27 12:15                                           ` Michal Hocko
2012-09-27 12:20                                             ` Glauber Costa
2012-09-27 12:40                                               ` Michal Hocko
2012-09-27 12:40                                                 ` Glauber Costa
2012-09-27 12:54                                                   ` Michal Hocko
2012-09-27 14:28                                       ` Mel Gorman
2012-09-27 14:49                                         ` Tejun Heo
2012-09-27 14:57                                           ` Glauber Costa
2012-09-27 17:46                                             ` Tejun Heo
2012-09-27 17:56                                               ` Michal Hocko
2012-09-27 18:45                                               ` Glauber Costa
2012-09-30  7:57                                                 ` Tejun Heo
2012-09-30  8:02                                                   ` Tejun Heo
2012-09-30  8:56                                                     ` James Bottomley
2012-09-30 10:37                                                       ` Tejun Heo
2012-09-30 11:25                                                         ` James Bottomley
2012-10-01  0:57                                                           ` Tejun Heo
2012-10-01  8:43                                                             ` Glauber Costa
2012-10-01  8:46                                                         ` Glauber Costa
2012-10-03 22:59                                                           ` Tejun Heo
2012-10-01  8:36                                                   ` Glauber Costa [this message]
2012-09-27 12:08                             ` Michal Hocko
2012-09-27 12:11                               ` Glauber Costa
2012-09-27 14:33                               ` Tejun Heo
2012-09-27 14:43                                 ` Mel Gorman
2012-09-27 14:58                                   ` Tejun Heo
2012-09-27 18:30                                     ` Glauber Costa
2012-09-30  8:23                                       ` Tejun Heo
2012-10-01  8:45                                         ` Glauber Costa
2012-10-03 22:54                                           ` Tejun Heo
2012-10-04 11:55                                             ` Glauber Costa
2012-10-06  2:19                                               ` Tejun Heo
2012-09-27 15:09                                 ` Michal Hocko
2012-09-30  8:47                                   ` Tejun Heo
2012-10-01  9:27                                     ` Michal Hocko
2012-10-03 22:43                                       ` Tejun Heo
2012-10-05 13:47                                         ` Michal Hocko
2012-09-26 22:11                         ` Johannes Weiner
2012-09-26 22:45                           ` Glauber Costa
2012-09-18 14:04 ` [PATCH v3 05/13] Add a __GFP_KMEMCG flag Glauber Costa
2012-09-18 14:15   ` Rik van Riel
2012-09-18 15:06   ` Christoph Lameter
2012-09-19  7:39     ` Glauber Costa
2012-09-19 14:07       ` Christoph Lameter
2012-09-27 13:34   ` Mel Gorman
2012-09-27 13:41     ` Glauber Costa
2012-10-01 19:09   ` Johannes Weiner
2012-09-18 14:04 ` [PATCH v3 06/13] memcg: kmem controller infrastructure Glauber Costa
2012-09-20 16:05   ` JoonSoo Kim
2012-09-21  8:41     ` Glauber Costa
2012-09-21  9:14       ` JoonSoo Kim
2012-09-26 15:51   ` Michal Hocko
2012-09-27 11:31     ` Glauber Costa
2012-09-27 13:44       ` Michal Hocko
2012-09-28 11:34         ` Glauber Costa
2012-09-30  8:25           ` Tejun Heo
2012-10-01  8:28             ` Glauber Costa
2012-10-03 22:11               ` Tejun Heo
2012-10-01  9:44             ` Michal Hocko
2012-10-01  9:48           ` Michal Hocko
2012-10-01 10:09             ` Glauber Costa
2012-10-01 11:51               ` Michal Hocko
2012-10-01 11:51                 ` Glauber Costa
2012-10-01 11:58                   ` Michal Hocko
2012-10-01 12:04                     ` Glauber Costa
2012-09-18 14:04 ` [PATCH v3 07/13] mm: Allocate kernel pages to the right memcg Glauber Costa
2012-09-27 13:50   ` Mel Gorman
2012-09-28  9:43     ` Glauber Costa
2012-09-28 13:28       ` Mel Gorman
2012-09-27 13:52   ` Michal Hocko
2012-09-18 14:04 ` [PATCH v3 08/13] res_counter: return amount of charges after res_counter_uncharge Glauber Costa
2012-10-01 10:00   ` Michal Hocko
2012-10-01 10:01     ` Glauber Costa
2012-09-18 14:04 ` [PATCH v3 09/13] memcg: kmem accounting lifecycle management Glauber Costa
2012-10-01 12:15   ` Michal Hocko
2012-10-01 12:29     ` Glauber Costa
2012-10-01 12:36       ` Michal Hocko
2012-10-01 12:43         ` Glauber Costa
2012-09-18 14:04 ` [PATCH v3 10/13] memcg: use static branches when code not in use Glauber Costa
2012-10-01 12:25   ` Michal Hocko
2012-10-01 12:27     ` Glauber Costa
2012-09-18 14:04 ` [PATCH v3 11/13] memcg: allow a memcg with kmem charges to be destructed Glauber Costa
2012-10-01 12:30   ` Michal Hocko
2012-09-18 14:04 ` [PATCH v3 12/13] execute the whole memcg freeing in rcu callback Glauber Costa
2012-09-21 17:23   ` Tejun Heo
2012-09-24  8:48     ` Glauber Costa
2012-10-01 13:27   ` Michal Hocko
2012-10-04 10:53     ` Glauber Costa
2012-10-04 14:20       ` Glauber Costa
2012-10-05 15:31       ` Johannes Weiner
2012-10-08  9:45         ` Glauber Costa
2012-09-18 14:04 ` [PATCH v3 13/13] protect architectures where THREAD_SIZE >= PAGE_SIZE against fork bombs Glauber Costa
2012-10-01 13:17   ` Michal Hocko

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=50695615.9050004@parallels.com \
    --to=glommer@parallels.com \
    --cc=cgroups@vger.kernel.org \
    --cc=devel@openvz.org \
    --cc=fweisbec@gmail.com \
    --cc=hannes@cmpxchg.org \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@suse.de \
    --cc=mhocko@suse.cz \
    --cc=rientjes@google.com \
    --cc=suleiman@google.com \
    --cc=tj@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