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, 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>