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 35ADCC282DE for ; Thu, 13 Mar 2025 15:15:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8313D280003; Thu, 13 Mar 2025 11:15:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7E1E5280002; Thu, 13 Mar 2025 11:15:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6AA8B280003; Thu, 13 Mar 2025 11:15:02 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 3DFC3280002 for ; Thu, 13 Mar 2025 11:15:02 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id ECD00B0604 for ; Thu, 13 Mar 2025 15:15:03 +0000 (UTC) X-FDA: 83216875728.28.F24081E Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf09.hostedemail.com (Postfix) with ESMTP id 31036140012 for ; Thu, 13 Mar 2025 15:15:01 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="s6/NgmRn"; dmarc=none; spf=none (imf09.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=1741878902; a=rsa-sha256; cv=none; b=utx3T0ChLyRGVdW+VC88d30EpIFKtvC2yqJyUhqcgvV4p5RX8mzRRVm8mpSC92vfIiVftB Gc2Bv5xPBC2JA8XvCdzR4JNj28LG+E8QAna+3IS/GknYhjFLTYKKvApZup41685P1WJyDf Ayn7jp+R8ZXE+8j117+rrzjxWMvPw5o= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="s6/NgmRn"; dmarc=none; spf=none (imf09.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=1741878902; 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:references:dkim-signature; bh=xwKTbHTV1r5Oo/hVKQNRmFKTHm0c6iS+QyWkJCHv0xE=; b=ZkEafR7fTdcc6RrXhgP+JjftTa1/jNRsy7PvTLsi5zWFoV3omrPtI/u/NxY22KoVHOCj5X k66wdPe9QhJhLkW75daBjsBPGpx6h5BT0NpGmwFtCA5nDJ4SwJJwRW3esKKpnEu33+95e1 dUEt5tQ4P8fo/R9wd1KGEAfKWil0Gpw= 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: Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:In-Reply-To:References; bh=xwKTbHTV1r5Oo/hVKQNRmFKTHm0c6iS+QyWkJCHv0xE=; b=s6/NgmRnbbd/KraxTVNCuikaZ3 /5k6YfaIbcA1/M5+I1F4KyaePayIzgK4f/ZEN+gmN5EPGEnZzapuJ5OzakMInEiVHpKuvzZ8OUi3z 1jnS2a4K/W1Srpch7UFWShf8DZImocjx16IyqK6EYMUOzCsh6eAXMP/9qZuglpsiQ96dC0GYyFQuy fhKG7hR5WIid6awWiii08E1n3kUVBaQAGoJgOl3S3lKMGztBXrfWJN0nd7dRzsaQ8UNXZyQfJUERg +cdgoHbBQdS7NHZrB8LrfOekyIrxzSdD02YQ1TBbQFEkA3BVHxcyyEnuvV17T+YO+JI7L8xA0JQnn LZkxycug==; Received: from willy by casper.infradead.org with local (Exim 4.98 #2 (Red Hat Linux)) id 1tskGy-0000000HOZ0-1HiF; Thu, 13 Mar 2025 15:15:00 +0000 From: "Matthew Wilcox (Oracle)" To: Andrew Morton Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, Zi Yan Subject: [PATCH] mm: Convert lru_add_page_tail() to lru_add_split_folio() Date: Thu, 13 Mar 2025 15:14:56 +0000 Message-ID: <20250313151458.4145978-1-willy@infradead.org> X-Mailer: git-send-email 2.48.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: 31036140012 X-Stat-Signature: 1d6ofk71tx1op7gyfrx1qx98ssgq5zq4 X-Rspamd-Server: rspam06 X-HE-Tag: 1741878901-444784 X-HE-Meta: U2FsdGVkX1++ovljhEuwdidPOWQsXzVKnHxVbSQYSYkW8z5BXrzVveUgo97lVfYncEfaDLBEoF5yeIKiCbs8vcmgH/QnwfQSKEPMSUmgszQFEGHuRHWvdn13GbscQ7ipOErIeqRvXVtM0MB/rdwn0IfxD005sa98w7aU42/VGw0inmrr2HD2QiqQPgDn3tGD0ZdChhR9TmNN/IV3n5+819qqrnvBzptFgt1QPq0mdIwyYILKQlJZ0EWC5mZKVAJotuWtvRiDEJSE/ZZKyqpPvr+y5S9ovDafyaxy+IFB4dX6PWvjRDfhEeqWideNAH4F5m1oCBYYSqvD8KiA7WR+YNitK1iz7ttto80Gv1ZlZIySvCst2ib6P5lLFoQJgs65y2MXKVVmKXJR04rQiaIIyJooSnix1MfIiRqj8vNgFTaB96hwNNb3OL9XFL2Aa6uuFGzaLfkN1N49znu3eB8lg51504CLTKmSb8MX0+3Vn+UPRKd7RpjxxBPw0BCSG8EuYxxcCJW1E2isYhYATIkHXwSXs+JIwMXeFYxKF/U+xlo3SH2OKpYSqrQ71a+fU+c/zuegqqG41rwP5TR7NxtDH9ik5g6hsOMHIbF0V6+IQRsk0uwSUlbQYmPIgCXeHcg7RFox3V0NeX3f+AJzAPNyLRTZu0UH40wyRsUV17ixdwfVooZa8g0iYa8AAsRBLW+y+IKqeA+Nawr7e42tH7EvVqxYRStNSz+Pk5fmAf/T4VrNzpMGw0GIxm4SgD9C1/uqc5MN6m8yFu+CuUtZgpVykg6QLlhw7mnHMQ1+c+K25FLLTcs0wlK0pw5jebEPn6N368Zgckm4gxmNmf9WRx4fkYMbL+VgHeChhpeMjtO5MpGlAElp054Cjp0Vt0vZo4blRsE0FXw7KGO9tmXKxMM8Xd6hsacyt6TwVv+ub7aBp19C3CTUtXqCkSzJkdsQ1mmV5xrjCW3fhSNZnVtEjGd RDDwN0UU KF8/exG5sxlJi+T/pKvZoWddMnZL2Y/t2Ze4KHfS7q9pE/6+TiY0scDX5B688t/2PEbVPeY1K1vO8uXOHY3kuO8JuP94GHTzelx79v8aB8onpIc7qNMGbIofG9JG+COz2pwBl1fq1OAOxQb5nG1pbd0sJVl6yPkhMh6DOVrgZOwceJiGww8UiJCjNIBSQkas2pfVbEK7EwnBgSS8fJEf1W5j4NQbvRGosrf8P7gNNN2AVPzGR5c+yRq3tG7pMIXo4FKBPlKof3RpJ4niw4gLzFGBRci6pQXVdi85A 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: Remove three hidden calls to compound_head() and accesses to page->lru. Signed-off-by: Matthew Wilcox (Oracle) --- mm/huge_memory.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 514db6a5eee7..d8181a80c441 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -3262,25 +3262,25 @@ static void remap_page(struct folio *folio, unsigned long nr, int flags) } } -static void lru_add_page_tail(struct folio *folio, struct page *tail, +static void lru_add_split_folio(struct folio *folio, struct folio *new_folio, struct lruvec *lruvec, struct list_head *list) { - VM_BUG_ON_FOLIO(PageLRU(tail), folio); + VM_BUG_ON_FOLIO(folio_test_lru(new_folio), folio); lockdep_assert_held(&lruvec->lru_lock); if (list) { /* page reclaim is reclaiming a huge page */ VM_WARN_ON(folio_test_lru(folio)); - get_page(tail); - list_add_tail(&tail->lru, list); + folio_get(new_folio); + list_add_tail(&new_folio->lru, list); } else { /* head is still on lru (and we have it frozen) */ VM_WARN_ON(!folio_test_lru(folio)); if (folio_test_unevictable(folio)) - tail->mlock_count = 0; + new_folio->mlock_count = 0; else - list_add_tail(&tail->lru, &folio->lru); - SetPageLRU(tail); + list_add_tail(&new_folio->lru, &folio->lru); + folio_set_lru(new_folio); } } @@ -3573,8 +3573,8 @@ static int __split_unmapped_folio(struct folio *folio, int new_order, ((mapping || swap_cache) ? folio_nr_pages(release) : 0)); - lru_add_page_tail(origin_folio, &release->page, - lruvec, list); + lru_add_split_folio(origin_folio, release, lruvec, + list); /* Some pages can be beyond EOF: drop them from cache */ if (release->index >= end) { -- 2.47.2