From patchwork Tue Mar 18 07:19:46 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 14020392 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 07ED2C28B28 for ; Tue, 18 Mar 2025 07:20:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A8C60280003; Tue, 18 Mar 2025 03:20:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A3CBB280001; Tue, 18 Mar 2025 03:20:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 88E9B280003; Tue, 18 Mar 2025 03:20:04 -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 6A565280001 for ; Tue, 18 Mar 2025 03:20:04 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 69D29B9830 for ; Tue, 18 Mar 2025 07:20:05 +0000 (UTC) X-FDA: 83233822770.05.E159ACF Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) by imf04.hostedemail.com (Postfix) with ESMTP id 920D940002 for ; Tue, 18 Mar 2025 07:20:03 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=eFa0xuGn; spf=pass (imf04.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.51 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=1742282403; 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=wOQY2Sl3cBtp1I4btkzfk+inVIddf9r7yc5Qn2hSVBI=; b=A/xly1VAchtexA0FzDdy8Cglvt+sbgcYZTg6CmjOMfFeEYkoipFhC+Nqcz7Pr4eUTOIIW6 GIi2radLOSZw7FTR4OdRhBlwHeHPubB/HI9mYy5ZR76xqDcAe+RSy0KZ+I72w5SK54DbLH UXyFJFWZiz++WywMFeTlPNDnH+WIXFg= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=eFa0xuGn; spf=pass (imf04.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.51 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=1742282403; a=rsa-sha256; cv=none; b=5E2iEJJIgvX6tX/tOszN71tg/xPX7wnbToskdOxuBCfBqmKt8gbm7sdpwkYhuFKUaQu0GO mZEN1NKMHXVqwjOuEeRgPpggLqldCCEpFXjBQanVhPDnoK11y2N4xTbcBPVLOjH2qQvccE TKN4/wI9LW9MxlABCD5TA0DanICx2tY= Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-ab7430e27b2so1007181466b.3 for ; Tue, 18 Mar 2025 00:20:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742282402; x=1742887202; 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=wOQY2Sl3cBtp1I4btkzfk+inVIddf9r7yc5Qn2hSVBI=; b=eFa0xuGnL+Bb88G1coxzJfuqdDsVUV2U4KbWBKfJM765J9SSTXF51yxFAZJGJWNN6i 0SwEE0Qr+ESouyRBAGwl6N8XzLqRnFdkasJUuD5dPOzwpWax9kpKPXhip3FLJEUJzz1c pHf1HumKmHJSVUZqJUpZsz4KZPi2GaIF77+f/UWUuy7Dk8/cdrkHgxmsjO/zH8tyIcT1 +10iA4rE8gOlKghEBMewfJYdpbXn0hXzeTiMS0yp+XYN1PzW7hC2p2Puo7DGb+wGDUrD p1bKFfliCTL3wECV+e5v45vX8RCJrD0sFK2evBsmr8zrpztbLniHwD2h6NxHiLgulDWP o8Gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742282402; x=1742887202; 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=wOQY2Sl3cBtp1I4btkzfk+inVIddf9r7yc5Qn2hSVBI=; b=kS00F0AgjzenK1rH3BtGWqSOwWmBg+n9fY78ZNqyU7CtMTtoAKC7DBO2Bf1MYBcD5K 3n1r8G85a/AN8ZWxh9Nt/un7YvUGv0JiC9xrzWnLSp5V3rjvsn0renQF/i/OMB+ga6lN hZ0iVHRiibJTuibzSEkHzdYfPh/7evxWKwIB3Y5Fcz89VvgQP/TkpJ2m/2zOdvkMNppv FreDx4uEU/uq9wlzleWa8OLvtayWte6UszcTT73Jd6P2VOt1TeW3dJMXIcb5AdppxrZ1 DcL/oFmVG/Zigr7iqAbX+e0bzqHQxHevbsenOOrdlTZOwlEDDo7uDbwCRsWMrxEUJQBd ygiw== X-Gm-Message-State: AOJu0YzovMeO/Smg9fvDF3UtjK0nIOtTC8qIv3ta26NSrFa2RFnRbLCG aT0ubUnd8T2ipT40x1D5vuGtAjXDbG1E0QunPXNLbHPVvCrNfgmSJn04o0x7 X-Gm-Gg: ASbGncstqUO6r2TFNPnKLv/dnREVR17SBeLaQZqGc3B4cz0dUwPgqlmHnNM53qq9cc0 rBraPk/MGx24VITbubTVfbIUWrr90gwyFugyZDyOTxVLM1RN6tXVpVt8uyMhXbbl8kILeCrUF1r vV79TP8EBwWei2IsvAurEORYO8ywlACBSWVHN/jkjO8V3EiFq+agMvJfQhGv6mWmOfQ8bFd3gcX xQgMP4730caYQOzkym0Ih29R3Q6Lurhaah44B7qSYlPojr7EWzMZvggAZnVRB3cvU3HdVd1b0YJ kptHDXVCYyNCRfa6Ra5MRWAiROeH2H3QAgAB6DQoCRNs X-Google-Smtp-Source: AGHT+IEhvb2+ZHW8QgmHwfldMUR1fhrpDw+JzWWWNaRp6WVUAp9rKbOnonL/rxePMCqjODSEKhw2xA== X-Received: by 2002:a17:907:868e:b0:ac2:c1e:dff0 with SMTP id a640c23a62f3a-ac38d405dc7mr252426566b.19.1742282401863; Tue, 18 Mar 2025 00:20:01 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac3146aec28sm811551466b.12.2025.03.18.00.20.01 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 18 Mar 2025 00:20:01 -0700 (PDT) From: Wei Yang To: rppt@kernel.org, akpm@linux-foundation.org, yajun.deng@linux.dev Cc: linux-mm@kvack.org, Wei Yang , stable@vger.kernel.org Subject: [Patch v2 1/3] mm/memblock: pass size instead of end to memblock_set_node() Date: Tue, 18 Mar 2025 07:19:46 +0000 Message-Id: <20250318071948.23854-2-richard.weiyang@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20250318071948.23854-1-richard.weiyang@gmail.com> References: <20250318071948.23854-1-richard.weiyang@gmail.com> X-Rspam-User: X-Rspamd-Queue-Id: 920D940002 X-Rspamd-Server: rspam08 X-Stat-Signature: dnihagtg6kczs8h6buw9j6147s55qqb6 X-HE-Tag: 1742282403-167567 X-HE-Meta: U2FsdGVkX1980kXuSTBmUD14y7cB2LKU9EJ9egf1HIYJ0DKuxQWcRZgvB2jYI5lw+kA7OrlZd1FG2rsJSkO7xQsvdglTm/gv7L3ysCr9mpzFX5w8it62Ah7NSkVIOw7ezMnwZnQS4XlQwwZsh40Sn2tDE0UlrIk/Np81COwYYChMyKCGdufEtVkvIpy5v83BlvbWW4Fz3aUWwiVhVSmRqhTHEsNf/jR6Q3mnOrh/VdHnU6TgwH+EWif2Z2DyQW+Wwo2J4beL7pe7GuBR9VCFW+V3E5KiVCUCGoIyA6NNs+3tr1zXDdp9B11N5SRYp9j7yLQlg/qoiMdYeKxOnwEVRORITNrpnUlZsz0grlLxkBo1gXu3QqeXOEto+Ioxh3sBXIJu1mXBxHdky3yxF09FnUFEVc/gVvpOSkZKFzQYnc7ZlQRmxO6/HcSopvsPjak5LFVenuQa/erVvV0KhQKyoExJpreE4Fz4HDTaJ+RQDUu8E/D+CQR+Ronbn39l+4I93RF8a0fn0Cc9qDVACqg48Xrfeze5EkQ8105JgWdr0duOwR7zUB83Yfdx7NqqNQsXKBk5pjsojOxAykMvK9d7cXsxLwFTB0PTW1WMQ0r/q2huZxc0Nt8irmt3VIjGhKgCt/cav0gaeYWl0GjmaptA1XMLIIifugL+XK57WZmXb/Un5nqjyRjtEBS6NCprHmfT3P+cngfNM+jYRb4CNRpIX3da3TB1lc3GosRnFGqZIU4frm4o508G0lC1vHRNQqVn07ajRQva+Q0ve31MO9uVC4iPRgWOpVqVTa32hr0+9141+c1y84fgHvOkLqM3Lpd/NhK1dAMrwW24KK5HhZYLPWVud/6IlEITb+dQrE5B4QWN5AX+Fq8ZsWQPR6O5/j18HWfNyu9KGNWYBAG/ZoBzmw9bEF7vzSIy4UPHA09SbcmehGGExLhdhAyGxRJaUNxMAiLEAIJKB2XJ80ulvlQ 9yspNnWw ed0TRATg/Hoa7o6kUvsxi2y82m6HLG9SruijPsIgMVyUGzgL9AEJBuBT4DfgSEQ2a12E57sT4WTzrdsNnkLr7Dh++F/R1TIypshupxJSjqU2ySyvRCRKRpMLhVPn3Tx5jWqJx6KYnasRVSYzZuOYEkSviAFD00kvnUdQb1jCJ7uLF84v2Sh1hdtdEV9FGc8ycMRyGq93gd/krwA5EwO3TGZZcmCwexSZ8z3Yo50PmM/mmrXTvrB52TmncitpP/gezePj2qNlJyg7a7kNK/bWASAOzoWOGexGerWhSmPGzOOakvVzCpyN2OtFnDUCRX8BdAc/HG/2SPSpYdhEKmT+ksIEOEUJoClfvWC/yxCz/wWA8W2xHNVrCEuKoLrc+4EtkD0NafXFe0dHcfpl5HrvnehT4AW/ZDpjO4qmps0tzceTGVHsYxcjFDxI23nwcDPgA1AHpBXN6l972ol/yRE1xgDHhlISX/zHSsHmKpVrGa3JXrRki4QO+wGpjWpRE6cd5OEZq27H1wntkWAmS2sgqTenXgOZT5YCyTKh7zieG6rlCKXg= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000015, 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 second parameter of memblock_set_node() is size instead of end. Since it iterates from lower address to higher address, finally the node id is correct. But during the process, some of them are wrong. Pass size instead of end. Fixes: 61167ad5fecd ("mm: pass nid to reserve_bootmem_region()") Signed-off-by: Wei Yang CC: Mike Rapoport CC: Yajun Deng CC: Reviewed-by: Anshuman Khandual --- mm/memblock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/memblock.c b/mm/memblock.c index 64ae678cd1d1..85442f1b7f14 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -2192,7 +2192,7 @@ static void __init memmap_init_reserved_pages(void) if (memblock_is_nomap(region)) reserve_bootmem_region(start, end, nid); - memblock_set_node(start, end, &memblock.reserved, nid); + memblock_set_node(start, region->size, &memblock.reserved, nid); } /* From patchwork Tue Mar 18 07:19:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 14020393 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 5649BC282EC for ; Tue, 18 Mar 2025 07:20:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5D1F4280004; Tue, 18 Mar 2025 03:20:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 52EB3280001; Tue, 18 Mar 2025 03:20:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 38268280004; Tue, 18 Mar 2025 03:20:05 -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 1F24C280001 for ; Tue, 18 Mar 2025 03:20:05 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 32F12160C7E for ; Tue, 18 Mar 2025 07:20:06 +0000 (UTC) X-FDA: 83233822812.14.2F1CA45 Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) by imf26.hostedemail.com (Postfix) with ESMTP id 54F45140009 for ; Tue, 18 Mar 2025 07:20:04 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=FOrEGQqK; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf26.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.49 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742282404; a=rsa-sha256; cv=none; b=dWk7mTIhcAr0R5PNiW4fWTXxPyQ8i1MWI2Wd2En+Ty/Lyb29hW4VN5p8MW7NTzFGdtDrh4 DPfqD4IZkBzO/Cb6qw45YPUzqXsWNULxyus66s/F02s6YgcbuOgu5UpMCfYDIJ4PErSMS2 2mzM5eAV0+ud2IOn4wWwYtQFER9jKTk= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=FOrEGQqK; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf26.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.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=1742282404; 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=Y2N+i92fAmW5afCtJ+wC4iVqk8jRVUIClCZRAiQ7H2Q=; b=Il8zDU7K1VFZkGHSKPWqFhD7viIwhdZLBHf5FQHxUpKHMwYno6sAX1prpIS5pyg4I/mcaH Lze1EUljrcq3vXK+6bw8lwPhPglajIPu3ord3XFHP4Vk+XI6FeELehT7dBRddmToUpy3Pp 0GphhbhiLpzpp/tS4FQNZSZPL9STwxM= Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-ac34257295dso117827066b.2 for ; Tue, 18 Mar 2025 00:20:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742282403; x=1742887203; 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=Y2N+i92fAmW5afCtJ+wC4iVqk8jRVUIClCZRAiQ7H2Q=; b=FOrEGQqKrMTlX/QAd/Fx0o8LpXDXbdQdyaU4T41aVp/s9G5UA9B136Msf8QI+TqG5/ yARUJ+mGqmAJf3SYZLuzELYfHYNNXrSts+BB+3n/Gn2EDOEsXzLZkWFqwRBpxoNsoPyY lEWetMz7GiWaOOKczTwS3wvhdN1t//AqKT8dHWsUkcWK44AoTH/9Si0DRv6tkxYjMWyb cNUW2p80URTQ57zP3s6XHbBGhB5/SR+iO9D+Aqu+EIWGtp+yo39kNBFiefwbWKV8HYCV +rbU6Wrg8qnUBj5q+nawvsbAfquY8RRcvj2UoHhGo35KECFuqTYo6ij1qqhXcXz7uhF2 h+Yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742282403; x=1742887203; 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=Y2N+i92fAmW5afCtJ+wC4iVqk8jRVUIClCZRAiQ7H2Q=; b=IVbvsEOJqIrNm1iUJPBOcxjRKfPqkVVJdKpTND2vEXYagW/fJzejmvFjLkWNhD0a+D 4vn31ZCyNjCm/yniFK8Rysyq+qaYd8IlIxAxS+3BjwQlijM5/79qGbV6o5Xzz14HmhWx N15pp4rEH9Buma2Md6LR0luwd3stzQ3/qu+0vVDIWZYqie9mwa5DjuXeqm+6V8VpOb6p IEm/ZuLk+BIAnA5R2xsySsCpm+qc8VfWBgaurQKItId1bsYoV0btNogYi2rIIJMrbX3v Qs31HHnQIdt35ldZkTU3JEVqxl45FrRzpDK0m0RJA/aqoH4Ie/aXXsZV3TI+dumhBXL4 T+LA== X-Gm-Message-State: AOJu0YxEIFYGlT/dovEot0aNRZpzi84dCcorVgx4l6qDJy9SzXIJe/aF UDPvwowESXKJLti5gTI8zWj9j/Ch3rBesecJam5CiojQfY96eQOl X-Gm-Gg: ASbGnctEDqzsg21xk2iGwlHA5n4d5MhJXPRZU/5uER9gIpN56lkNj3XInE6hlkcFhnC EB25v6GYGOVCZdnTYLko8r3ow4GrGRrq+mWVn4SxnyBoFwuO5XA3ue4lWqn9g7TLjAucvELKN8q a4OZjiVBfc5U10t9uRJezfzRiCoDKOP+S9lpGt9Y2qvodWRL9gLufgkFIYquYdlXF1GjbalUUPT QLt24NGR/YiCgCdGK+4WosJLry4l0YByWiU5b4Qn2UpBiWWbB2wkLJgi7oJaCsCsmUO+x/l3cTk 47p8UIycb/J7c9sRxHmECdiKtN+fVjjLNzxbsMlB6o4o X-Google-Smtp-Source: AGHT+IFTrUaIZvqpSOupkfSU++2j4fNVNAxXa+4OPtJq3dlti+yGn7AS1teR3IpPUf3Y+VUdCzBPvg== X-Received: by 2002:a17:906:6a27:b0:ac2:7be7:95c5 with SMTP id a640c23a62f3a-ac3303225c3mr1613675066b.33.1742282402610; Tue, 18 Mar 2025 00:20:02 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac314858a8fsm781703766b.80.2025.03.18.00.20.02 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 18 Mar 2025 00:20:02 -0700 (PDT) From: Wei Yang To: rppt@kernel.org, akpm@linux-foundation.org, yajun.deng@linux.dev Cc: linux-mm@kvack.org, Wei Yang , stable@vger.kernel.org Subject: [Patch v2 2/3] mm/memblock: repeat setting reserved region nid if array is doubled Date: Tue, 18 Mar 2025 07:19:47 +0000 Message-Id: <20250318071948.23854-3-richard.weiyang@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20250318071948.23854-1-richard.weiyang@gmail.com> References: <20250318071948.23854-1-richard.weiyang@gmail.com> X-Rspam-User: X-Rspamd-Queue-Id: 54F45140009 X-Rspamd-Server: rspam05 X-Stat-Signature: 58dzq383xk3i3megf5ebsqsnwaod643h X-HE-Tag: 1742282404-497403 X-HE-Meta: U2FsdGVkX19z7rXB7Ccyub3fBp7ZEhVOZSjphQoHbmfo4u9Wwe5+p8Tp2JLPL9jeJHOAJeO1gy6qknXy3xpbkKo5LfWJEdVyNZVxm+FlazgNfaRRlVZKsA0+0EcCDj1fVgktXntvwFKE2HaWKJpIXDW5UDtlWn9d4ZTlJCEM2OW7lsZvOrRcFyttQzAc3Q7YX8G+ovGH5hZBUpEbxg9mq6wV9+beifLax/CmlS0KxS79bODYp420KUqQdTMKQLPzf6j9Eejdqnfi/FlzZaVzKGpNSPSC8H58MnfYx1i0yzffZmN1vG8U/jHwxzhT6fUXSHllYkFBpYdjOXHToBLrQPPT4+Q/17+44Lyo64Le2KGBHn4P5b5XI5qHBe1U4GESvDOTSGKobHzhNU3kR4DBI79iXI/62Ec+U8gNyP+rcZMQ5i1139SlrUqvsEKGHAicj6MuI61vqkbS+NGPj5v6yrCa58MQvNSUwmzu947wWxDfq6ZfX+asA+c++nAekLDOFz2FDB1RLF6dYMHVfUxNYq3CDOHGCeS1VFnQTv7VPJRQDc7N9sMReDfv7yE2i1jJ+WGiZT5Oti+uh/BB4JdMPcC8nHHWi8klX55KFo2/ggMUVO+2ESwMqbdMMYwe7orkEmCIC/h4Ln4ra8XYoeQfMK/TDeVakdYoDkkAE+ddsNWZz4waOsxDTBXSzoXYXLzXEyrchmdGDhfB3OePfn/VTmUaV5pSVsZVXGfd5TY1dR7RFzgJcnl5cLIN6A387kx0PcDaaq+SNrOyvwsO8oRaZQr7fZmIHFCB0k/F8LWizcSrjD3l9u6QfgPZX8/Zqyhu3TVFiVktLIfql6306sIcgin910Yb1el/FmWjO7iHQqQ5Xv2T14xuPjN/8ip0hZY2WHAOslJBgg5+CI8WXlzvcrwXDvkIGbOjWZpJ0mXkcQT95nEMZK5sO2EPcIKLHB6m+CYZWNh2qAOLT9mTVrW vjZ4k1sm 9E21FylGxRHBdmxeuX9bmws05qWe7GeI6xOeWRulXVnqi2aBuw0mAKJEbodq/tUlrQJqhtEqn28eJVmNgZThXX2YiZeQqaWjAWmxCo0w9ms7byGzrH8BaCcjn6mycCspcvaXB9/bOOE5l5M41mfr9DFqyGAzUGiI8BJhyGQzXjj1LXzunCDaYBdfnLV2XkgtmneIqP+70Dz3zwRXm375oO42QQkJyHxEJoAlx+3w27wnKi07QgQjzJsMF6fbDFjNXuy4rpwtuIL03vL+8HN2EXr8eBze/dgDkWaV2CET6MAFGm5iXicg8LPIBBhWn5+kd6mAoSps+cfkb7nIKsAHuIKD2131lCO+awV5Ec9mkccNBs8tpP3fOKsFoVUYwEwYSDJ4/Uf7XiGxhMb0myva911Eld0bzfYI/dqrK79oz5TV+1wfZfh1ZRVNMUQvrVnZczPyE6a6mtKFJxqqScaLuciapJFIQOHb3KSNGXtZ4a0No5yGicjhtDG2c+6QD9ocU+kr7 X-Bogosity: Ham, tests=bogofilter, spamicity=0.001488, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Commit 61167ad5fecd ("mm: pass nid to reserve_bootmem_region()") introduce a way to set nid to all reserved region. But there is a corner case it will leave some region with invalid nid. When memblock_set_node() doubles the array of memblock.reserved, it may lead to a new reserved region before current position. The new region will be left with an invalid node id. Repeat the process when detecting it. Fixes: 61167ad5fecd ("mm: pass nid to reserve_bootmem_region()") Signed-off-by: Wei Yang CC: Mike Rapoport CC: Yajun Deng CC: --- v2: move check out side of the loop --- mm/memblock.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/mm/memblock.c b/mm/memblock.c index 85442f1b7f14..0bae7547d2db 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -2179,11 +2179,14 @@ static void __init memmap_init_reserved_pages(void) struct memblock_region *region; phys_addr_t start, end; int nid; + unsigned long max_reserved; /* * set nid on all reserved pages and also treat struct * pages for the NOMAP regions as PageReserved */ +repeat: + max_reserved = memblock.reserved.max; for_each_mem_region(region) { nid = memblock_get_region_node(region); start = region->base; @@ -2194,6 +2197,13 @@ static void __init memmap_init_reserved_pages(void) memblock_set_node(start, region->size, &memblock.reserved, nid); } + /* + * 'max' is changed means memblock.reserved has been doubled its + * array, which may result a new reserved region before current + * 'start'. Now we should repeat the procedure to set its node id. + */ + if (max_reserved != memblock.reserved.max) + goto repeat; /* * initialize struct pages for reserved regions that don't have From patchwork Tue Mar 18 07:19:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 14020394 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 D67B3C28B28 for ; Tue, 18 Mar 2025 07:20:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C30AE280005; Tue, 18 Mar 2025 03:20:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BE231280001; Tue, 18 Mar 2025 03:20:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A82DC280005; Tue, 18 Mar 2025 03:20:06 -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 894EC280001 for ; Tue, 18 Mar 2025 03:20:06 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 6D4ED160CAC for ; Tue, 18 Mar 2025 07:20:07 +0000 (UTC) X-FDA: 83233822854.29.0246B74 Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) by imf04.hostedemail.com (Postfix) with ESMTP id 9C13540002 for ; Tue, 18 Mar 2025 07:20:05 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=klj7K1IZ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf04.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.208.54 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742282405; a=rsa-sha256; cv=none; b=B4FE7eLz2xqxRcnnJgG4byGcqU8Klvfi8+lvS5ymqDVPDOggZBDJo92LtCYngaMZOBZhZI YErQ7GgbclqpFAvrJZ2WIuy9hELC6AYwDvyyUolU9ofTDqS1ba22IyOAEVTHS041MuGr1J aBxwwpHqixYD9eJHjHskTKJt1gHBi3o= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=klj7K1IZ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf04.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.208.54 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=1742282405; 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=OilE87PirqWgG9TbL4Fk/0TuP1rP+OzsnuOoMgu2kWE=; b=m44zyCH/wkigrkPw6WFZ4WnPPiWbII563TGL/DmDeqPKNzz9Ofk+tmhPQTnBmbHAOwTOo/ ZoYfZjQHwP7NH0fq1CY9dL8LRB707tEMLpf4XkLyURB8EMg5YAy708hWqoegQw/bRcpLk4 J4mQp/YLx3+KFUJO+YML1TG/GvQYjiw= Received: by mail-ed1-f54.google.com with SMTP id 4fb4d7f45d1cf-5e5c7d6b96fso554038a12.3 for ; Tue, 18 Mar 2025 00:20:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742282404; x=1742887204; 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=OilE87PirqWgG9TbL4Fk/0TuP1rP+OzsnuOoMgu2kWE=; b=klj7K1IZ5rfrowPc0xYimvC7oEbMJLpgDTCpAJtVecqVMWdKOS6LGzqqqZFG04wRCi CujSoyBXDWpHv1uaGw1p/+JD4iTrouKgGBPOkiJOhbf8hnnUQbhW5H9V5cQt+ATARkSh aUbjImIaTd0iYuIVnhC8P7afpvrIaOeq5n7wATTRMiZP76sEg68UbHfZpHQEmg8kS+CE S7ZygpKiMcmO06svbFhq9QQtrduby4Ks5L6NQeA0wfMHJ39cWHD/1geBlvHg2tnW6sCC +Otye+VFeYYDxy627Jh5wyEL6x+J9CpxDgzhozuQ1tv/GNaxx/2fIMHUfYeHhHsEluRm PzXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742282404; x=1742887204; 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=OilE87PirqWgG9TbL4Fk/0TuP1rP+OzsnuOoMgu2kWE=; b=LkMudAhdfCoK1xeJQrGg39bj25y1IoJ6bhdCqpz6OWIZZ/adEMzco2LrjFIjspLIWz kGssWbe6039ICgMNIvLEJVfjHVJrJt4J8oN61jTmO7C6zdo0f+gJ5ybgOtj0OC4ypqA3 9qmK0wUbYfhltAISmtM228McX8cLV5OH40hKsMf9ZOYErMFaggRQhl937grk1UrmaZf8 66Qy40sNb2jioMbFpTNQMKCbuRbsm2aCeaWrv2RS1FCyJtbeqqUwK99FZACCcNonXML0 +SWjvY6ZcGFuFz3h+bx2lhB09gCDfO9XZbq2AE30j+PuvLXQQlof62RAkR+XnwUNWyiY bU8g== X-Gm-Message-State: AOJu0YyOah49OCQ0EfTYzXe2PXRoCExT61sLhSF01OYZaG2X/wRMJtpE SS5WyIVScDMJqPUmwbykVuxtzGZLp0w8s5Zao9ffIL/Gv5IujH7M X-Gm-Gg: ASbGnct5jEsxbOr8zG6yXbSZxDfmb7qagYjxw7k1IvpeF/xTsV4zNt5GAf8ofBVrjNa Z36/1SMCBsyecgr+x6ATBB+6TsuTHmQbH9hvoI9LW+DFgMsNhvUQllTOxCcaptb8cr3UsgQhqbJ tZuKaxbyVuVPxHOdNI9n1Wu7CsPdjCnfnyIFB10gvib9rBPQRdRFabdCxMVaqDf/vx7sQ/T6ro1 0yDydadT/cV2GyF914eKM8EYJCds0wIiftA66uKWBAPV/LnbWRekRFpcjhad8MoFyjQ0/XkPN0Z TgGNrZLrA49+kQPcYcjJ+0t6p9B+OJ6vTpFFiw/cxnEK X-Google-Smtp-Source: AGHT+IFiVSTikb7+5mC8s0XQi56tZ1JxiO1qVqO2027wRJ0vqIgODHk92LkukKamYflo5HLAMJxQVA== X-Received: by 2002:a05:6402:84f:b0:5e7:dcab:1df8 with SMTP id 4fb4d7f45d1cf-5e8a0426a94mr12813255a12.26.1742282403823; Tue, 18 Mar 2025 00:20:03 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5e81692e5cbsm7129980a12.6.2025.03.18.00.20.02 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 18 Mar 2025 00:20:03 -0700 (PDT) From: Wei Yang To: rppt@kernel.org, akpm@linux-foundation.org, yajun.deng@linux.dev Cc: linux-mm@kvack.org, Wei Yang Subject: [Patch v2 3/3] memblock tests: add test for memblock_set_node Date: Tue, 18 Mar 2025 07:19:48 +0000 Message-Id: <20250318071948.23854-4-richard.weiyang@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20250318071948.23854-1-richard.weiyang@gmail.com> References: <20250318071948.23854-1-richard.weiyang@gmail.com> X-Rspamd-Server: rspam07 X-Rspam-User: X-Stat-Signature: osh1zcm9boudxq1pkafa3oqpik19ib6q X-Rspamd-Queue-Id: 9C13540002 X-HE-Tag: 1742282405-138204 X-HE-Meta: U2FsdGVkX19y1duyQYQFHoEDcVn4gULxhHW2RRrkojHVBr8w42clvsoa8c6EAgaWjKwP5ZRjlEL2Tr0KvdDNnZGRfvohXg2BINsMj/QfRYF6xSKCVCJa+nhccFpXoKxzDoiRvXOeTFCUBIdLUl8o2LEuQDDen6Ak1OnJmGHTmGwlzhX/u6NaySUPOTYAYnAs9JOgJTmIidxQX2UKr6DEvQ0gjv/RrigKhUM7t6ix1+jtD6d8OUUGWXgJ/2I2U4Akk9D0gDROEe6W0IgABFkXX8rd9SMKyNdJvjUQUcWHJI5TnzZc31gxppZq3EJTcAliy16+8tLQASo3k4w3fLbjxD36sIvuLRqCRo1aANX7MIusMNAOMuopSPYGWc6/Pu7h6jvzCvhSr25i/JbnJdhp/ZkuSJWs5eGPAe5vDDP0csH/QyyyOmPV3ECIEVPDusT+oBDe6H7wxuiBuUSbk1HkAkTs9YmG+3pXMK5TLriqlPCnwSi9F2O8/WdtcT7Wb9QdSRwGgOrWw1kbS3tOaLShrEHTtNgREHrfiQhnATVC3XfXQgNsk3AhnqG9yaugjEEvCalKMuXYZEbNxP3cay437eumAN2+W3yF6GKmaOVzJHlr0N8CzPVYM9hkHSRV/gx3UmP0oFUy8AahSjIZmrX7gYJrb+BwPp96zL/9ypAJFw/qVKGKC29A16ypOKQiJf7KQEg5y7EM9V4Pt/2H7SrYkPI46MMijCBsxwpZa5Bht5F+QayvBfnJmYO6UCHWqsde2LQT6R1Exmpge5u6LCRo+EoMZ4aDkC4lhlYI2O0OtPYqtDVjrf3RH+7wZV58dG6Q+xbjhGAWN1h+Ow9ztvE7OydrMM6CS59I2pegiUS96FQgmtK7KvDxIOS4FP4codVS0d60zpY6JOlJ62Nf5WIp75eNQtu1DKm4Z7dBJ87UPplryCxxT5ABIxYYOigHCF8jsyJkRtvSa20oVtL5aMh nlrsu4+8 8ppHlGdf9oeLAGbStH/gH+md4QOjZUJjF0iNqJd4e3jNhffD5QEw5d4NWBPnu0bkLoz4dRatMLaVnnaM/zm2wplc5QwNvq5MYl0ONQxDyjYOzOdHe12RwgtvOXdJp3fMeztVSpy/s450uGmQFJwFJAC5VPSFriuP8VrOkTVep1kVNFDGXApAzhWOjhW0Lrs+p/Id2NMUaFGZniOX7sPLSoa1wJSoWxVjjoUX73CvP1Eg6k+mPxmM9braE6WTvX+HAit0OcmIvhhXiskRYzT/XOGo+W7Sae4V6q57KvFVanQLA48PEcRBDvBuV9wSXn9bDpKN0WIqaej7kwJG+oi6MikmAx7mOUiheHLt91RSSPTmjj7a1CEFXTY0tHRI8eAAEqUiXJZSB2UJcDotqb8Ht3QLH5NsOqDR+cg466SSMmxf4fkJzbhUiahHMqpMkUzrefHxNEgGZmDkzT1/AwGQoOLvIkijlSRePJctIj40gHGnNF1ttx6p5TdLDhdajdpLGx0/G2Op3A2iI6OVivs4hL+KW79p4uFOrsnUAj9Ic3O1H7owjItdmBq1X/g== 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: Add a test to check memblock_set_node() behavior. And create a corner case in which the memblock.reserved array is doubled during memblock_set_node(). And finally make sure all regions in memblock.reserved are with valid node id. Signed-off-by: Wei Yang CC: Mike Rapoport CC: Yajun Deng --- v2: move the check out side loop --- tools/testing/memblock/tests/basic_api.c | 102 +++++++++++++++++++++++ 1 file changed, 102 insertions(+) diff --git a/tools/testing/memblock/tests/basic_api.c b/tools/testing/memblock/tests/basic_api.c index 67503089e6a0..01e836fba488 100644 --- a/tools/testing/memblock/tests/basic_api.c +++ b/tools/testing/memblock/tests/basic_api.c @@ -2434,6 +2434,107 @@ static int memblock_overlaps_region_checks(void) return 0; } +#ifdef CONFIG_NUMA +static int memblock_set_node_check(void) +{ + unsigned long i, max_reserved; + struct memblock_region *rgn; + void *orig_region; + + PREFIX_PUSH(); + + reset_memblock_regions(); + memblock_allow_resize(); + + dummy_physical_memory_init(); + memblock_add(dummy_physical_memory_base(), MEM_SIZE); + orig_region = memblock.reserved.regions; + + /* Equally Split range to node 0 and 1*/ + memblock_set_node(memblock_start_of_DRAM(), + memblock_phys_mem_size() / 2, &memblock.memory, 0); + memblock_set_node(memblock_start_of_DRAM() + memblock_phys_mem_size() / 2, + memblock_phys_mem_size() / 2, &memblock.memory, 1); + + ASSERT_EQ(memblock.memory.cnt, 2); + rgn = &memblock.memory.regions[0]; + ASSERT_EQ(rgn->base, memblock_start_of_DRAM()); + ASSERT_EQ(rgn->size, memblock_phys_mem_size() / 2); + ASSERT_EQ(memblock_get_region_node(rgn), 0); + rgn = &memblock.memory.regions[1]; + ASSERT_EQ(rgn->base, memblock_start_of_DRAM() + memblock_phys_mem_size() / 2); + ASSERT_EQ(rgn->size, memblock_phys_mem_size() / 2); + ASSERT_EQ(memblock_get_region_node(rgn), 1); + + /* Reserve 126 regions with the last one across node boundary */ + for (i = 0; i < 125; i++) + memblock_reserve(memblock_start_of_DRAM() + SZ_16 * i, SZ_8); + + memblock_reserve(memblock_start_of_DRAM() + memblock_phys_mem_size() / 2 - SZ_8, + SZ_16); + + /* + * Commit 61167ad5fecd ("mm: pass nid to reserve_bootmem_region()") + * do following process to set nid to each memblock.reserved region. + * But it may miss some region if memblock_set_node() double the + * array. + * + * By checking 'max', we make sure all region nid is set properly. + */ +repeat: + max_reserved = memblock.reserved.max; + for_each_mem_region(rgn) { + int nid = memblock_get_region_node(rgn); + + memblock_set_node(rgn->base, rgn->size, &memblock.reserved, nid); + } + if (max_reserved != memblock.reserved.max) + goto repeat; + + /* Confirm each region has valid node set */ + for_each_reserved_mem_region(rgn) { + ASSERT_TRUE(numa_valid_node(memblock_get_region_node(rgn))); + if (rgn == (memblock.reserved.regions + memblock.reserved.cnt - 1)) + ASSERT_EQ(1, memblock_get_region_node(rgn)); + else + ASSERT_EQ(0, memblock_get_region_node(rgn)); + } + + dummy_physical_memory_cleanup(); + + /* + * The current reserved.regions is occupying a range of memory that + * allocated from dummy_physical_memory_init(). After free the memory, + * we must not use it. So restore the origin memory region to make sure + * the tests can run as normal and not affected by the double array. + */ + memblock.reserved.regions = orig_region; + memblock.reserved.cnt = INIT_MEMBLOCK_RESERVED_REGIONS; + + test_pass_pop(); + + return 0; +} + +static int memblock_set_node_checks(void) +{ + prefix_reset(); + prefix_push("memblock_set_node"); + test_print("Running memblock_set_node tests...\n"); + + memblock_set_node_check(); + + prefix_pop(); + + return 0; +} +#else +static int memblock_set_node_checks(void) +{ + return 0; +} +#endif + int memblock_basic_checks(void) { memblock_initialization_check(); @@ -2444,6 +2545,7 @@ int memblock_basic_checks(void) memblock_bottom_up_checks(); memblock_trim_memory_checks(); memblock_overlaps_region_checks(); + memblock_set_node_checks(); return 0; }