From patchwork Fri May 31 00:26:12 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 13680970 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 B7305C27C44 for ; Fri, 31 May 2024 00:26:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 364536B0095; Thu, 30 May 2024 20:26:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 315D26B0098; Thu, 30 May 2024 20:26:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1B5636B0099; Thu, 30 May 2024 20:26:37 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id DE3FA6B0095 for ; Thu, 30 May 2024 20:26:36 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 8212C140F2D for ; Fri, 31 May 2024 00:26:36 +0000 (UTC) X-FDA: 82176799992.16.85765D9 Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) by imf12.hostedemail.com (Postfix) with ESMTP id BD52E4000F for ; Fri, 31 May 2024 00:26:34 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=P56Q+7EM; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf12.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.128.49 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1717115194; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:in-reply-to: references:references:dkim-signature; bh=kprjUC9pNkTVXwxtCvvhiLMuG15dqqeAtcDIcjJLuHE=; b=hFT5fYdla9opmeSjaR5AV8Svtd5eOhUX0Vy36x+vPvf+TJdz3x/LaWstfIsVmIo3tcmCwt A4/NxK1Cmt7zKvfmbx7ZIKsK35kIgx5lgfnGJMfoSn9OL2Bqvp3oommLC+PqFGzCInAL8R 3MGY9faSUDFiqTqXPse53PQ8bAP+15A= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=P56Q+7EM; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf12.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.128.49 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1717115194; a=rsa-sha256; cv=none; b=oPPvg+qjoUcWfpjet/IMr/X1/am+ye2vpGWHgoCSy/8DC2ukAWWMp/JHrAR397MbhzXY+K p4nId4l0A8CtpQkWrq3VloBGbc8ZYps+L8sybqwsG/7yhx7+1vbvxUOQJKUbApjppo1HYU oltr3qvZnd0wPDLUMaUk5XQr3zqHZ4I= Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-421087b6f3fso16310205e9.1 for ; Thu, 30 May 2024 17:26:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717115193; x=1717719993; darn=kvack.org; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=kprjUC9pNkTVXwxtCvvhiLMuG15dqqeAtcDIcjJLuHE=; b=P56Q+7EMmTSP4sj2T4mREjOJdXF+0lUIq59Up2x4GXIMnAJNbo8gMhL6qcQ3WHVDxA hfgtmBzeLGjyVlyYlr5KocMHF3dxtQfVb7TP8kKKtPu6WqATXu0gHUJXkW/BnLkb2tkq UJoeDFpouunQd3W4ICaZWoIlugezU20tUnZUpxbOwIdyikyNMTeQzhFDMGqRzGXwJixd G3e6AF7mLwHKQsmZZ2nb9JxyWYt9QfYppDEhw157SrA4ycrdZ27YUYO/BGFQtqcdAMBZ o2OvdWCN6P10Bl058fsa731EiDLdxtYCcUbdbAHj34oqJ4whce2CVIGoaKbncrAoukUG 7Xfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717115193; x=1717719993; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=kprjUC9pNkTVXwxtCvvhiLMuG15dqqeAtcDIcjJLuHE=; b=oc38AerIQfeMRb+luZ1biV/JwA9/GihRx1ea5Lb5xEWxzhhr0wEeN8PVX6mR8qneME Rxb9f83+Xb5XsWAc35CSY4f0AHvoXtNr52KtAFu8cUf2yc4MkxGsT+kcZQCbVdEyzbJw 1ral0ayWhiQT7zGOLCnRxS/j4sSQ3N0K2LH2axYSN7SAhbG7TMwRev22I+1JwjokJhgF 6aMgcAWAigIyc5sIhKaXMVC0sm/nonWAI5K5fEUUG+khB4Q2Z/2SoZZ3XV13nMy0mGNb bBwhPuvvMnYX+8Z01OQiwCSR3zDUTtJjZai6JPr7sSl0IE/ri8jU4UKzfNoKbqNj1nA2 ovLQ== X-Gm-Message-State: AOJu0YzfZQM/lz8W8Nr27BXGOkDhaU8hA1ALMy0G5n9duR1CYxUV8lFs 4jAK94PH1DuQL+8D9N8s2q+ROW7yeE9oVfCNvUmRHCg7JFAgLIN+ X-Google-Smtp-Source: AGHT+IEPJkPxNdetDTpgEMsMKkXKGVb0seTe6ZrwCSmdzFW1nR19SAZkZbAvnnnu1cz220mz7flb7g== X-Received: by 2002:a05:600c:1c24:b0:418:f5a9:b91c with SMTP id 5b1f17b1804b1-4212e0bd8fcmr2064715e9.33.1717115193040; Thu, 30 May 2024 17:26:33 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-57a31be4c7dsm370889a12.50.2024.05.30.17.26.31 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 30 May 2024 17:26:31 -0700 (PDT) From: Wei Yang To: rppt@kernel.org, akpm@linux-foundation.org Cc: linux-mm@kvack.org, Wei Yang Subject: [PATCH 2/3] mm/mm_init.c: use deferred_init_mem_pfn_range_in_zone() to decide loop condition Date: Fri, 31 May 2024 00:26:12 +0000 Message-Id: <20240531002613.5231-2-richard.weiyang@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20240531002613.5231-1-richard.weiyang@gmail.com> References: <20240531002613.5231-1-richard.weiyang@gmail.com> X-Rspamd-Queue-Id: BD52E4000F X-Stat-Signature: asoq53qd91tuw7ty3dr9meuiwracdyiw X-Rspam-User: X-Rspamd-Server: rspam11 X-HE-Tag: 1717115194-219434 X-HE-Meta: U2FsdGVkX18FU4gNYsPyMqNBQpYxgvNgqPVLQBJb9VZ2HU6ATOsKgskf662YSnNgofZz8B8IWzM0rXjD56YfaLuxL45bK7aw/fqeRmhyEpZGyLoNWJyR/s7eN9+gLdAmkBPJEiIJAAvv1dIRuOkXIEW9ZK2yhZOPux7CEfvCLlmI5zGYlHGC5XPCBfwwMOl+XkhLkMMro90cJG1/bHKjWQePtfV1ZOgjkrQGBGBr1Kvwx/gxyXoH84CTIQqRRlqIKObJptfoZKgBcF1+kWJpb5PLOfvM17/cMbaGMwEClJf5lQuI3CMU2BMsErrpEasiSx2HatIdfMCdEKWfmPBPH3CvqSgvqzXVzfWshsWdfkakW+7HrU0lDqAupiTBsV+PvnYUoFbLOKnihaleASV9PnV1WEkx1cPYE7RsRJcAQBjwEu/D28kBABWUyV197u+7UkcgmHO25W7VXmcnC5N6hiGaMDVo3WN1W4NE6GuIex9VYLSxlTrkwVJ0TQgjmeqrfoUWao5V+8pJcMDFS/loZrSlSsVLaG7u7UC/1m0fy6KMfSWOhjycKTf5qZXkaGdWfxZRL5sZ1FFxMOR07JIdcecX9gpIAQWftVz93EG0Xv4v6KhQloao2jigY5BQpXSkDkXzNH8h9mPn4lJTHdFuHlvE+pO3np06eM0GZFGqnQXV27CC8V59gUkw1n9RZiutylrLLjJg7vuKJWhBmUWciCQ+XcFnTmpDLbpneVSxxtLv3KMrlvEwUFsLjFmidVdKuVRj1iPMSeu/DNzsg8PQJv9Ja7D2GOTwzMD8cYFMuhhN4J+yn1mYO/vW5GYnuSrh6nQkEIIR4sgAQgMbpRkYIjqudgxtEsZSkc4+c1Rij3DEoPSXmcuofE4QCjpRgqh3wMj3sWM6MVJKu4PAMjGMDQSMejy9JMr4kDLTNLK5q3V1h58HyCDL8Ci3qZtQWiaBAvdj6cwGrU48EnugxxO 8xQa2N0a AW5KGrRVlY95/1odKM0s/UFeYGQ2paf178sSrqpyobv1pexJ52dIXNygGmPuyO8XSbx/FfUjnxMGRZOvovOn5ox+twT7qs12gurfVRdYppCH24w40t5/j3FWSjsqJmdRPpOE8F761GCZe6InrWb3H3IvfziTP2FtOfWkbT4omMPZIoZyzO8ZnKVmkF1wVAup5ri/qM56RaJgHj3dpytkSVM0oKuzf0TkluhzA/Me0Vge1rYY7tbEuPRnvE0lbqyUTizdIRHZzybaWoYzRIbdOCmeGe6fkjrOxsuHlzJHFNPP8kBBpCwJvX0JSWGlFGumrPs9Ji5n1pWks2rbFKO9UG82ZdhW9VhhAWK/AtQ/LZ94guNO3Bp10KiMsxnpBCJKpZprLRHPQsQ0FRO4pSh0pr252fwNs6B04VxWc95nRszOukpMGUc4WHtuL8ZIIeNovVLJyHraR39u3DPRZ9eJ78zPXp3ZyYzbDvg1eayNxlydkYg8B93PqV2IAeh0oGUWfqu4tyWQxxtf3QmBwSBF1FwbhidD9UbZWx+MTzJOxQXTjZpc= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000005, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: If deferred_init_mem_pfn_range_in_zone() return true, we know it finds some range in (spfn, epfn). Then we can use it directly for the loop condition. Signed-off-by: Wei Yang Reviewed-by: Mike Rapoport (IBM) --- mm/mm_init.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/mm/mm_init.c b/mm/mm_init.c index 2bcf87eab0c6..d05a4c38310f 100644 --- a/mm/mm_init.c +++ b/mm/mm_init.c @@ -2166,20 +2166,15 @@ static int __init deferred_init_memmap(void *data) /* Only the highest zone is deferred */ zone = pgdat->node_zones + pgdat->nr_zones - 1; - /* If the zone is empty somebody else may have cleared out the zone */ - if (!deferred_init_mem_pfn_range_in_zone(&i, zone, &spfn, &epfn, - first_init_pfn)) - goto zone_empty; - max_threads = deferred_page_init_max_threads(cpumask); - while (spfn < epfn) { - unsigned long epfn_align = ALIGN(epfn, PAGES_PER_SECTION); + while (deferred_init_mem_pfn_range_in_zone(&i, zone, &spfn, &epfn, first_init_pfn)) { + first_init_pfn = ALIGN(epfn, PAGES_PER_SECTION); struct padata_mt_job job = { .thread_fn = deferred_init_memmap_chunk, .fn_arg = zone, .start = spfn, - .size = epfn_align - spfn, + .size = first_init_pfn - spfn, .align = PAGES_PER_SECTION, .min_chunk = PAGES_PER_SECTION, .max_threads = max_threads, @@ -2187,10 +2182,8 @@ static int __init deferred_init_memmap(void *data) }; padata_do_multithreaded(&job); - deferred_init_mem_pfn_range_in_zone(&i, zone, &spfn, &epfn, - epfn_align); } -zone_empty: + /* Sanity check that the next zone really is unpopulated */ WARN_ON(pgdat->nr_zones < MAX_NR_ZONES && populated_zone(++zone));