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 42BBCC021B2 for ; Sun, 23 Feb 2025 00:22:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CA3356B0082; Sat, 22 Feb 2025 19:22:35 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C52AE6B0085; Sat, 22 Feb 2025 19:22:35 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AF3286B0088; Sat, 22 Feb 2025 19:22:35 -0500 (EST) 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 920696B0082 for ; Sat, 22 Feb 2025 19:22:35 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 904A91A1C12 for ; Sun, 23 Feb 2025 00:22:34 +0000 (UTC) X-FDA: 83149308228.13.7A08115 Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.53]) by imf06.hostedemail.com (Postfix) with ESMTP id 886A3180009 for ; Sun, 23 Feb 2025 00:22:32 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=mms3gvmO; spf=pass (imf06.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.208.53 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=1740270152; 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=b6kBdqL5Mv/zHgRCB8+EQApG54lUy8sBQC0RT66qpTY=; b=VIIdj4HefRcInm1SlTH2w3LWRkocGspyLgKHhzKYS6PRhvxQzhiO1fS9U6Wf94zmu0iY7B x/B4vDhS282zyOgNJxMmxDmhcN7NoATD2NRUa+EThMy3SJYceAZeLCilxlqLpqmqoTFcFH kD9nF+G0p4xWfcL//LU2Fi2eWcRQ34w= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=mms3gvmO; spf=pass (imf06.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.208.53 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=1740270152; a=rsa-sha256; cv=none; b=aE0KoESRV8dzz0ugXPSyhuNqFEvRFHENEOdR1tESS9cJ/GG0MaQUK8/h0PvN26n96uTCQz S29tIbbt5BFZCqBkABodE9M+HmNnw0ryBtWb9fobG8MdeNjLe2KqlzL5gcIji0OtjIiAno Vi78IpmGOpCt3O3s8F6HxI7+996Pl3w= Received: by mail-ed1-f53.google.com with SMTP id 4fb4d7f45d1cf-5e0b70fb1daso3363404a12.1 for ; Sat, 22 Feb 2025 16:22:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740270151; x=1740874951; 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=b6kBdqL5Mv/zHgRCB8+EQApG54lUy8sBQC0RT66qpTY=; b=mms3gvmOJ5MU5z3Ph2SyRGuuX91gUCjikvtMBpAqEGmX/ffDxFZWLgQguuga5GJTQT MmPbMzwmPhhlI+5+GYbrB3JgwUvfesBYBKSWQWIrDXqaKJ9noVrLK62aYq4tgkoi/Yc0 a2ZGElsBYSiDFeDTc1aK3uq6hqvWLcDXsmKG9ZdBTiWebWStAMAZL+0RwGHSt0tObkYJ 0Rs1pPqKQ1Ul8D3HRJMhrN2K9rftDufVvNxlzz+PkBHUNxOCUdJkufi7Sr4qP5ILeA7f tQkV0WBooktKt3I8bF81U24YaFc+cIljvbq7n+v7hx+LRQuo4EnBgjEocXU4MGt36zaU Scsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740270151; x=1740874951; 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=b6kBdqL5Mv/zHgRCB8+EQApG54lUy8sBQC0RT66qpTY=; b=g6oUVDGkQ2YIaoR238Rw+GRNFKnqqOF7OS/cPoahMg0tmFwy0AUm3J+VBeTwtHPZUW dDpYDfSAAmNGfdGpHTxb0zBSbWmTpNNTgn+O8kNyr8Nf17vPUFmc8fbmzmHbq++gJ4E8 cTclxpDApvzM+nhoX0k1pGewot90qojenC2heCAmtsA0k4mMceh4hiBE0j9RyKVxKHGa D11f1PJurtVTJmbjZ7ReXMP3+8pzZra4V+6ypAQKKvkQd2dsev1fmLJI0BwkpzL859Po hp1RyADgLekPuWRRfAfp7H5VD6iS6eD6yC75MzsXT8Cw49foTZGgT+YreL8AXBj59wFR Z94w== X-Forwarded-Encrypted: i=1; AJvYcCUkxmUOpPSKgOst+1n6W3d19/WdqrsTeDTr+Dm7EMFhuA8VbFEqMk5ITu0/0KLVJnMbnZ5LtDLisA==@kvack.org X-Gm-Message-State: AOJu0YxNmTT9+lXBV+iEv5iYNjDy24A1ncc5wKy5gpeL0aZoPWr8r5Lg pXmD50WYD2Sr1swoKDvmG2DIjkUThCdkdae1uX2e+V50g8p/03vX X-Gm-Gg: ASbGncvxQ00WbjVoIuV33yLyE/SrhZsooMwyoH7ax5+wMrNGyeonLKa8MFODhtpxAMh iQXCNeQErIw4tkkkuxh9iaY80/y9B1guyJ8XWIls5yoAjjqYuH/pflVgCdsivn++h2iwgFPIUVw doH3JvTDUtGJnwNgWOacDNkZOKeEYygd6M0HFgTc4eDDZ8Zjs/Cq8G4kRnRKoMQZQCvogkLfNbS V3yssnA9JhmU1FTPdM0zTLYQ+czgjmMg7iDx8f1AU9MdRPApMQ37mXbWVp8j4+ucQLSttl8gj3j cAHhwm2K9HNimuYGanEHtPc42w== X-Google-Smtp-Source: AGHT+IHi6/1q2H/JzaBPY2EM3gZK+t9ZOl1hJ37YMXiB93ksHODnJQh+Uw5lQW63dWTHlum7aHYuYw== X-Received: by 2002:a05:6402:440b:b0:5e0:4064:add6 with SMTP id 4fb4d7f45d1cf-5e0b722d3e0mr7683404a12.31.1740270150552; Sat, 22 Feb 2025 16:22:30 -0800 (PST) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5e09072247esm6510575a12.51.2025.02.22.16.22.29 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 22 Feb 2025 16:22:30 -0800 (PST) Date: Sun, 23 Feb 2025 00:22:29 +0000 From: Wei Yang To: Mike Rapoport Cc: Wei Yang , linux-kernel@vger.kernel.org, Alexander Graf , Andrew Morton , Andy Lutomirski , Anthony Yznaga , Arnd Bergmann , Ashish Kalra , Benjamin Herrenschmidt , Borislav Petkov , Catalin Marinas , Dave Hansen , David Woodhouse , Eric Biederman , Ingo Molnar , James Gowans , Jonathan Corbet , Krzysztof Kozlowski , Mark Rutland , Paolo Bonzini , Pasha Tatashin , "H. Peter Anvin" , Peter Zijlstra , Pratyush Yadav , Rob Herring , Rob Herring , Saravana Kannan , Stanislav Kinsburskii , Steven Rostedt , Thomas Gleixner , Tom Lendacky , Usama Arif , Will Deacon , devicetree@vger.kernel.org, kexec@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Subject: Re: [PATCH v4 02/14] memblock: add MEMBLOCK_RSRV_KERN flag Message-ID: <20250223002229.xuk6xlp23zr72hkc@master> Reply-To: Wei Yang References: <20250206132754.2596694-1-rppt@kernel.org> <20250206132754.2596694-3-rppt@kernel.org> <20250218155004.n53fcuj2lrl5rxll@master> 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-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 886A3180009 X-Stat-Signature: dtuuoo8r4erb3izdngkwybea7oi9i6wj X-Rspam-User: X-HE-Tag: 1740270152-714519 X-HE-Meta: U2FsdGVkX1/LNmZNjUZa3HHEgvRIDs5sv9PRVyhn2+yPBfwmKet+3oR0+4tpMxS+wn36bLsYFQyJcHFpU4VJwweh2sliEwXFyJz/DHLVwILY7XJyRUch8g/4cnbrQjygGD9BwykYYN8DNicd1EmYp0ail8HwlXp7Eo6nj1DsMR+24E4ViVX24FREZZRqw+bDNsj64zjYa8MkD/GAN6kOExzFw3XisbNfv+nEt4sTKb2PzDR5nETccqAKzRxhwK2GuC2TQ6njQd0FOEItpItdkFHFVcliCQJuW/i/X1B5n4QtwxNMkeJ+Qnx2M5qHD39ZQsyDaw7AwF0va8j/ywZTISA95/69f6VQ7SEnlUJInj5qiVHSZGr/Bqhf5b98IWyuIuWUoolGhECC6zCygZ0VFHfpawF3OetP7j3MLDoGNxaPZyabx49dXZ9m6ZGkzV8PmwdCEr/z76PF9BFmlshLG59Cm4QlLzAfs3a6fJS7OP0h0gCTsvFEVy28dMCIVt9RSmEAxsF7YmLNJLo4LmG08+usHCxYk/FPJn+yQUGUhYk3JF3zuOdQ+ZdT+1UCqdaJP0nJxjYfyM5IqzY7huqDxu1GsM48ICX3+oj7IBdapJLecbc+Wx/pg5kedvb+SP2QRfmoYs3TAgxt2n5759e8xUktGvQ1qzg7Ufz7r6Y6v+YSk6Bt2jIk9Ns9KybWC2RMIHpFZJZRrmFNWXPoSRM1yCL+GWAtAnLysL38FSLXHB29zmoOnV4FptkL4MTWQyxCpsrDoFmXe1X3LS2WZ8dnw9p4aJQsJfF9ti+Z4ErX+UWwWkXqJ3wAcchC7oYEZ6xHvCeuI+2OTH4MMTJcfgJ2yA+jBWIBTqxc5+kxpBeph2iOWw89nvnVqQ+qoBe99BaC+U5xgvDKal5fn47IDpHpXqq9gfOgkwi/O28n/HwLTAe/zCgiyhGLE3pf2rChf39fru2hk3tmpOg/Ci0CEyQ qBhEGneE FOkycVgFvRC9dIsYAoZHh39hLml7wTzMzbAeKVPYlhPQIgCj7sO/GKoIZy2D6TOrkMxpU5A3G0O1ooMNo08W9fz1nsBEdxSL7DgFZvtToYC7ArcrCOuz2Mej2ARt5oUeyR1xzUBX7wuStSPQvIpHvqtnFYrYH6jOnDzd/iB93oAWJs+T5OrgZEfF9hoOMBoRmazX/mx+fxDin6Af6YD/GRixrCH1PRneVV5TKb2SEuXZo6hFt//cUz2WY2OsEu66319a7kKMADXw84Iqdt+T62In/cE+7dNKV9df6t/Bkscd8UvymkKtsg/+fWpK4M0Cyj1TbgA2TbMYSSeDIM+ztJBQfiHYiVyMtmKeqRFqTd6/czW2pRl95Ym0GR32IQkV5PNECit44sCbkb5CXXx9duPawGw22twKKo/QIXv6kzf4CtzSdbv/0DomyxV4P3egAPNHPLBARmXM2p34GJ7BQewmh6ZUbmZqCiTV/PyDVTGsj9KJVpFESa3dTOm+djQHTF4stkQZclv+kFkeU2LZ5zZ7Z2SVMbvmI2jSkI5d7gwnP8Ihl+AdL1ibaZUC60+RmdoDBDtmMfgr6kxK4kwd/2RaZgRSYmJHG03rqkLfnNQmREgm1tjDI0c15hktJ2S+1TID5EBHvzcHE4grV+TVNEJeTbjLMiM1by4IGiGjqGuR6JvxbfLHfpgcdZfOxOeWPXSPuZHbWx+19X3Do/jHL+Zw315S5DicRHXud4Q3dXKTak/PokYKJ6JHSBw== 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 Wed, Feb 19, 2025 at 09:24:31AM +0200, Mike Rapoport wrote: >Hi, > >On Tue, Feb 18, 2025 at 03:50:04PM +0000, Wei Yang wrote: >> On Thu, Feb 06, 2025 at 03:27:42PM +0200, Mike Rapoport wrote: >> >From: "Mike Rapoport (Microsoft)" >> > >> >to denote areas that were reserved for kernel use either directly with >> >memblock_reserve_kern() or via memblock allocations. >> > >> >Signed-off-by: Mike Rapoport (Microsoft) >> >--- >> > include/linux/memblock.h | 16 +++++++++++++++- >> > mm/memblock.c | 32 ++++++++++++++++++++++++-------- >> > 2 files changed, 39 insertions(+), 9 deletions(-) >> > >> >diff --git a/include/linux/memblock.h b/include/linux/memblock.h >> >index e79eb6ac516f..65e274550f5d 100644 >> >--- a/include/linux/memblock.h >> >+++ b/include/linux/memblock.h >> >@@ -50,6 +50,7 @@ enum memblock_flags { >> > MEMBLOCK_NOMAP = 0x4, /* don't add to kernel direct mapping */ >> > MEMBLOCK_DRIVER_MANAGED = 0x8, /* always detected via a driver */ >> > MEMBLOCK_RSRV_NOINIT = 0x10, /* don't initialize struct pages */ >> >+ MEMBLOCK_RSRV_KERN = 0x20, /* memory reserved for kernel use */ >> >> Above memblock_flags, there are comments on explaining those flags. >> >> Seems we miss it for MEMBLOCK_RSRV_KERN. > >Right, thanks! > >> > >> > #ifdef CONFIG_HAVE_MEMBLOCK_PHYS_MAP >> >@@ -1459,14 +1460,14 @@ phys_addr_t __init memblock_alloc_range_nid(phys_addr_t size, >> > again: >> > found = memblock_find_in_range_node(size, align, start, end, nid, >> > flags); >> >- if (found && !memblock_reserve(found, size)) >> >+ if (found && !__memblock_reserve(found, size, nid, MEMBLOCK_RSRV_KERN)) >> >> Maybe we could use memblock_reserve_kern() directly. If my understanding is >> correct, the reserved region's nid is not used. > >We use nid of reserved regions in reserve_bootmem_region() (commit >61167ad5fecd ("mm: pass nid to reserve_bootmem_region()")) but KHO needs to >know the distribution of reserved memory among the nodes before >memmap_init_reserved_pages(). > I took another look into this commit. There maybe a very corner case in which will leave a reserved region with no nid set. memmap_init_reserved_pages() for_each_mem_region() { ... memblock_set_node(start, end, &memblock.reserved, nid); } We leverage the iteration here to set nid to all regions in memblock.reserved. But memblock_set_node() may call memblock_double_array() to expand the array, which may get a range before current start. So we would miss to set the correct nid to the new reserved region. I have tried to create a case in memblock test. This would happen when there are 126 memblock.reserved regions. And the last region is across the last two node. One way to fix this is compare type->max in memblock_set_node(). Then check this return value in memmap_init_reserved_pages(). If we found the size changes, repeat the iteration. But this is a very trivial one, not sure it worth fix. -- Wei Yang Help you, Help me