mem_cgroup_cache_charge() has check for PageCompound(). The check prevents charging huge cache pages.
I don't see a reason why the check is present. Looks like it's just legacy (introduced in 52d4b9a memcg: allocate all page_cgroup at boot). Let's just drop it. Signed-off-by: Kirill A. Shutemov <[email protected]> Cc: KAMEZAWA Hiroyuki <[email protected]> Acked-by: Dave Hansen <[email protected]> Acked-by: Michal Hocko <[email protected]> --- mm/memcontrol.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index d5ff3ce130..0b87a1bd25 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -3963,8 +3963,7 @@ int mem_cgroup_cache_charge(struct page *page, struct mm_struct *mm, if (mem_cgroup_disabled()) return 0; - if (PageCompound(page)) - return 0; + VM_BUG_ON(PageCompound(page) && !PageTransHuge(page)); if (!PageSwapCache(page)) ret = mem_cgroup_charge_common(page, mm, gfp_mask, type); -- 1.8.4.rc3 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

