Messages in this thread | | | Date | Mon, 9 Jul 2012 13:37:39 -0700 (PDT) | From | Hugh Dickins <> | Subject | Re: [patch 03/11] mm: shmem: do not try to uncharge known swapcache pages |
| |
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
| |