The quilt patch titled Subject: memcg: page_cgroup_ino() get memcg from compound_head(page) has been removed from the -mm tree. Its filename was memcg-page_cgroup_ino-get-memcg-from-compound_headpage.patch This patch was dropped because it was nacked ------------------------------------------------------ From: Hugh Dickins <hughd@xxxxxxxxxx> Subject: memcg: page_cgroup_ino() get memcg from compound_head(page) Date: Mon, 13 Mar 2023 08:34:52 +0000 In a kernel with added WARN_ON_ONCE(PageTail) in page_memcg_check(), we observed a warning from page_cgroup_ino() when reading /proc/kpagecgroup. This warning was added to catch fragile reads of a page memcg. Make page_cgroup_ino() get memcg from compound_head(page): that gives it the correct memcg for each subpage of a compound page, so is the right fix. I dithered between the right fix and the safer "fix": it's unlikely but conceivable that some userspace has learnt that /proc/kpagecgroup gives no memcg on tail pages, and compensates for that in some (racy) way: so continuing to give no memcg on tails, without warning, might be safer. But hwpoison_filter_task(), the only other user of page_cgroup_ino(), persuaded me. It looks as if it currently leaves out tail pages of the selected memcg, by mistake: whereas hwpoison_inject() uses compound_head() and expects the tails to be included. So hwpoison testing coverage has probably been restricted by the wrong output from page_cgroup_ino() (if that memcg filter is used at all): in the short term, it might be safer not to enable wider coverage there, but long term we would regret that. Link: https://lkml.kernel.org/r/20230313083452.1319968-1-yosryahmed@xxxxxxxxxx Signed-off-by: Hugh Dickins <hughd@xxxxxxxxxx> Signed-off-by: Yosry Ahmed <yosryahmed@xxxxxxxxxx> Acked-by: Michal Hocko <mhocko@xxxxxxxx> Cc: Johannes Weiner <hannes@xxxxxxxxxxx> Cc: Miaohe Lin <linmiaohe@xxxxxxxxxx> Cc: Muchun Song <muchun.song@xxxxxxxxx> Cc: Naoya Horiguchi <naoya.horiguchi@xxxxxxx> Cc: Roman Gushchin <roman.gushchin@xxxxxxxxx> Cc: Shakeel Butt <shakeelb@xxxxxxxxxx> Cc: Vladimir Davydov <vdavydov.dev@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- --- a/mm/memcontrol.c~memcg-page_cgroup_ino-get-memcg-from-compound_headpage +++ a/mm/memcontrol.c @@ -395,7 +395,7 @@ ino_t page_cgroup_ino(struct page *page) unsigned long ino = 0; rcu_read_lock(); - memcg = page_memcg_check(page); + memcg = page_memcg_check(compound_head(page)); while (memcg && !(memcg->css.flags & CSS_ONLINE)) memcg = parent_mem_cgroup(memcg); _ Patches currently in -mm which might be from hughd@xxxxxxxxxx are