From patchwork Wed Mar 12 13:07:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 14013510 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 8556BC28B2F for ; Wed, 12 Mar 2025 13:07:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8D531280002; Wed, 12 Mar 2025 09:07:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8845E280001; Wed, 12 Mar 2025 09:07:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 68F1C280004; Wed, 12 Mar 2025 09:07:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 401E5280002 for ; Wed, 12 Mar 2025 09:07:41 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id DBD3BB892A for ; Wed, 12 Mar 2025 13:07:41 +0000 (UTC) X-FDA: 83212925922.25.3210709 Received: from mail-ed1-f50.google.com (mail-ed1-f50.google.com [209.85.208.50]) by imf05.hostedemail.com (Postfix) with ESMTP id 1B81B10001E for ; Wed, 12 Mar 2025 13:07:39 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="eLnA+8c/"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf05.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.208.50 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=1741784860; 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=LOf9XDM4lO0T7aY1kPVwxuVco3SjeU9wmd3x7rDWonHbKG7I8s7C2bxR4wQbGxFKcVLhb+ I87Zum9oOoMcoUJdx3ru+x2fnE17i79Qs5ogEb0iY8IvfXnf+HD5QQsAsqTFIO5mvHrAvU el0HBMY4QCZ+K5XUR/YypFVF6GHy5Ic= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741784860; a=rsa-sha256; cv=none; b=ho1g+9fWnzemrKvTaMkkk9Q4NCmOGYePuDda7+va+XzSE6Cq45LvLhNyybfM05ExUqAD33 rcOeSsMqRA6q7Y06DsYNwOMrOe+sLjLdlEwLSLNLUKHNKfm+dMg0BO8Y4We09bM5n9kPSl 6eAfI9M5Xd5o7GVuoCldB6frHZ81oaE= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="eLnA+8c/"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf05.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.208.50 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com Received: by mail-ed1-f50.google.com with SMTP id 4fb4d7f45d1cf-5e5b572e45cso12266714a12.0 for ; Wed, 12 Mar 2025 06:07:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741784859; x=1742389659; 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=eLnA+8c/tYxWdrj2Di7nHz/pVtGddROLmGVCtihqP+eEnQGrkq7AchF9pkN2asZ038 NNtGOKk8qqWGed3hhPm1T3Lfj53lk0cV/UIaId3izEacG8D0sch8/wQlAglF4293OTov qECboehCdT91aPU2Vdq4HvVdwWcSftSKb8E5sXRDR5xl9d27Q/BJrcv1MotbzMjyA1G3 mLq7ixcGePykuubGzdkTDB6z8R/hZtAqcTgdz/+FeT+6pXLqehtrCVONffJWqpPVlQtk eBzkdwjJfV4oHzb3q6jLPMogAw6yT3OB7YSN415ved/F7cI4JE9p/k7L2zMyl/li+gD+ vqxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741784859; x=1742389659; 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=tzpto2uOwxFsLB+b2K+a+tnQDiBtwHN8EvynCCDZYq1GrBVkr7MjYpxPBXdmxmjL0X Wif9fQwBDpdQtofAdrjv9k9Sf2E61QsQ1IzkCMTjhMVxvZ1kqdwNAVb8o17VT+9qsfKp H0vh5/mSLFE3QxhVERGGCLIFcxGFAlNs40lRQw6FOPcZ26FWo+Ihp6lAuKMZFEYbHz+K mchv8wFIPwQcXOzlTN5MZIJ6gwndGd1oiQiomVbT6Iyw9dv1CP6pKT3nXFQK9IuKVJny L6/n9wx/+rIcFz/FcZCmpZ9G+ZgNZrYrZlU9XVlO24di8FxFrSfPnZX7vwijSceX4tSV fLiw== X-Gm-Message-State: AOJu0YxITlerDSXWmFMS673cDPRlrE7D+XTEmQpViV34b75XKRbuXrQr rkNXZhfnImfYexmQc5JYH5gUNU3haTyuuQ4TnjQwn6lehYq3Np98tpFLef0f X-Gm-Gg: ASbGnctNOBlazPCxQrzftui8iX6IJQrtyJJfok4fgWeTfet0lqZepWx8p1TX2MXedBy rBi5CdRhIbQzzLVZ4hNwmCKjDu8ohzHbibmuXmLBz+KxfnivyA5YC8sHta3crdUEKPLceUkUwH1 JE6bF1Q7XlzHSatVz4yn0ce3jxCTwhJ/RF7dX2M4mZ9WLyXbqx6PCvWoofRf773pezczcKUWn2N TQzd21R3bryZHduoqeTKa4VbhLwsKYRRPv7zw4tmN/JZCB4azNwnepfvFiGRcpZaB6L2gps18y9 a/fSGufdNPRo2WnSmkyfCyJB2yG+oZxrQZMSLEImQOh8xYaAW5zixJg= X-Google-Smtp-Source: AGHT+IG83SPr1vXm/EKJaEc3qHbCKbHCH3cOaoWT9J/EiHl38XqabL8gmb4G36WDVu0yC7WgMMy8vg== X-Received: by 2002:a05:6402:27c8:b0:5e6:1867:3f7e with SMTP id 4fb4d7f45d1cf-5e6186744c6mr18400588a12.32.1741784858251; Wed, 12 Mar 2025 06:07:38 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5e5c768c2aasm9722403a12.65.2025.03.12.06.07.37 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 12 Mar 2025 06:07:37 -0700 (PDT) From: Wei Yang To: rppt@kernel.org, akpm@linux-foundation.org Cc: linux-mm@kvack.org, Wei Yang , Yajun Deng , stable@vger.kernel.org Subject: [PATCH 1/3] mm/memblock: pass size instead of end to memblock_set_node() Date: Wed, 12 Mar 2025 13:07:26 +0000 Message-Id: <20250312130728.1117-2-richard.weiyang@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20250312130728.1117-1-richard.weiyang@gmail.com> References: <20250312130728.1117-1-richard.weiyang@gmail.com> X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 1B81B10001E X-Stat-Signature: 9wir9h7ysk6hq49m6nrkkr3rm4895ju8 X-HE-Tag: 1741784859-461081 X-HE-Meta: U2FsdGVkX18qogTY6fI0Th+1Ahjv6Idv13rGcxQjU1xNA3e6KrEWy6dLuUiHsJbSGkgTLeGBTyz6p02vbKXBctgNjaLP6csKOXnF81kYWoWiwEs+lJzDvc5T4hI50oKlfE+jHgJjT55BAwYt4jzOcZrKFoLEmOX5DyaJpKTQI9JEQ/6JZb3Pi0umUte5fZMckrw0TzYlrnuhsZO+aNM0p9VgOCMMToSc2dJjHiLxfHwYy+205Zo8MznjBBoiL/TaCPr61tof2MdnmR8Qn4ywTu48Qbg1wJgQUl33oiiJ1iapraoDibNNclaX6QLJzBnOR6PbXmmkUJXZtEH3LIyAI6e+WuhoGIAoF2mEW2tZdGcasJxyXD6hJdxsfUVCys8Y6mTT0MkqiGDyHknNRwSJNPAuSCq+H36NiMY0BXLmS8OItARmymchNOFqOea5fbclwVB5ZPo9DLF6azmh8fSnfDfsNMjAeEPayD+CAP+8J8sMRZUI8vmJYCjfZp8DeKvDXSEGLHdUAVZRmo0w5BOatWACMAUDBpKnm8ric+abzeEccvGr4uM5ZZnvk9rHw53dv1WxWl2Cwt04rF8VrRR94Wf9ZA0y2DcJIp/Ueo+MkqhhJ6ESRBkhDhx6ge3V/tZD7isxsG9weto2QGBttq54Ji/0srIwU7SvNkPxBtj821chKKTVILd4Fhckkio/mMvYlhY2VUUrHoURHGl0SgYKuAnh926kkSPIAjv5ndbSmtJ631ZjKT+OWuIj89rZ/aukURynW6qHziulx9OvuDu+R+hXStju/615f1GtprRmYiuJFxHIsqkxAXdMmHbUQCvPkeOobMoQWZOWfZFYcE99APfkFTQ0XDbpFIHdv+a4I9gWhFiDTMeBW7J+u55qjZTJiCEhKmeguHcg9aSAWPwqYKemzYx95Mak/VmnNQhvv/Dg7AKq8SiADUpCRnl17oNxl0faKZpO3MfaLvsKdcY zBjOlBSz 9Tz+hgAb+Mt29p/SFsBGYlPwFTPTZS6O10SPtGZkZGr2t361cQO8akFDUpwGhUkSAz2trehuBq7JZrMQnT/09GD/5k3YnmGxR+lqa/R5Km+WTAf/zYjtAnW7SBIZ3DJ/Pvi9JPwcDFxGrNgZYs4BcQDFbYNBLUM5wwbKb6739YlrF1gr6KU9YFEZXwZMYdLBM5GIqEvUMR/suzQlL0G6jlJut+5AE1S5ujYGUOr+F9TYsTPTA6FcJXVgJfrXEJHNXD4wI64HZjFaaZ85kyBOWTBkArulLzh+b40UA+Pg/JBGx6ZVGoRzAhdU9AgSRb2sBAFtSzGhCsxcVw+k7FjkPevEVQ+DOur5V2/YVjVy4+1+Qrn2gSadmtlOJbuY6sfm0WWLwgh3knB0CoZdIkpNp9JfY9GM/fvmGX5NbOhIsLuW9AgGZd4CGpS3voz+Ewcrhtm97lGynzgd/W3FKdEyvdnV98sygYoA7U+PLSDgTbu0kmOOfJGvBtFUK3paMykhprgZ0nMC2fksbH9YvbTBFKPAqMCPW2HfxfzDsx0PyjUYH8frKLk5cfTz9TQ== 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: 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: --- 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 Wed Mar 12 13:07:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 14013511 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 9F6A0C28B28 for ; Wed, 12 Mar 2025 13:07:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 60893280004; Wed, 12 Mar 2025 09:07:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5BAF7280001; Wed, 12 Mar 2025 09:07:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 40C35280004; Wed, 12 Mar 2025 09:07:43 -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 23FA8280001 for ; Wed, 12 Mar 2025 09:07:43 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id E35D11CAB7E for ; Wed, 12 Mar 2025 13:07:43 +0000 (UTC) X-FDA: 83212926006.17.256F645 Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) by imf01.hostedemail.com (Postfix) with ESMTP id 083C140014 for ; Wed, 12 Mar 2025 13:07:41 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=kRr6CuJt; spf=pass (imf01.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.49 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=1741784862; 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=DNHZcFex8Px1j83D4c9FcmO0xIGKpZb8OD7DVh1p9Xw=; b=YKOiuD/71NFLcX0a6URTAKi28AHbQnI8hDifIoAsjz0lAq2yiP5EQ5S7OuL0BFbBVml5x9 B2w7u/f/GrswiaIh0zdLGRdcPDZtcEcle22msN//perXrKcWP8c0FwTjXPD5zcMqcnmleD r9bNTXqBB6FPOQ/XawpXwOwReAtnvQI= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741784862; a=rsa-sha256; cv=none; b=Yt7tyd27nRkB73UnKLHflmYy657XNZ3Ibz1SDmp1AS4gBbA6cBYAsN5Z7dDoORfkXtOBlJ OlLkyUQ9ukK3yQYow65EIjjh9BekyuoFajdQx5DnHBrmYcq5QNVD6PosxcFUeTQ/al4etf W88Ah6TJlW5G50+6tikbHCyhVymy++U= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=kRr6CuJt; spf=pass (imf01.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.49 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-aaeec07b705so1054751666b.2 for ; Wed, 12 Mar 2025 06:07:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741784860; x=1742389660; 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=DNHZcFex8Px1j83D4c9FcmO0xIGKpZb8OD7DVh1p9Xw=; b=kRr6CuJtFKZQPWrM9iWEypOvkEcHLH+DRlHrYhH0xAF3t1BRp7r+TgyZ/wev55CRye 98an+U1QxB9nHJN07jyC8mm0+I0z49xH7jAyuQiLFx4sL22f/DMXGU0lUmxB57M89G/R ZR92suXZAkWuGIdJFT5g3V6WePeLY0K42CxQpqpcU3cOEhWu/Jq5OkA97tK5CE0l8fXK RqoRFypMlHqRhsTwx6W//Up3YdJmi3dh1MDOV/+vRlQ7hxqxop1fzUfMwesJneB66kRt 1EU41aoGWJtFHwWlYad5E634aZ38cXy5uJAnnHFD6gwm4BO+m9myfYvkHIpga96RfzFE zCZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741784860; x=1742389660; 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=DNHZcFex8Px1j83D4c9FcmO0xIGKpZb8OD7DVh1p9Xw=; b=eSEYacWhbj14DR3W9vm4Czr6ICmF+1/ZBEWuMz+M0AOWKwLlTOZFtlTyBr2g76uPsJ oJfFK6qhzhM4ds1oKBTIrhB7x662AVofIrq1xpjIFCYn9U38QTeSbOH4PPtwCku1oHza kNkU7mPBExwhKA4IOozBrwSdWjDw1fxzx6e6r0IEyoPO/QqkxnaToHKu5K4Pjvn2B6Pn 53bBAARHzZrZ97kgPflvXfzJ1oA5hrqcSlwx6aQ3pOGXbmQyyhcNUrCRYiLa/6FCAqeW JdX97p6R8efRUWt5z19m0jxNjPpp4YbYUTcx2euSe8ZQmjW3rpY/X5nlMIFzMFkyZja+ uR1Q== X-Gm-Message-State: AOJu0YxInU0lz5Akjj7AqtAsPSL880zsjowU194P1fJbIrjpL0BdB9Gk n2cc0DazCZH88oLj7WzSp2lVSz/WFdU1JxGtHpzL1BAFOuly75b/ X-Gm-Gg: ASbGncvk8MwwZaKJhpYjFjs6OQdqVs44EE74EhMN2LooBJp8QJr/yApEVo0L/4b4Ead dG1omWkeaAiiUtvAq1Z+uOufOwq+mMZ2Z83w5H0u6vIn0tOZhAeEtfx2C46lxv0TuXB5d4/OWZo laEThrIHbwiq3OfWEPrjcYQBXYTbfhoLC9Coxyucsy4u27cVOrqcCGZxEj2feqGucf7CCrbGAfG g+8RShnP+JA+5oGFKIeEgVJ8d7JAMZz9GohndMooSdgoxqG/demYxuOcuF/uz4LWuuT6KZCVZ7y 3SLVf2AMtDzsjLBfb2MYoUfKbp3duPf/Qy2xCPIzTuoN X-Google-Smtp-Source: AGHT+IEN8u7QOLcSOGSbQarp99oCBB6jfJHA3YxhlG5I8KBsPt5gWTItLzkpJ1ry6WxIs/D+T/UCdA== X-Received: by 2002:a17:906:6a1b:b0:abf:74e1:cfc0 with SMTP id a640c23a62f3a-ac2b9db476amr1098655566b.7.1741784859257; Wed, 12 Mar 2025 06:07:39 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac2e1c23ab1sm96517766b.121.2025.03.12.06.07.38 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 12 Mar 2025 06:07:38 -0700 (PDT) From: Wei Yang To: rppt@kernel.org, akpm@linux-foundation.org Cc: linux-mm@kvack.org, Wei Yang , Yajun Deng , stable@vger.kernel.org Subject: [PATCH 2/3] mm/memblock: repeat setting reserved region nid if array is doubled Date: Wed, 12 Mar 2025 13:07:27 +0000 Message-Id: <20250312130728.1117-3-richard.weiyang@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20250312130728.1117-1-richard.weiyang@gmail.com> References: <20250312130728.1117-1-richard.weiyang@gmail.com> X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 083C140014 X-Stat-Signature: fzj7mfc36kqy8hef6f8ryuuw41cg6cwf X-HE-Tag: 1741784861-749175 X-HE-Meta: U2FsdGVkX1/qR5zTKIK0IzMBBEOb1h2pyienxc9tH3sVXsxbwS5woXc84bNab3l8GH0NiwdULVDqHJxF46BAUQl65cFMNxqWjKaqb7OFWyHeeRyZhfgkuKwfTMfqypO4NU1F2g6ohOSI8h71RKUWWizjYmdggcfKLnLMcS6J1834IQK8ovHkKOxYXny3auQsQNGtbdVbvGnnjturk3SCCdqDQNVepNqjXDQCuTD6JTtG0x/GaVialfSDtON8NYaEKZtxzjCHpH/KBaOsJY3dD0hV0ReWZ2mKXZelijEBQeKqpxpxoi7o5M95Px3U9a98Tjd5JXlqHrSMelM7tL8zuAAo6nJ0ev9sXIhRdL7F3X+5QE7W9mr+ubpz7uDDNM5g7KMlafjEWpWZKQJt3IcdhyY93Xlvo0WFgzDaVylF1/OmdGZVZlVjStupMU27prICHzRYcL7GFECewBnyDqNkNPDjVXKsf1fHTyAWrQMWxKGQL5qDlSxZ4pqCqc5QfzHQrjH9Osvmeb1NgOby+z0RqSnfEw9kysm7ZZeB2A7lWXXoIahRitZO4Z/P3RdBifRGpGze6ecEKmw6aB0h9N3MezXbpub674D1AAyIUCWhXiOAehYUuAgKkbvO1muSacunzEZosZXm5NJjYjWYn+FxUyo3IeM57pxTs+D4QExyKX/o0pP7h8n0gLMkAwN2oVWtBZwjOtZI83/p6pMOY5CEzcNVzXSagZPv6tF+IfWrQGBr7xCmEsWF762ZAQ2oMsRAQ00Ko8Odds70k1UoakLDdI2/LL4Mc9Su3I91aojuDyssCvtMOEmJee67Ge2r3yzhjYVq7uHyCnJ7rMztXEuSi/exh6oGVf3EPZrE8YMV5oPt3sduxctjjKoXvMcNtG+IB6j9RbvQDq+0NtHP49e9ntZjyFsqTh7D66WuD8hTlq/VRlm3M9Zq2zYsDisIqsFFTJtBcsS5+w+O42u6FlR vg6JD4YI ucvh/XKmLk1KPG6ZbHyZYND4a6kzTqTB2qTaW8QEDBXw5a8GRsmgEixiSwoC44LyvaGkjo8UMSVKYgurTs390z0P7k5jDcdDZkTYalCXg6O5BkegBfyYf87udHUsWCP2MzBfmXDVBB+NkcDmVZX65mZaLaCpL4lgvH7fp3rMYH9MEdEuLBdxdJnEj/allidojVTVgEKA+8UZzgjg9sDRI3sbsRFaoTInUtsxu/8rNNVNrGXZQq9MkEIhe9gCpsPuBzPDHnmQfZg4J1VjmeFciL+2oFG1Zn9y18DZEhwb/KYPLnIN7ZUgRtawTvleNqNC7zq01cFEMmz7qrBu/8wCCoedQTF3Xe9bySyTLCbj8fbXRn/oRKI6e/qqdbiOVcLYlMPMSRYh8cRTw2I9a0pfrS2GVGOfDNfY9aGUMAz1TnwyGzoTbwZb2wfYuKhmoc/01Kn1jaHMzL9o/erStOke0Q2wE68ZrIph0sEhoyUug32lbm69YjCjpLWwPbsKi1O4jVTja X-Bogosity: Ham, tests=bogofilter, spamicity=0.005077, 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: --- mm/memblock.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/mm/memblock.c b/mm/memblock.c index 85442f1b7f14..302dd7bc622d 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -2184,7 +2184,10 @@ static void __init memmap_init_reserved_pages(void) * set nid on all reserved pages and also treat struct * pages for the NOMAP regions as PageReserved */ +repeat: for_each_mem_region(region) { + unsigned long max = memblock.reserved.max; + nid = memblock_get_region_node(region); start = region->base; end = start + region->size; @@ -2193,6 +2196,15 @@ static void __init memmap_init_reserved_pages(void) reserve_bootmem_region(start, end, nid); 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 != memblock.reserved.max) + goto repeat; } /* From patchwork Wed Mar 12 13:07:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 14013512 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 DCD2BC28B28 for ; Wed, 12 Mar 2025 13:07:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 197FB280005; Wed, 12 Mar 2025 09:07:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 12060280001; Wed, 12 Mar 2025 09:07:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E67C4280005; Wed, 12 Mar 2025 09:07:43 -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 C000F280001 for ; Wed, 12 Mar 2025 09:07:43 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 88BC5C1132 for ; Wed, 12 Mar 2025 13:07:44 +0000 (UTC) X-FDA: 83212926048.19.8EB5CF7 Received: from mail-ej1-f50.google.com (mail-ej1-f50.google.com [209.85.218.50]) by imf27.hostedemail.com (Postfix) with ESMTP id A64C840003 for ; Wed, 12 Mar 2025 13:07:42 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=l8VuFhdy; spf=pass (imf27.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.50 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=1741784862; 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=8zE2S+Fhbk8m5YQC6Y/DJAFYmBoP4OROj/JXsAR1KIs=; b=td4yoqfobvo3Kpvnr1QUj7/F5q/2NQXXVTQPJB/oYLcLD45P4kBT9tk345zqsrRhDxFMpD cswTUqfUxJTPqRAKjITJNjAtcYSalfXoMq2v08ADns0fGihdIor1K48N4l/6y/gB5KAIDi dHt2kTFM/otb/5qREQW1ehj7Aa3vBh0= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=l8VuFhdy; spf=pass (imf27.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.50 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=1741784862; a=rsa-sha256; cv=none; b=LvfvcndlcE3scfMdkjFPR0xb38v++3OhGHwlNrTakW5KyMxMac++pK9fhflFVnCm7qjSLr ovTHizRvNJhDaP+DfaKSccvQbngnS/pA/FFnWmRiYcFqipywdi2F+8Ksn6Qmg1HWXph0IM P0LupVQQh7Gq8ThlPILaOqhADcFD/yw= Received: by mail-ej1-f50.google.com with SMTP id a640c23a62f3a-ac25313ea37so1024735866b.1 for ; Wed, 12 Mar 2025 06:07:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741784861; x=1742389661; 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=8zE2S+Fhbk8m5YQC6Y/DJAFYmBoP4OROj/JXsAR1KIs=; b=l8VuFhdykCN2+nlj2yfdlWKY/N75hPdr4Iy129JbcQzmm+gwLKl2aIWK9CMDLdj+3P hG/4khUdq5baIoh9ZTJyiuE11nvXtXVgAnya8qLl6FERtDqzj0FQUxi6xrshPyvGDiEv tV6Z/LmZe1j/1m3qjvEnoeYP6AzlPuH1/REVkggVQqI84lKstN+KzD4ELA2wjbHWBPuF CHmiFMIvT02AMP5MeDinifqQt1UP2rupxsWlJ88p7CXfcxnoneuJMMyRb0pKDpaOVEW7 k4cxSipQnVmQPJlLlQHkteixgulDsIc3il5hA01SCkJ0TQRcTRw/LIjaP2K69D3/yYC2 gTXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741784861; x=1742389661; 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=8zE2S+Fhbk8m5YQC6Y/DJAFYmBoP4OROj/JXsAR1KIs=; b=XkJDGjtumpOUXZSM+YL4WhvyT/IcWFm1F05vYxNCUrCbp8F9/UErQ5ZEECV5Mh2nJe Hqs7ixhq+0uW3WJKUf0+ZhJRXSPhoSTpr3r2W95rrhygMZdQ5mlEvIwnhaGXbV+2yFht 6FQZnzbBF8qKNpNbjWqq3Wh3VfuocOa0b+Wbukrx+3WWi9rNg+ybYgmo2JSFTQ11zk5E MqeZ+XfAJela3kYeMzJcxJ8hoVKMCksjkOKMAZVWnmIwv4KFi8kFiD3Vj3pLjoLPHzr0 tiDQ2GQVRMPu1QHBpd8+YNxjziyKc7nXOAPWxG2kTnXSMKjAVyHyzBo3czUudjHqPu8h dYhQ== X-Gm-Message-State: AOJu0YxTEOyuGO3AxqXXN/nqWbdqPHrDBTnGhVb1bUO0SClwTnuxZjs6 nU1SHG9Cy30z1WC2F9PGm4YIfkjYgYd0wrN6ne5heUrL/65zjKbM X-Gm-Gg: ASbGncsRkUdgAhus/63U/qSG3tErm/NbPYPoopGrkyh5C5tM6I/HWwsbDk3XqTlrDgm j+5tLvCrkbz2voQoBdklO1SpwGuiU7AurD8Fd643/6spwUPV2CZTNu9E788PUScqyJiihBCcxeY 7uQbdyTXdkk/xuiWLIvMAl+z+t/Gpq3QPQ4ER7lancdzFo/uE/8eRfaecKJ5I3VoskdO3J4shpY aka4r6cfY9fpXa5iTv5SZXsLTDbCt78D7S2AR/+6dy4QGA/vtg1AvGWdy+0ow0vPvysrhyBWFv1 aJrIhdbpziv22nh68H1u+nv7aO/oV/EmoqkGnB/Cr36G X-Google-Smtp-Source: AGHT+IHtV9zVXvc1ICKdqfD0CMezopYDLOjlPFtRjtobiZt9SSgezz4xJjKP6ppBLPxOPBJHuaB1Vg== X-Received: by 2002:a17:907:86a8:b0:ac1:e1d8:997c with SMTP id a640c23a62f3a-ac252719297mr2734464766b.31.1741784860822; Wed, 12 Mar 2025 06:07:40 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac2929390b4sm572218866b.75.2025.03.12.06.07.40 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 12 Mar 2025 06:07:40 -0700 (PDT) From: Wei Yang To: rppt@kernel.org, akpm@linux-foundation.org Cc: linux-mm@kvack.org, Wei Yang , Yajun Deng Subject: [PATCH 3/3] memblock tests: add test for memblock_set_node Date: Wed, 12 Mar 2025 13:07:28 +0000 Message-Id: <20250312130728.1117-4-richard.weiyang@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20250312130728.1117-1-richard.weiyang@gmail.com> References: <20250312130728.1117-1-richard.weiyang@gmail.com> X-Stat-Signature: taq68gbeerdc7wdqn7ktpc8cdbum9zkw X-Rspamd-Queue-Id: A64C840003 X-Rspam-User: X-Rspamd-Server: rspam09 X-HE-Tag: 1741784862-556605 X-HE-Meta: U2FsdGVkX1//X6HGKAB/LDc79yCvvM/Av1AWoOxoY2Hw5Z7qSi3shsnPW22n/0n4IIaBgk1fqF/GZNYddBeDgz15h8Y25jvJ6WEt6OUtpuPm8nlLbbuHsCRbmncZhd/RQClLgn9FqobHkqpkhYa/taqywvWcqKEnGExrWEzwSsdT3xYIwPMHh0OGcIGN4ssEI304XYEPsLrXmgf4nKkKhIguehWA0ALwTHojn5fPfL6e9hx3Qq6An6BeayrH9QSAmktVKTZMzcUY2WxEbbFPNw6iKok3Nlk2p6TVoXgQJxnVD3bqmprqAGFprvFJBzISzbqPthE6Di6o9GRHZrSh7a1qNmYVOf2Hn6uwoLcI8j6VcUjUD0Xnaq3bqUPuxuevGRRyeVqkGZiieTPlVOiV80m53PdensDXXMdUDmYBEH9o8A6TqkmLgfmKSqJvIOLbk4dJhE/yywVgobYPiy/XL33KuU9wbJewgrSnDJVmAFfCE7bKyQf9Ke/nb+GuNdtmZJR9sMPTRf4Hx5yY/z1HMytiKvuniWuZSGRNmeOu6SNrnh05CJhH+qGptWhJDj153puLDDpbdqK0fs4+c2hQIf4z1su/xdvjESWr+0VuIpiR/FoxtgXYbIm/hwP1xQgiwgwZ5ee3Ebf60jupTyaT64fPHcqV+ZmGrDqSuuk49VAWkRODGMiCptM54m3Jm7PQOAHPOM2MMXNrqqvtCx4KhwTWmw1ccsKQp4Mtd/oOO+9KBw4HcphMfVL/qi4MinRu/IkJUT/AmuBfOasKhuGjUwykgOh3vC6UrGKnBhUFDN8e09JurTokbWG8gEg8Bdcu81/RHzMFUMwf5RKwdvfTad4kvnWY1Wjwm21wGPiRG448OKWLmuWRNg56QFsJ1RnqBCZ78zWe1cqi+V6oqHRAp+MTMvA2f2q12Xzlsz4AzAlhyso9bCctuzrZQ32600+w3v5CRRxNy9rvO23UrjU K7yiPs24 Fs4oNWneGovIr79IWTIMXlLRv5qQF6BpdnwLFSaX5tjs3D7M936en9SEQMGyDqBiRkHlm7ADcemzyOLvj0l9yp+mddNxzlg2/dOOhj38R3/Z7CZzDtKwo/NFPzgV0A9K9rKjgs/d7Cdxg9baR6uo4IGPIx+4OyFJtjlqo0XytssHBwff8dJZS6+6WzR+dH6bhowAGcCfGQSQ8mslFwpxSECLmdYjap6nd8kYjikxbX6Xz1yZ2rNp+O0wAwkOWcJZfKC8EfkfCZ3N5gvt89f4TZzA9IdhQUkaDgaEzJzN6V5IrEC+PpDICridmaoDrWjtJYXNMbH8PFc7Qf/9Dyb6zXB8F4yelP/PprhYHGLsPy5XbNAMvVF5TjxT/Xsq2rHc8LqOrBVr0aRU5+/H1hg3KuzmdULHj4YSGQukEXPfR+639VDcbjaehvjcaZ4nY2ZfIVZpkLddR0XJMLxfBxzD/ubSNV0jRL4LIn8a3+8wXe/AjFFrUtwhM3CVYh30FM/O2td8BdgV1fxmZvP+Mh/zDzsOzjlM9uv8HVey9zwtZ+P4nPRCcfmbFPKUJJw== 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 --- 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..45dd122a62a8 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; + 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: + for_each_mem_region(rgn) { + int nid = memblock_get_region_node(rgn); + unsigned long max = memblock.reserved.max; + + memblock_set_node(rgn->base, rgn->size, &memblock.reserved, nid); + if (max != 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; }