From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5ABF4C77B61 for ; Sun, 16 Apr 2023 18:46:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229870AbjDPSqr (ORCPT ); Sun, 16 Apr 2023 14:46:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46792 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229667AbjDPSqn (ORCPT ); Sun, 16 Apr 2023 14:46:43 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E3282106 for ; Sun, 16 Apr 2023 11:46:42 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 7E9FF60F66 for ; Sun, 16 Apr 2023 18:46:42 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D39FAC433D2; Sun, 16 Apr 2023 18:46:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1681670801; bh=6xYG2rfG1O31DcXy0fShuBIHLCPff300yC82ewnsTt4=; h=Date:To:From:Subject:From; b=jGGWjkgLzIeT1MWjqd3Qghpnn+n9y5Kbjz8BIteJ7MkD7Zpd7wysyxnOV43rSSK2d +IVBcKxPe8sbnMEh6X2DF6aZBncAYtzmj2aYS5rAL2JXrr7skKJ7Mp8c84W0LgVfVv c+AJa4F3yd18mhh47Ho1cExQskmeLs0u4ia1JG3c= Date: Sun, 16 Apr 2023 11:46:41 -0700 To: mm-commits@vger.kernel.org, zokeefe@google.com, yuzhao@google.com, willy@infradead.org, shy828301@gmail.com, ryan.roberts@arm.com, roman.gushchin@linux.dev, mkoutny@suse.com, kirill.shutemov@linux.intel.com, ziy@nvidia.com, akpm@linux-foundation.org From: Andrew Morton Subject: [to-be-updated] mm-memcg-make-memcg-huge-page-split-support-any-order-split.patch removed from -mm tree Message-Id: <20230416184641.D39FAC433D2@smtp.kernel.org> Precedence: bulk Reply-To: linux-kernel@vger.kernel.org List-ID: X-Mailing-List: mm-commits@vger.kernel.org The quilt patch titled Subject: mm: memcg: make memcg huge page split support any order split has been removed from the -mm tree. Its filename was mm-memcg-make-memcg-huge-page-split-support-any-order-split.patch This patch was dropped because an updated version will be merged ------------------------------------------------------ From: Zi Yan Subject: mm: memcg: make memcg huge page split support any order split Date: Mon, 3 Apr 2023 16:18:35 -0400 It sets memcg information for the pages after the split. A new parameter new_order is added to tell the order of subpages in the new page, always 0 for now. It prepares for upcoming changes to support split huge page to any lower order. Link: https://lkml.kernel.org/r/20230403201839.4097845-4-zi.yan@sent.com Signed-off-by: Zi Yan Cc: Kirill A. Shutemov Cc: Matthew Wilcox (Oracle) Cc: Michal Koutný Cc: Roman Gushchin Cc: Ryan Roberts Cc: Yang Shi Cc: Yu Zhao Cc: Zach O'Keefe Signed-off-by: Andrew Morton --- include/linux/memcontrol.h | 4 ++-- mm/huge_memory.c | 2 +- mm/memcontrol.c | 11 ++++++----- mm/page_alloc.c | 4 ++-- 4 files changed, 11 insertions(+), 10 deletions(-) --- a/include/linux/memcontrol.h~mm-memcg-make-memcg-huge-page-split-support-any-order-split +++ a/include/linux/memcontrol.h @@ -1152,7 +1152,7 @@ static inline void memcg_memory_event_mm rcu_read_unlock(); } -void split_page_memcg(struct page *head, int order); +void split_page_memcg(struct page *head, int old_order, int new_order); unsigned long mem_cgroup_soft_limit_reclaim(pg_data_t *pgdat, int order, gfp_t gfp_mask, @@ -1593,7 +1593,7 @@ void count_memcg_event_mm(struct mm_stru { } -static inline void split_page_memcg(struct page *head, int order) +static inline void split_page_memcg(struct page *head, int old_order, int new_order) { } --- a/mm/huge_memory.c~mm-memcg-make-memcg-huge-page-split-support-any-order-split +++ a/mm/huge_memory.c @@ -2524,7 +2524,7 @@ static void __split_huge_page(struct pag int i; /* complete memcg works before add pages to LRU */ - split_page_memcg(head, order); + split_page_memcg(head, order, 0); if (PageAnon(head) && PageSwapCache(head)) { swp_entry_t entry = { .val = page_private(head) }; --- a/mm/memcontrol.c~mm-memcg-make-memcg-huge-page-split-support-any-order-split +++ a/mm/memcontrol.c @@ -3441,23 +3441,24 @@ void obj_cgroup_uncharge(struct obj_cgro /* * Because page_memcg(head) is not set on tails, set it now. */ -void split_page_memcg(struct page *head, int order) +void split_page_memcg(struct page *head, int old_order, int new_order) { struct folio *folio = page_folio(head); struct mem_cgroup *memcg = folio_memcg(folio); int i; - unsigned int nr = 1 << order; + unsigned int old_nr = 1 << old_order; + unsigned int new_nr = 1 << new_order; if (mem_cgroup_disabled() || !memcg) return; - for (i = 1; i < nr; i++) + for (i = new_nr; i < old_nr; i += new_nr) folio_page(folio, i)->memcg_data = folio->memcg_data; if (folio_memcg_kmem(folio)) - obj_cgroup_get_many(__folio_objcg(folio), nr - 1); + obj_cgroup_get_many(__folio_objcg(folio), old_nr / new_nr - 1); else - css_get_many(&memcg->css, nr - 1); + css_get_many(&memcg->css, old_nr / new_nr - 1); } #ifdef CONFIG_SWAP --- a/mm/page_alloc.c~mm-memcg-make-memcg-huge-page-split-support-any-order-split +++ a/mm/page_alloc.c @@ -2781,7 +2781,7 @@ void split_page(struct page *page, unsig for (i = 1; i < (1 << order); i++) set_page_refcounted(page + i); split_page_owner(page, order); - split_page_memcg(page, order); + split_page_memcg(page, order, 0); } EXPORT_SYMBOL_GPL(split_page); @@ -4997,7 +4997,7 @@ static void *make_alloc_exact(unsigned l struct page *last = page + nr; split_page_owner(page, order); - split_page_memcg(page, order); + split_page_memcg(page, order, 0); while (page < --last) set_page_refcounted(last); _ Patches currently in -mm which might be from ziy@nvidia.com are mm-page_owner-add-support-for-splitting-to-any-order-in-split-page_owner.patch mm-thp-split-huge-page-to-any-lower-order-pages.patch mm-truncate-split-huge-page-cache-page-to-a-non-zero-order-if-possible.patch mm-huge_memory-enable-debugfs-to-split-huge-pages-to-any-order.patch