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 617DFC25B75 for ; Mon, 3 Jun 2024 20:16:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F3FAB6B0096; Mon, 3 Jun 2024 16:16:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EEDCC6B0098; Mon, 3 Jun 2024 16:16:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DB5186B0099; Mon, 3 Jun 2024 16:16:16 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id BD04D6B0096 for ; Mon, 3 Jun 2024 16:16:16 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 701261A033B for ; Mon, 3 Jun 2024 20:16:16 +0000 (UTC) X-FDA: 82190684352.16.93212B1 Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com [209.85.208.44]) by imf25.hostedemail.com (Postfix) with ESMTP id 744A4A000A for ; Mon, 3 Jun 2024 20:16:14 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=LRUDVg1e; spf=pass (imf25.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.208.44 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1717445774; h=from:from:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=GboKxUJ+Tl29c4Yw86d+CVD+Kmpgi90jYXsJBRlblOY=; b=s2F6D8Mam2OLIpTJxYaZIftWJEYytm3M1JSC5ck1wIkTI5yjKBZ//kNnG8xTXhDsIjkv60 viVwGPeY2vsF4UaqAF/+19e1BJgM+nUJ3MociHYioWRsXQ8pfSMkFZiwiAq2DKTkugt5Dt Nbf/Ycuty6f0xG1ptwchaBsnLkLm/X0= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=LRUDVg1e; spf=pass (imf25.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.208.44 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1717445774; a=rsa-sha256; cv=none; b=qD/oM0OeA9SgCgH9TXvom/LpSSfd4vHH7I04RhVKKOyPjhs/DMorqltNWg2L+mMHNPW/t+ MVIh60nzv2z52YRG8jQLnVJndpg40r4zE9Fk6nN5p98cBwILBusQx5b6z3yNBUtru7QORt yZsYWsSxazwc/a3Cl9RpK1W5sTo2Loo= Received: by mail-ed1-f44.google.com with SMTP id 4fb4d7f45d1cf-57a52dfd081so1983685a12.2 for ; Mon, 03 Jun 2024 13:16:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717445773; x=1718050573; darn=kvack.org; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=GboKxUJ+Tl29c4Yw86d+CVD+Kmpgi90jYXsJBRlblOY=; b=LRUDVg1eVuBEuphhvp/v883XbrdcreCph7JAmQgiLzVJHU7yQAZQXXhEkU29rVk4MM o4nbcdQG+PZQCJmUvtqrrKBCPHCWP6KSrngwm8byjcsWK9S+Ad/uiV1YqmEtIKQJNNks ebWYF3GVWubuis3yvgbHgeAcgv2Ix0+7z5KKhNSXOJGdUz0KdoFoeTCPicSqmMMrVo2K 6TyjT24/cDkfXySOy8/0En3/2Ga4qiHW0oTilJLDqOxXiA50yrhOqpk6pDn8w5EiRDdY yd3HysdrSSEqiE6tqshf3dM4dQYucKa+Ng2kjYTOnPiFZaNsT5hccczWLyf1WQ3iPWrX O8fA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717445773; x=1718050573; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=GboKxUJ+Tl29c4Yw86d+CVD+Kmpgi90jYXsJBRlblOY=; b=uvTae3gmomABRgaQ3B2RZX3dvzg3eYCl1kO25wP+Mx+5lSoTLqOyyuXkYLAcipobeE emQTqTCaArj4EMfnjCiGPhR9QbwJLJngWfKGqYMv86B19osQ0R2zfdEXjKOpM01r8NYv VgG2ZZudqYfmemqSN7JhyHQXfM14QSSDODajSue/qEqEuo2C1IRVd52r9wn2+fYrkZa/ C6AcqwTGM5ZeIwXT+A0hz1IMlmHYQonAGnsfujuSBFVCchTdUceyqls74aLSyDVJkIHA jZyb0JjEdYs8p90wYfiK2b0smYhlhcTiWLv4RUBU3yHVpEJoKYvqlCU4wa1Dkx4R7Mkt N0ww== X-Forwarded-Encrypted: i=1; AJvYcCWWssUTkBjJ/FvXwaomFZMEhcGI23C24nr/2N3yKx005o2LfGKcLdLqBRHaKH/UEcjkCw/ihSZT1oBcvouM7qeazOE= X-Gm-Message-State: AOJu0YyOpMB+3dBRw1wWWd0zaF3jeUCbaQF9zEGCIsmFQWfmI4sY2BN2 OQMqEUHTK7n831ZDeO9edVPOpM4knfF96R/bM1XYYOBK0oYWA190 X-Google-Smtp-Source: AGHT+IFwBueU69UocNx1WCKqvQmFKfc4v2yTTS3BF14LVtYoBAB2oeYlSXcVdVVndVQLxmeOeh0CFg== X-Received: by 2002:a17:906:f11:b0:a63:54e:1307 with SMTP id a640c23a62f3a-a6821f535b1mr633761366b.65.1717445772771; Mon, 03 Jun 2024 13:16:12 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a68c64e50casm360695966b.53.2024.06.03.13.16.11 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 03 Jun 2024 13:16:12 -0700 (PDT) Date: Mon, 3 Jun 2024 20:16:11 +0000 From: Wei Yang To: Mike Rapoport Cc: Wei Yang , akpm@linux-foundation.org, linux-mm@kvack.org Subject: Re: [PATCH 3/3] mm/mm_init.c: not always search next deferred_init_pfn from very beginning Message-ID: <20240603201611.sru3nkkcre4muuq3@master> Reply-To: Wei Yang References: <20240531002613.5231-1-richard.weiyang@gmail.com> <20240531002613.5231-3-richard.weiyang@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20170113 (1.7.2) X-Stat-Signature: dzztmsqx7bbmp5yhhcwokdhfunkwi5ra X-Rspamd-Queue-Id: 744A4A000A X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1717445774-998770 X-HE-Meta: U2FsdGVkX19WVioMQQcyTnXPzIdg4ngv4hI5iS0nkwUXFzhQBvb3Rt6LSkUH+fUza01S2imdLIFYW/lq1hELcjX8ft3YRVxavDzEvSn+Vo4tsENjhk8gIKRsFUO2dVuKWqVx0mRsDGWZutNSmtKX2UYOdzmyHFIH66EX/NFebtmLmj4+WuRC6YWuKqxcBZ3EeBXPPyWjHT9wqsUGOmTATCutMZdFe22bsm4iltkso/vvnosuU6bqsmjKTavOPz9HZ13hDZI0WhrdmcT9hBeY5KG7ehpJE9iFz+BpzYH/ITRb++odx1R2vA63IRq3J5ykVwktql/LN6s7pWCAm8GPv+O6BjhpGuqLcAvILBxJRr+4TfgXVmCrPrpF6pxYbxrrJfXNpBIvIBYOsq9HxEyPjLeH3LuFl0mLVMG44HEQTaXis3tM7ovNSlCwk2ZrhVAI8NJlxv4XO5but+/npaDPadWOWQGq7k4prm3cIODww59NnpdWX/fUgCP1vuSx//d+PO3HYm96h/Etcs9kdBfvup/sJ60yW95lajDTaeblDWmdt8KW2kNEmjE8MEaN+WrUt0EJVhWckgCXdz7YYOD3HYNXcvBaWocUYAbl2sFlcUFZ/AnphKAS82roMjrBg/AohHjO4psjAMlqssxqkp4aYtRwyIdoEJwm9k5oyHF4SiQQ//JkbyQNJ0vjik/DPut0WnbA8vkOKxJwVJURe53vbqzBQ01hiu30UmMOQJryxC49wuY4f3oQr+No83NE0W/yDQDmCdUHsuxZp/5NyqMFZ3EWf5MHkzzUqQqegLom7hqPYijjbSr2RT43hE31iImElg50OvN6+JFgTgwgB116CNNeLO+z62uFhaqR1xgRS/el3MdzhN3CHZRo4iYYB+/SuDgXDpAEAhKBNgRnAbwerT3Nzy4WHg+/WsWU+wqyAnUjcfAWnGLV388WjnV/a9cz/KK0MlRGO9rud2CueTC kSXfV58e g/S4oXqQ9KxK4Ise5vn05rz7R87dKGUg0jW3t2egIpN42jg910vmeiflLOUV5UfxcnXmfMECh7cc5SDwYUYjMZ8FcWKE3iNDzRs0OxV2t1sG6k2fo7TkohYpHyprRyNETHSsVtgQH+pDLUw9nsYLFyVt2YxHDjutUKi0Rtw9rBLqR7CrpVBnSZt0DimaREBntwlkdfWPvxXTG3YSRKVXRU+SNzaa0WZv1nfHANt1CtwKMAh8OVZIRpDnLDRYFSTL063mXE90f7W3AsUPnFG3fNzp1CNB9WoYOq6MfGwoqI3VX+Y5c2nu61Rcn6gD8RRU9l5JWkI88P0LYZXL372kBZVrQUm/l/Hab2G2KNmWm+JXznv+eTuk98tSu9bhYV9Us/izohkWqoDFc7w4WGK9zqO7xBOAsL56hiwGsncmuJF3eLRfz/TJng5tCUTN1XeLpVJYyjA0yd/pLHe6acnSf3GMTZ9C7W5sJuHKhlvivz1/iMvumdYrorKqHCvc+T2NlbUKSkLH1RMciU75k7WDyauo0iUJq3fzU0RoupZsgxu/Yx4gF/mUiOSF5MAck79W/BdIS2Jqv1EaEpLx1NsM5hOo/M2VulTYzDaGaaI4I3ELT3mNwqV2xOxGI2jvE+Ao7s8IHLmS0tt2vOFn4iVo0ytnjVJ05LhxcLk66HU/2dUVZ7qM= 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: On Mon, Jun 03, 2024 at 09:27:10AM +0300, Mike Rapoport wrote: >On Fri, May 31, 2024 at 12:26:13AM +0000, Wei Yang wrote: >> In function deferred_init_memmap(), we call >> deferred_init_mem_pfn_range_in_zone() to get the next deferred_init_pfn. >> But we always search it from the very beginning. >> >> Since we save the index in i, we can leverage this to search from i next >> time. >> >> Signed-off-by: Wei Yang >> --- >> include/linux/memblock.h | 19 ------------------- >> mm/mm_init.c | 21 ++++++++++++--------- >> 2 files changed, 12 insertions(+), 28 deletions(-) >> >> diff --git a/include/linux/memblock.h b/include/linux/memblock.h >> index 6cf18dc2b4d0..45cac33334c8 100644 >> --- a/include/linux/memblock.h >> +++ b/include/linux/memblock.h >> @@ -299,25 +299,6 @@ void __next_mem_pfn_range(int *idx, int nid, unsigned long *out_start_pfn, >> void __next_mem_pfn_range_in_zone(u64 *idx, struct zone *zone, >> unsigned long *out_spfn, >> unsigned long *out_epfn); >> -/** >> - * for_each_free_mem_pfn_range_in_zone - iterate through zone specific free >> - * memblock areas >> - * @i: u64 used as loop variable >> - * @zone: zone in which all of the memory blocks reside >> - * @p_start: ptr to phys_addr_t for start address of the range, can be %NULL >> - * @p_end: ptr to phys_addr_t for end address of the range, can be %NULL >> - * >> - * Walks over free (memory && !reserved) areas of memblock in a specific >> - * zone. Available once memblock and an empty zone is initialized. The main >> - * assumption is that the zone start, end, and pgdat have been associated. >> - * This way we can use the zone to determine NUMA node, and if a given part >> - * of the memblock is valid for the zone. >> - */ >> -#define for_each_free_mem_pfn_range_in_zone(i, zone, p_start, p_end) \ >> - for (i = 0, \ >> - __next_mem_pfn_range_in_zone(&i, zone, p_start, p_end); \ >> - i != U64_MAX; \ >> - __next_mem_pfn_range_in_zone(&i, zone, p_start, p_end)) >> >> /** >> * for_each_free_mem_pfn_range_in_zone_from - iterate through zone specific >> diff --git a/mm/mm_init.c b/mm/mm_init.c >> index d05a4c38310f..ec17bf93f946 100644 >> --- a/mm/mm_init.c >> +++ b/mm/mm_init.c >> @@ -2023,18 +2023,21 @@ static unsigned long __init deferred_init_pages(struct zone *zone, >> * return false indicating there are no valid ranges left. >> */ >> static bool __init >> -deferred_init_mem_pfn_range_in_zone(u64 *i, struct zone *zone, >> +deferred_init_mem_pfn_range_in_zone_from(u64 *i, struct zone *zone, > >I don't think renaming this function is useful. >The comment above it, on the other hand, needs update. > Not good at the description, below is my adjustment. Does it looks good to you? diff --git a/mm/mm_init.c b/mm/mm_init.c index 1780567b5f6b..bc065728261d 100644 --- a/mm/mm_init.c +++ b/mm/mm_init.c @@ -2003,13 +2003,14 @@ static unsigned long __init deferred_init_pages(struct zone *zone, } /* - * This function is meant to pre-load the iterator for the zone init. + * This function is meant to pre-load the iterator for the zone init from a + * given point. If it specifies to start from 0, do the initial iteration. * Specifically it walks through the ranges until we are caught up to the * first_init_pfn value and exits there. If we never encounter the value we * return false indicating there are no valid ranges left. */ -- Wei Yang Help you, Help me