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

From: Hugh Dickins
Date: Mon Jul 09 2012 - 16:38:15 EST


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()?
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'd have to think more deeply to answer that, but the charge will
not go missing.

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