Re: [patch 03/11] mm: shmem: do not try to uncharge known swapcachepages

From: Michal Hocko
Date: Tue Jul 10 2012 - 13:16:27 EST


On Mon 09-07-12 13:37:39, Hugh Dickins wrote:
> On Mon, 9 Jul 2012, Michal Hocko wrote:
> >
> > Maybe I am missing something but who does the uncharge from:
> > shmem_unuse
> > mem_cgroup_cache_charge
> > shmem_unuse_inode
> > shmem_add_to_page_cache
>
> There isn't any special uncharge for shmem_unuse(): once the swapcache
> page is matched up with its memcg, it will get uncharged by one of the
> usual routes to swapcache_free() when the page is freed: maybe in the
> call from __remove_mapping(), maybe when free_page_and_swap_cache()
> ends up calling it.
>
> Perhaps you're worrying about error (or unfound) paths in shmem_unuse()?

Yes that was exactly my concern.

> By the time we make the charge, we know for sure that it's a shmem page,
> and make the charge appropriately; in racy cases it might get uncharged
> again in the delete_from_swap_cache(). Can the unfound case occur these
> days?

I cannot find a change that would prevent from that.

> I'd have to think more deeply to answer that, but the charge will
> not go missing.
>
> Hugh

--
Michal Hocko
SUSE Labs
SUSE LINUX s.r.o.
Lihovarska 1060/12
190 00 Praha 9
Czech Republic
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/