From nobody Fri Apr 3 06:40:50 2026 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 7EBB3ECAAD3 for ; Thu, 15 Sep 2022 02:42:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230100AbiIOCmO (ORCPT ); Wed, 14 Sep 2022 22:42:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44458 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229685AbiIOCmM (ORCPT ); Wed, 14 Sep 2022 22:42:12 -0400 Received: from SHSQR01.spreadtrum.com (unknown [222.66.158.135]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3AA206AA0D for ; Wed, 14 Sep 2022 19:42:10 -0700 (PDT) Received: from SHSend.spreadtrum.com (bjmbx01.spreadtrum.com [10.0.64.7]) by SHSQR01.spreadtrum.com with ESMTPS id 28F2fEuC020951 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NO); Thu, 15 Sep 2022 10:41:14 +0800 (CST) (envelope-from zhaoyang.huang@unisoc.com) Received: from bj03382pcu.spreadtrum.com (10.0.74.65) by BJMBX01.spreadtrum.com (10.0.64.7) with Microsoft SMTP Server (TLS) id 15.0.1497.23; Thu, 15 Sep 2022 10:41:13 +0800 From: "zhaoyang.huang" To: Andrew Morton , Zhaoyang Huang , , , Subject: [PATCHv2] mm: No need to check pcp page when free it to buddy Date: Thu, 15 Sep 2022 10:40:54 +0800 Message-ID: <1663209654-14727-1-git-send-email-zhaoyang.huang@unisoc.com> X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 X-Originating-IP: [10.0.74.65] X-ClientProxiedBy: SHCAS03.spreadtrum.com (10.0.1.207) To BJMBX01.spreadtrum.com (10.0.64.7) X-MAIL: SHSQR01.spreadtrum.com 28F2fEuC020951 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Zhaoyang Huang The pages on pcp list have been checked the validity via bellowing call cha= in. It is no need to check it again when free them back to buddy by free_pcppag= es_bulk. free_unref_page\free_unref_page_list { ... //page's validity is checked here if (!free_unref_page_prepare(page, pfn, order)) return; ... //page added to pcp->lists and status is ready for moving to buddy list_add(&page->lru, &pcp->lists[pindex]); Signed-off-by: Zhaoyang Huang --- v2: update code and comment for clarifying --- --- mm/page_alloc.c | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index e008a3d..1472ebc 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1420,14 +1420,6 @@ static bool free_pcp_prepare(struct page *page, unsi= gned int order) { return free_pages_prepare(page, order, true, FPI_NONE); } - -static bool bulkfree_pcp_prepare(struct page *page) -{ - if (debug_pagealloc_enabled_static()) - return check_free_page(page); - else - return false; -} #else /* * With DEBUG_VM disabled, order-0 pages being freed are checked only when @@ -1442,11 +1434,6 @@ static bool free_pcp_prepare(struct page *page, unsi= gned int order) else return free_pages_prepare(page, order, false, FPI_NONE); } - -static bool bulkfree_pcp_prepare(struct page *page) -{ - return check_free_page(page); -} #endif /* CONFIG_DEBUG_VM */ =20 /* @@ -1512,9 +1499,6 @@ static void free_pcppages_bulk(struct zone *zone, int= count, count -=3D nr_pages; pcp->count -=3D nr_pages; =20 - if (bulkfree_pcp_prepare(page)) - continue; - /* MIGRATE_ISOLATE page should not go to pcplists */ VM_BUG_ON_PAGE(is_migrate_isolate(mt), page); /* Pageblock could have been isolated meanwhile */ --=20 1.9.1