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, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>