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 0291DEB64DB for ; Sat, 17 Jun 2023 08:13:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0CDB86B0072; Sat, 17 Jun 2023 04:13:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 07D426B0075; Sat, 17 Jun 2023 04:13:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E869A6B0078; Sat, 17 Jun 2023 04:13:29 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id D5BB06B0072 for ; Sat, 17 Jun 2023 04:13:29 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 99567A0ED7 for ; Sat, 17 Jun 2023 08:13:29 +0000 (UTC) X-FDA: 80911525338.04.14B84AF Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf26.hostedemail.com (Postfix) with ESMTP id DD81014000B for ; Sat, 17 Jun 2023 08:13:27 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=PziBb3RG; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf26.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1686989608; h=from:from:sender: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=GFkWI8eZDjg3R2E9KezI1RkiAJBM5do6ylt0yqnazSk=; b=exwvg7Gsd1jLVUF1W1gfoLnGjEfNUk6bbdOVWH10UpUviKVuv7ThyEhO6t0UsoExCZZZiJ Zj6+EnRlylatDrWjAxbMK5VPX0/UfatAiyg5uOsnkpEBlj/JaqW9DW/Yva4N5ZvlZMPvRq BGs9JekMJNIFCmFc05HBWute0B3pRsE= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=PziBb3RG; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf26.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686989608; a=rsa-sha256; cv=none; b=ZFTu6lwYxdaLCIAB8s3q9ys1QE7UAEG2JWRJZ0BsqMxFGk+2cqb1pmtqTK203Jb0Ffn3cP w2B0gTKzrJ6bNXOHlAkocUBKCHwuJmm1nnFtd8OZnbHcZ4ntcAAVh+Dsz/gpYxSCJ65xb1 e4NhwWvh4UiirqH97dxevBF1x7kZEgo= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id DB4766119C; Sat, 17 Jun 2023 08:13:26 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 31758C433C8; Sat, 17 Jun 2023 08:13:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1686989606; bh=eqvHCNCeMkLO+EgkoH/FKPeGp52JksulsjVREFCIStM=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=PziBb3RGhjIbGfqlYcJJJtFxRE498w/GDvXEFBfRRKD1Ws4mXivHZm0W7KFzfV+04 4zKOUC2dmzkHXRmOr/m3D74vXXn1DhEnqh6cqfSDOiq9c2XIxGWmSBG65iz9lmtQp+ a/Z5fScLRoVEc8SJ+hc254tXJ7WqxOm6OcFHYBFrxu0Sx3AjzU13tGVQFzjlStqDCX b4G53ZibgVUFCLEs7JI3Y5JP9+rTrGjS+6h9xoh074b9aAAJ8oIopZiYm7vWQPqFJN AqgU1Y4FIm+Z02CsR6UyfKvcuTNENkafvXN9IGk/1mixtq545XjuMZx2O3aMPhx/kt NqGGLykwJLOZw== Date: Sat, 17 Jun 2023 11:12:49 +0300 From: Mike Rapoport To: Yajun Deng Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel test robot Subject: Re: [PATCH v2] mm: pass nid to reserve_bootmem_region() Message-ID: <20230617081249.GW52412@kernel.org> References: <20230616072247.GL52412@kernel.org> <20230616023011.2952211-1-yajun.deng@linux.dev> <5ba9ad9bedb2fd3fb96571a778fc35b5@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5ba9ad9bedb2fd3fb96571a778fc35b5@linux.dev> X-Rspamd-Queue-Id: DD81014000B X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: p6qa3d1i73x9gs6hkb794z66zdrortbp X-HE-Tag: 1686989607-305219 X-HE-Meta: U2FsdGVkX1+WYxwMu/mpFqqMlsPaFfdvkbigT1FeyCd0zCM4XAJXLVMBYwWzcwd11yHUmxVWlfxHppYkgPRJAFfQGZaHCcg1gkvXUdrz5YmbwetMa2mECkbOYpWm+LkQSeJg710IC9jtiSjif12shwyUm5P2AA7oIv8fOG0EdW90+taEU9DK3XMWpsJ2yIVAGQntX1Sx9k8JFt62SNlEkg6RtMzAMjk76xFzf/CvKMwXOHllu4zRn67C/Vz9tOnJmiZXbln9hueExSUTZezJpaDXwnYkyL/nCq0XZYHwUGgFUwmCRHqFc2F3v8vM69z05tfSazF09lhSQURVXO3y4RsWkzsPO6yQuhEonDgj3Xm5uJlloLZIzc14TP45R4IfjU/NIHoINTIVHbeSlhywfOWqkpNARlt/R0KXcq0ngUkbR9npnDPYQuR1d2QUuWfldStDDtou79MK72iMH1SSeorsMkCYaKhS0Z6KjhJD50WMcvXmMeLsdA+rnKlinqX9F4c03nMm9yQg0STgRldsdrHwmwsI0fKqhS7iJO69WU7ZERYuVcBsmVwO5m+MNC8EMtc9WoMVa/i+BJQhiEGKM5kT1HJUet9Mzwhn7w7dCX5JPAcy+RltABWsyVsXlLFSPrKe24ly+GudSNp+DZjkLYsSGRwiHif/m2Ur8qJiPBYRFenCX/tt+zeywQT6otyKsaokzUiWMHpIr5cpdVpS3n8bKS8Y/j4SKYTFk8FXD9+SVjxNxV0gNvOcjbIGuMR9YuieZhtU2P3374XPwO+wXHSZGiSdNO8VNc613j6u6sd1BysKEji/ZdzDvugH+2VDRcD+tiRzusNW/jsowTfzOCKqVA6v/uIrN+ha83KxhqxBrCQgicAkcThQgdg9DI42GlZrPvZyioNLcKTtL9mjeyOclQOI3TD5gSuwQp0+LAO428hYhTyO/3D/+aMLbxt5Lj34GgC/DJ81r+3qbgj em73TRVH KJriFWASXW6qhQ6I9fLhL+U2XaIUhj+/U9yzW351wzw9W6u138xDfert3HiKRuwgyuTezjHl46qgVfRwoXMktgzcD70/h19JdKRpE5MnaSHHfvJ1bfiN5rEOszK5HHe8BV3oSRIJNgUOWU9/6DSL/KmIAWuG1vYXkdRtgLWRmMF5HMZm2x3gwEUFXovmTAaHB3JYFHMEOlo3D1ctRxAs0WSKzNU9rdblK+mNKgpY95nNTyyo0NOlhqwP5N8ALZYtp52JBlfgD6yoi+AIzQyl9ug/nTIwckLlWGLp90Lb/huWErTdiKN3Shvs0zIcqMPSo9wGOcbwzd4fwlHhYY3nuqozVRs3g52hry3frPH3XT6WIshWDOyHucQk0MPh31DGDa0pdTP6MRO4x8yQ= 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: On Fri, Jun 16, 2023 at 07:51:21AM +0000, Yajun Deng wrote: > June 16, 2023 3:22 PM, "Mike Rapoport" wrote: > > On Fri, Jun 16, 2023 at 10:30:11AM +0800, Yajun Deng wrote: > > > >> diff --git a/mm/mm_init.c b/mm/mm_init.c > >> index d393631599a7..1499efbebc6f 100644 > >> --- a/mm/mm_init.c > >> +++ b/mm/mm_init.c > >> @@ -738,16 +735,20 @@ static inline void init_reserved_page(unsigned long pfn) > >> * marks the pages PageReserved. The remaining valid pages are later > >> * sent to the buddy page allocator. > >> */ > >> -void __meminit reserve_bootmem_region(phys_addr_t start, phys_addr_t end) > >> +void __meminit reserve_bootmem_region(phys_addr_t start, > >> + phys_addr_t end, int nid) > >> { > >> unsigned long start_pfn = PFN_DOWN(start); > >> unsigned long end_pfn = PFN_UP(end); > >> > >> + if (nid == MAX_NUMNODES) > >> + nid = first_online_node; > > > > How can this happen? > > > > Some reserved memory regions may not set nid. I found it when I debug. > We can see that by memblock_debug_show(). Hmm, indeed. But then it means that some struct pages for the reserved pages will get wrong nid and if they are freed we'd actually get pages with wrong nid. Maybe it's this time to set nid on all reserved pages with something like diff --git a/mm/memblock.c b/mm/memblock.c index 3feafea06ab2..fcd0987e2496 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -2084,6 +2084,14 @@ static void __init memmap_init_reserved_pages(void) phys_addr_t start, end; u64 i; + for_each_mem_region(region) { + int nid = memblock_get_region_node(region); + + start = region->base; + end = start + region->size; + memblock_set_node(start, end, &memblock.reserved, nid); + } + /* initialize struct pages for the reserved regions */ for_each_reserved_mem_range(i, &start, &end) reserve_bootmem_region(start, end); > >> @@ -2579,7 +2580,13 @@ void __init set_dma_reserve(unsigned long new_dma_reserve) > >> void __init memblock_free_pages(struct page *page, unsigned long pfn, > >> unsigned int order) > >> { > >> - if (!early_page_initialised(pfn)) > >> + int nid = 0; > >> + > >> +#ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT > >> + nid = early_pfn_to_nid(pfn); > >> +#endif Please replace #ifdef with if (IS_DEFINED(CONFIG_DEFERRED_STRUCT_PAGE_INIT)) > > Wen can pass nid to memblock_free_pages, no? > > > > memblock_free_pages() was called by __free_pages_memory() and memblock_free_late(). > For the latter, I'm not sure if we can pass nid. > > I think we can pass nid to reserve_bootmem_region() in this patch, and pass nid to > memblock_free_pages() in another patch if we can confirm this. Fair enough. -- Sincerely yours, Mike.