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 <kirill.shutemov@xxxxxxxxxxxxxxx> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> Acked-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> Acked-by: Michal Hocko <mhocko@xxxxxxx> --- 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-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html