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 cgroups" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html