From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EC4BF2F851 for ; Wed, 22 Apr 2026 01:11:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.49 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776820292; cv=none; b=U2HxtMm3kYwJqyzBhWfIgk9+QoO0YiZw33MzUOW+g2taq7qrmjLv6Y93iRldqyid82oDYvGah3dVqmSEieFP7zCfSrKSEdCNftf9BPHbwzHx8Y3FNIHHFVzB8v5ER+ROmQ4Vks67tTg9xUZFuBHFYnsk/c5a6XOeFQTtTSEn5Wg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776820292; c=relaxed/simple; bh=qDzIx6B+S4C0/k0Pbl63ps4b/ArJ22Hh/pmT66jSWFU=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=W6upUypjTx4LvW1vpAHU3kkExy3GJI3CnD6V6YaOUer2sb0S0ivJd9SVk4S9TMNmNtvx9us/YliwTSNpReQVzXdgTa6lXvE6P5yrKqRM+grR34wzXKXrc+zP/BfZLA8H4kCL2ejdRWwHsVhqcVBl++3j0wAACVsFv6TQlNqCMLs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=W8lx2qJ0; arc=none smtp.client-ip=209.85.218.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="W8lx2qJ0" Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-b9e00649769so685430566b.3 for ; Tue, 21 Apr 2026 18:11:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776820289; x=1777425089; darn=vger.kernel.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=/dKQLlIMovlF4MngYnXStTFl6ju+hBStgqEHpripIAU=; b=W8lx2qJ0UHjtNfXCgTKqZe3Mh5iXJA1jJQiu7UnxdP7ic47g1QezpWeTmRGkhNRIo/ +xTs8dUXUORiz2eVtCcK1nP5ZISZ+wa2ulfou2YLNgUiZ7PxkM1NA7AZ16EQSzf7Ee0h YE8/nMK1ho5yYbI0aL3/dxwOrF6UoRGuuZMrULJ7vbxx3Vu1Blw7JVlvx3dSW8M4LeIA 7/Iz9f5WswGc7v0Q1xDOM4ceiSGvHt2ZP5B3b3zDAyqLvFu9KQbXOpMDUUdfpVqP9pce hzZdDyxdLuZMlK6D//oruQXQEyPGKzZJgiMFSJG7XaA6iEDo2w08l0RmjaINYucrEC+H aTpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776820289; x=1777425089; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=/dKQLlIMovlF4MngYnXStTFl6ju+hBStgqEHpripIAU=; b=gP6MA0S5GUHt9LUGP2IeadIC1U2Jqx/VTxXhSpogwT2Q64Dgn6Lo5IVACJTfv/G3fd 8hryg8QXYTh/jMgAFupaRFB9WCmumhMSokr7cfOtGXQVOH8FTzeO2GKkdssIgohFBEZU kO2N4G9V0iPbNjVNd2eOMhYuyaW3vdxtf+UcMPIDjvKCyPywgF4Pjh5OHx0lg8q3jy0m LJtRzmiqhLRMPRJcXwRGzdljFvUCXu/soBGG9d97L/fN5YxgSvR3UzNiwRSyhEMpurWR Pr+U+VMZfZzb61AbJKAGmx8qYZ1mGDfRnBHugw7mDGZSTq7K4yd82GJolJf+HkkJdvV6 sO0g== X-Forwarded-Encrypted: i=1; AFNElJ/ErctskC9qZnEt1/7U/2TyfRUB/ruXONb1gWIB7SWnuyvdLOda+FiWwsVQFlCQGH5H8rH/Kqb1VUgy5T4=@vger.kernel.org X-Gm-Message-State: AOJu0YzlnT9F+cHrS+MD4Nkq5j7o4lu9Y/DvYEFZeR6TBDt681wiudJb efsnB9bZQHdrkvWxGs+oSc71KiuLZjZYEWuPUA+eV5bi/KzDrRHuEMev X-Gm-Gg: AeBDiesj1pKrR6O4oFy1cw8Cg6T0zDhimwpYRUL9eijEbM2B+Q6MXcfskvOdVjG8lFX GojqZIvjeJGGQ1Kcxa2PUMe04imSg3yx/pEQJ4S0TkVIFkbvVPuDSYtI0d8Pi4pqp3AMiju5nT4 /GCHf9+RvAx+Apq9RCMgbmsyyyE1R2Y+VnyhiUMsjbOgZ6a8pTFsNYbzSYsfzSlt+sw/8ZPaVQ+ j1zUy9PkWaR+u3U7A71mk/Ca0xUEQvkkT1yi2CxuHny5CqkRuEjjYxkm26BXgA3QhyMGJ0wMULg s+27w9UCdYeAVlXd+8JBIiLtucfP9a9WOp/yniuuvWknA+p9NHW0w6zXNgY6M3H4tyrGri0SkAs GGcMkbyqkLdvZO040zdsw8jPs8yJ5dckdlFqmLoKJiL7qSTgRYDBssJN+Fu2P8CuwFo3g0T2Mbs bGqj8vRXwI5lQb76xIfe1zsooGvNj6/P6R X-Received: by 2002:a17:906:eec4:b0:ba7:79ef:8695 with SMTP id a640c23a62f3a-ba779ef8d42mr565070766b.49.1776820289152; Tue, 21 Apr 2026 18:11:29 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ba4520c93c7sm481983466b.27.2026.04.21.18.11.27 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 21 Apr 2026 18:11:28 -0700 (PDT) Date: Wed, 22 Apr 2026 01:11:26 +0000 From: Wei Yang To: Yuan Liu Cc: David Hildenbrand , Oscar Salvador , Mike Rapoport , Wei Yang , linux-mm@kvack.org, Yong Hu , Nanhai Zou , Tim Chen , Qiuxu Zhuo , Yu C Chen , Pan Deng , Tianyou Li , Chen Zhang , linux-kernel@vger.kernel.org Subject: Re: [PATCH v4 1/2] mm: move overlap memory map init check to memmap_init() Message-ID: <20260422011126.thu67icgj5qfbecj@master> Reply-To: Wei Yang References: <20260421125508.2317429-1-yuan1.liu@intel.com> <20260421125508.2317429-2-yuan1.liu@intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260421125508.2317429-2-yuan1.liu@intel.com> User-Agent: NeoMutt/20170113 (1.7.2) On Tue, Apr 21, 2026 at 08:55:07AM -0400, Yuan Liu wrote: >Move the overlap memmap init check from memmap_init_range() into >memmap_init(). > >When mirrored kernelcore is enabled, avoid memory map initialization >for overlap regions. There are two cases that may overlap: a mirror >memory region assigned to movable zone, or a non-mirror memory region >assigned to a non-movable zone but falling within the movable zone >range. > >Signed-off-by: Yuan Liu >--- > mm/mm_init.c | 37 +++++++++++++------------------------ > 1 file changed, 13 insertions(+), 24 deletions(-) > >diff --git a/mm/mm_init.c b/mm/mm_init.c >index df34797691bd..2b5233060504 100644 >--- a/mm/mm_init.c >+++ b/mm/mm_init.c >@@ -797,28 +797,6 @@ void __meminit reserve_bootmem_region(phys_addr_t start, > } > } > >-/* If zone is ZONE_MOVABLE but memory is mirrored, it is an overlapped init */ >-static bool __meminit >-overlap_memmap_init(unsigned long zone, unsigned long *pfn) >-{ >- static struct memblock_region *r; >- >- if (mirrored_kernelcore && zone == ZONE_MOVABLE) { >- if (!r || *pfn >= memblock_region_memory_end_pfn(r)) { >- for_each_mem_region(r) { >- if (*pfn < memblock_region_memory_end_pfn(r)) >- break; >- } >- } >- if (*pfn >= memblock_region_memory_base_pfn(r) && >- memblock_is_mirror(r)) { >- *pfn = memblock_region_memory_end_pfn(r); >- return true; >- } >- } >- return false; >-} >- > /* > * Only struct pages that correspond to ranges defined by memblock.memory > * are zeroed and initialized by going through __init_single_page() during >@@ -905,8 +883,6 @@ void __meminit memmap_init_range(unsigned long size, int nid, unsigned long zone > * function. They do not exist on hotplugged memory. > */ > if (context == MEMINIT_EARLY) { >- if (overlap_memmap_init(zone, &pfn)) >- continue; > if (defer_init(nid, pfn, zone_end_pfn)) { > deferred_struct_pages = true; > break; >@@ -971,6 +947,7 @@ static void __init memmap_init(void) > > for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, &nid) { > struct pglist_data *node = NODE_DATA(nid); >+ struct memblock_region *r = &memblock.memory.regions[i]; > > for (j = 0; j < MAX_NR_ZONES; j++) { > struct zone *zone = node->node_zones + j; >@@ -978,6 +955,18 @@ static void __init memmap_init(void) > if (!populated_zone(zone)) > continue; > >+ if (mirrored_kernelcore) { >+ const bool is_mirror = memblock_is_mirror(r); >+ const bool is_movable_zone = (j == ZONE_MOVABLE); >+ >+ if (is_mirror && is_movable_zone) >+ continue; >+ >+ if (!is_mirror && !is_movable_zone && >+ start_pfn >= zone_movable_pfn[nid]) >+ continue; IIUC, when mirrored_kernelcore is set but !memblock_has_mirror() or is_kdump_kernel(), zone_movable_pfn[nid] is kept to be 0. This means it will skip all memory regions. >+ } >+ > memmap_init_zone_range(zone, start_pfn, end_pfn, > &hole_pfn); > zone_id = j; >-- >2.47.3 -- Wei Yang Help you, Help me