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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id B39F0C28B2E for ; Thu, 13 Mar 2025 14:59:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DEE6F280006; Thu, 13 Mar 2025 10:59:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D75EF280005; Thu, 13 Mar 2025 10:59:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B3114280007; Thu, 13 Mar 2025 10:59:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 89836280002 for ; Thu, 13 Mar 2025 10:59:01 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id A37CB1C629B for ; Thu, 13 Mar 2025 14:59:01 +0000 (UTC) X-FDA: 83216835282.29.B1B640A Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf17.hostedemail.com (Postfix) with ESMTP id EBEAE4000E for ; Thu, 13 Mar 2025 14:58:59 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=ldoGNQbL; dmarc=none; spf=none (imf17.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741877940; a=rsa-sha256; cv=none; b=rvXraHepTLyTrqiV9GjOI9eKuoBuj4hHWMlNEkThpdjfhfAxqozGzYXkeKI8kaQgLzD7jv y6xf1OgmgRWpTScqqm7A1FWC7wpc/NK2Qnvfj2JhMSDeWybVnhosg+ELfvZOTQ5CmHJ9Tu DdJd3C0A9iQdmyT7Dc7MUG7tT9NTBMQ= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=ldoGNQbL; dmarc=none; spf=none (imf17.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741877940; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Btni0odNXSe9g9BHGnrpxcd0qo22g0kPVYDqtWnhW4I=; b=7A2RkBPxGeC9mBOWfUQgza1LyHHGPIlUr4fZmobhJ6lQbYAMWEgxcomAiREGLO0UnGzTa9 yEZ/Hilj8an0C5SgwIASc+ze7XaHLG6n9y18nxwANk0bhRNoHUn5841CB6t9+EDqJXzY5M s7y9Cd17ZWIeOwFrylPVAorqFEMK0jw= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=Btni0odNXSe9g9BHGnrpxcd0qo22g0kPVYDqtWnhW4I=; b=ldoGNQbLwmpXlLebnyY84FPma7 vUEzaTSCTexVN4jUiIefWW1mul98aNRK9Bh4PT/ybACQYV92crxSMPvANzMisaAgTRKRTGbxrRdZT PbZ85tHR7PogUGDSXsAo212FBYTOHwJ8pK+oShjtoA9UJwDdwTfrlcdImVSu6yvtQyZG+07LaY/Mt AdR9Ih/el7LlgzG3xEQnZ6YeuXHcmrA0HI2USRIgiD3NbGuulrG46rmrrS/FApbSD2C8i4Oe6Rebg KxBB01kYvYffM8mD25MJ2qtDeKQCv+ZzbR73F33AkrGJOvDCXwBAOGJ+4DD0hXfHzwpRmspFZdl1r iU8OEL9Q==; Received: from willy by casper.infradead.org with local (Exim 4.98 #2 (Red Hat Linux)) id 1tsk1S-0000000HHPD-0ons; Thu, 13 Mar 2025 14:58:58 +0000 From: "Matthew Wilcox (Oracle)" To: linux-mm@kvack.org Cc: "Matthew Wilcox (Oracle)" , Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Zi Yan , David Hildenbrand Subject: [PATCH 2/5] mm: Simplify split_page_memcg() Date: Thu, 13 Mar 2025 14:58:51 +0000 Message-ID: <20250313145856.4118428-3-willy@infradead.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250313145856.4118428-1-willy@infradead.org> References: <20250313145856.4118428-1-willy@infradead.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam07 X-Rspam-User: X-Stat-Signature: fgj74xxkczyk4dpeugn1sahhoxdf4fra X-Rspamd-Queue-Id: EBEAE4000E X-HE-Tag: 1741877939-226225 X-HE-Meta: U2FsdGVkX19/WXR71J+8+b275Ofo5RvwMlMycuZHd5Ot8sCuFI60FgOVXV1oAKl1Zvvh68jBVUVqURjfRG4xa0+ALN22eqv2EoMvPlOo2jg7c57xJ2eQVX8c5E64IDFx+C+lvLZuiyVd8vnGpsy51BkXjD1nYTvR94PSlIXiCFOYR2FqRBhQyJGqfWfJ6KmWqdc8Lfa/5wlBk3INXrRbvh/Tfv25TPopjWBOzxmhht13IVZeP5be9sygTWueNyAQAdVrMztu/9T2sRnQEeYn4rSFYKU1hwKafkIt5agEV8BJhDnTmQLArLdQqSb3Mvp6PWndU95CCFbk110VEntgTHiXq+FY+NftdrN/Np9zz7cS2XZ6NjgGlucUBKIn8zAf3LJNOpN2qYRKc9Ax0EJvgSa9b5xzWE6Zxp2/1WkJj5CI5mppXFBacJ2jsmhz1XHxxzoTqmcUlyMsgOFC9UIdNhqJa9bAtE6b+Jv3FgWD2pSrNQYLpZCvOZxllyRovqkbNgOHT19aElwaMl8BxVJ1e9pEaoIts66fAb2lPAAK/r+d8AODCVsLyn3lM2x/CGrAp0zfnPgwbt7b7GH5NVel9SMBkLZm177xrDCLaLSbEpzCGKcFUvUpJkUio8iVmpFe/gCYPlwlxiK3P0RkHc/fuXWBG6m/rupUYTCJS6mIeVA1+M1l5Gk6L5YnRsXiqEYoyPxfYZyS1gB1FOLjDtulanXsA9xeGXe1TUqj9BxhJ5YTcl/ba1VvSk2Rq+ufKEipAw4Uujy9VWuQBjh5e4jdoyknalZ9XlhuGBgwgAG3Sgfx6XLWFMMJHpgBJEk/Bd6Ru1TlyhBzSXEoSYtu2Wb0pc8zinV9Kv8670CcTlBZAfDMQbN93bnvK7dkdJZiRxACN6RwHW/SRQpaozRrJJUkrIrieg39DuhSgjlbT56RHTGP+ABIdCwAvkhqtGemLUDmDoegzntqvjT9oYb9kHX sQ5DOmYw Vtp7t81SoJRqj/4OBO1E3tpZLQlngdbkLATYghiEvukv9ipARqLMXMqx1hHFD0D1CM2e3GGgRSpqZ5ad6oG5+QT5NvSy9seP0ib3NXpHv6H4ZkAA877LeQ7zZFCEK9kBjuh2QadWVDFJ0I8rbEEZuPaE7vlD+Dk/3pALquC1H9DNCAuo955NlGnEVAtfFvTusR4gSTRjE4PSnfhJbjrA09JcDlSCLtBHktJntDFz35ARed7aGzY9z+5dJms+w51NT9SXl92AJ4tO16DwYcPHQaTXPNlspkLu8ekBL X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: The last argument to split_page_memcg() is now always 0, so remove it, effectively reverting commit b8791381d7ed. Signed-off-by: Matthew Wilcox (Oracle) --- include/linux/memcontrol.h | 4 ++-- mm/memcontrol.c | 15 +++++++-------- mm/page_alloc.c | 4 ++-- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 2b4246dc4284..381c5b565dca 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -1038,7 +1038,7 @@ static inline void memcg_memory_event_mm(struct mm_struct *mm, rcu_read_unlock(); } -void split_page_memcg(struct page *head, int old_order, int new_order); +void split_page_memcg(struct page *first, unsigned order); void folio_split_memcg(struct folio *folio, unsigned old_order, unsigned new_order); @@ -1461,7 +1461,7 @@ void count_memcg_event_mm(struct mm_struct *mm, enum vm_event_item idx) { } -static inline void split_page_memcg(struct page *head, int old_order, int new_order) +static inline void split_page_memcg(struct page *first, unsigned order) { } diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 102109d0ee87..07f0b42fee05 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -3086,22 +3086,21 @@ void __memcg_slab_free_hook(struct kmem_cache *s, struct slab *slab, } /* - * Because folio_memcg(head) is not set on tails, set it now. + * The objcg is only set on the first page, so transfer it to all the + * other pages. */ -void split_page_memcg(struct page *head, int old_order, int new_order) +void split_page_memcg(struct page *first, unsigned order) { - struct folio *folio = page_folio(head); - int i; - unsigned int old_nr = 1 << old_order; - unsigned int new_nr = 1 << new_order; + struct folio *folio = page_folio(first); + unsigned int i, nr = 1 << order; if (mem_cgroup_disabled() || !folio_memcg_charged(folio)) return; - for (i = new_nr; i < old_nr; i += new_nr) + for (i = 1; i < nr; i++) folio_page(folio, i)->memcg_data = folio->memcg_data; - obj_cgroup_get_many(__folio_objcg(folio), old_nr / new_nr - 1); + obj_cgroup_get_many(__folio_objcg(folio), nr - 1); } void folio_split_memcg(struct folio *folio, unsigned old_order, diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 004c4856e71a..987e14d87932 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -2813,7 +2813,7 @@ void split_page(struct page *page, unsigned int order) set_page_refcounted(page + i); split_page_owner(page, order, 0); pgalloc_tag_split(page_folio(page), order, 0); - split_page_memcg(page, order, 0); + split_page_memcg(page, order); } EXPORT_SYMBOL_GPL(split_page); @@ -5033,7 +5033,7 @@ static void *make_alloc_exact(unsigned long addr, unsigned int order, split_page_owner(page, order, 0); pgalloc_tag_split(page_folio(page), order, 0); - split_page_memcg(page, order, 0); + split_page_memcg(page, order); while (page < --last) set_page_refcounted(last); -- 2.47.2