[Devel] [PATCH -mm 1/4] sl[au]b: do not charge large allocations to memcg

Michal Hocko mhocko at suse.cz
Thu Mar 27 13:40:41 PDT 2014


On Thu 27-03-14 11:34:10, Vladimir Davydov wrote:
> Hi Michal,
> 
> On 03/27/2014 01:53 AM, Michal Hocko wrote:
> > On Wed 26-03-14 19:28:04, Vladimir Davydov wrote:
> >> We don't track any random page allocation, so we shouldn't track kmalloc
> >> that falls back to the page allocator.
> > Why did we do that in the first place? d79923fad95b (sl[au]b: allocate
> > objects from memcg cache) didn't tell me much.
> 
> I don't know, we'd better ask Glauber about that.
> 
> > How is memcg_kmem_skip_account removal related?
> 
> The comment this patch removes along with the memcg_kmem_skip_account
> check explains that pretty well IMO. In short, we only use
> memcg_kmem_skip_account to prevent kmalloc's from charging, which is
> crucial for recursion-avoidance in memcg_kmem_get_cache. Since we don't
> charge pages allocated from a root (not per-memcg) cache, from the first
> glance it would be enough to check for memcg_kmem_skip_account only in
> memcg_kmem_get_cache and return the root cache if it's set. However, for
> we can also kmalloc w/o issuing memcg_kmem_get_cache (kmalloc_large), we
> also need this check in memcg_kmem_newpage_charge. This patch removes
> kmalloc_large accounting, so we don't need this check anymore.

Document that in the changelog please.
-- 
Michal Hocko
SUSE Labs



More information about the Devel mailing list