Thread (2 messages) 2 messages, 2 authors, 2012-08-23

Re: [PATCH v2 09/11] memcg: propagate kmem limiting information to children

From: Greg Thelen <hidden>
Date: 2012-08-22 23:23:19
Also in: linux-mm, lkml

On Wed, Aug 22 2012, Glauber Costa wrote:
quoted
quoted
quoted
I am fine with either, I just need a clear sign from you guys so I don't
keep deimplementing and reimplementing this forever.
I would be for make it simple now and go with additional features later
when there is a demand for them. Maybe we will have runtimg switch for
user memory accounting as well one day.

But let's see what others think?
In my use case memcg will either be disable or (enabled and kmem
limiting enabled).

I'm not sure I follow the discussion about history.  Are we saying that
once a kmem limit is set then kmem will be accounted/charged to memcg.
Is this discussion about the static branches/etc that are autotuned the
first time is enabled?  
No, the question is about when you unlimit a former kmem-limited memcg.
quoted
The first time its set there parts of the system
will be adjusted in such a way that may impose a performance overhead
(static branches, etc).  Thereafter the performance cannot be regained
without a reboot.  This makes sense to me.  Are we saying that
kmem.limit_in_bytes will have three states?
It is not about performance, about interface.

Michal says that once a particular memcg was kmem-limited, it will keep
accounting pages, even if you make it unlimited. The limits won't be
enforced, for sure - there is no limit, but pages will still be accounted.

This simplifies the code galore, but I worry about the interface: A
person looking at the current status of the files only, without
knowledge of past history, can't tell if allocations will be tracked or not.
In the current patch set we've conflating enabling kmem accounting with
the kmem limit value (RESOURCE_MAX=disabled, all_other_values=enabled).

I see no problem with simpling the kernel code with the requirement that
once a particular memcg enables kmem accounting that it cannot be
disabled for that memcg.

The only question is the user space interface.  Two options spring to
mind:
a) Close to current code.  Once kmem.limit_in_bytes is set to
   non-RESOURCE_MAX, then kmem accounting is enabled and cannot be
   disabled.  Therefore the limit cannot be set to RESOURCE_MAX
   thereafter.  The largest value would be something like
   RESOURCE_MAX-PAGE_SIZE.  An admin wondering if kmem is enabled only
   has to cat kmem.limit_in_bytes - if it's less than RESOURCE_MAX, then
   kmem is enabled.

b) Or, if we could introduce a separate sticky kmem.enabled file.  Once
   set it could not be unset.  Kmem accounting would only be enabled if
   kmem.enabled=1.

I think (b) is clearer.

--
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>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help