From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43]) (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 847352CCB9 for ; Thu, 21 May 2026 03:33:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.43 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779334389; cv=none; b=LPyG2K8FKOgOT+mWD3r6yikU9TMBJyxZXWFajsbQ/5LbkgJg+ca9VlAE1400++BO8fyiUjcuvtwiMGMRBowhqHijEsvgQR7j/bhm+zAVWCeJQtcTAG0NI082InlJZtHYMwohro8OHU20Q5Y9JjK/41D0OzmTodqK8ALIdP8cyv0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779334389; c=relaxed/simple; bh=CTJVLZ7EF7qZQfVrbYYx/hEwYav2KsGlrDfvc11yHYw=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=LoUDz3Tms38kVJYx5f9K8IXTXH9+JSBYpQtRP3xYFUQhrijD3DH41SGQ3y13JBk2IH8XCMPA+UenYUauHgTo1c1ORq6ha0O2NgFZ1kEApi43eb1o+de+SD4y9291+sqv/oEOucFp28UaaiM84qMvAE4RyF6Qe8vnGyQSGZP0vvU= 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=JgMTAiUg; arc=none smtp.client-ip=209.85.208.43 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="JgMTAiUg" Received: by mail-ed1-f43.google.com with SMTP id 4fb4d7f45d1cf-67cac5ece75so11325294a12.2 for ; Wed, 20 May 2026 20:33:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779334386; x=1779939186; 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=uLsSWCAJMatsJJglI8Dr+/M1gsP2NlCoju4XiTRtItA=; b=JgMTAiUgE8n4cy1WKSIsxXwlWtcL1prNDCl/DmbUZefKoUO46FI5Xa8P5Rq7AXU/V5 1dTBgSkQSILoGX7xISUCM9uQUekgrkMeFtcuYpj/c/sCU4vv+uKm7nuzQA5L0ieSmqew W437pUVqY/evkTX33P5c1zxivT3AAWCoXcMEUw9NNFtn1KB+C+J2dZTYzuX4Pt8A6NYv +fJGAKSL2MLwIrT37/C+pzWq+omz/7v9KUo/LSTDWOJpc1AAFsFbmvRymfUIB+iIXgU7 +z0j8pzIAwLyIew/XfxHUg+5MyfrhQL5TeB1NWMvebIF4MqQKWVnbHR2BuIRhM/4i0ay GTvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779334386; x=1779939186; 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=uLsSWCAJMatsJJglI8Dr+/M1gsP2NlCoju4XiTRtItA=; b=C1IKDRI/85nZIVxYI9pvf+HKXnZ3Wjr7XOZThpxvh3cywVUulCBuK7H1xlHgtp90fF iwvFwtbTFcB2tmI2ise/N5N0mX2ET5J/4xYEWvxkgOVqjPqAiFxfQWZsDYiq+k0DQ7Hb 30z1Fuaa24IRg0QDdG5hezbrAyV3BCqbMa0UyhWk/BoEUBp6KnoHntCNNbNUmPmjjgQb V7/ZnSBrUkiQm7ix7j8wFIl2iTrAgnZqPfXTKAFVtQp5ogWq2OxFvRKJ4sagim7W8MDd mWb4vIu4MeFs7BmTuD92vbePfMXhaa6XEc9MXnCJG9qIXd8qI6+KVyaxW9ju7F0z6uGK QocA== X-Forwarded-Encrypted: i=1; AFNElJ+fCG+bdxtpSy0g5YDj9AoIiVEm2Odf8FbreiWEbB4W80RhRBX1lwyqgB1gnzsOaNTSEKS1hZfyRFnPE6o=@vger.kernel.org X-Gm-Message-State: AOJu0YwOqJLFOThbehOfJcS28KHazrS8FAemmPuqXkmzvk1iPYPGHMIf OVOn3+oJZ6Un5YL4dkuGvIEzFsRKAM8uTxtmjqzJPRIkaGxC8vufTibG X-Gm-Gg: Acq92OEd55TC9GgL6yU3eD6kEchCkLNPlRqtNpGAj98IafXYKuY1ax4jQK0Gsqz/kaI hvkV1PALiZ7lu4rRB4sZ5taqrxTRTcbaJQBen1aba9BP7cWvRrluKVFSR6shf6Z1Utcpb9QtFMH 12j7EFhDKHilymAQUgJ4qlHrrVZdzKeQGjlglmJdaLChEGjUxTJHAIX2iDjch1c2KE1HfsPJFdi pWTUK6QTmtwG9l7Ur1ZqFpOXiPQO4C2FeguXPls+HG8ILxiXfEXwzfBL5Yzy3E9RJSXZMZxlUDC psD/emHJ97Vj9vxuq4rUhXjqmHCLcC+4Qxp6sEY5cTLmtL+vVzfD5s2FZnb5s/+8SnZ0QCdqRZv VGHUi/3zwESbU7olUUtVnJ2h0nmqbbLRDuPJz4QeamtHa+64pdYkGZd+JnIupmYhn/iZhl+ItLp +9JDxrYcFX3g90sCiBT0QEnw== X-Received: by 2002:a05:6402:2343:b0:687:325e:748d with SMTP id 4fb4d7f45d1cf-688363dcabfmr376916a12.17.1779334385781; Wed, 20 May 2026 20:33:05 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-68311670a00sm8382754a12.20.2026.05.20.20.33.03 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 20 May 2026 20:33:04 -0700 (PDT) Date: Thu, 21 May 2026 03:33:03 +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 , Jason Zeng , linux-kernel@vger.kernel.org Subject: Re: [PATCH v5 1/5] mm: move mirrored memory overlap checking to the outer loop Message-ID: <20260521033303.7jg66h4sxwi4l3cm@master> Reply-To: Wei Yang References: <20260520093457.3719960-1-yuan1.liu@intel.com> <20260520093457.3719960-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: <20260520093457.3719960-2-yuan1.liu@intel.com> User-Agent: NeoMutt/20170113 (1.7.2) On Wed, May 20, 2026 at 05:34:53AM -0400, Yuan Liu wrote: >Move the overlap memmap initialization check from memmap_init_range() >to memmap_init(), and replace the per-PFN check with a memblock-based >check. The description is a little simple. Even I know the purpose, I feel confused at the first glance. > >Reviewed-by: Wei Yang >Reviewed-by: Jason Zeng >Signed-off-by: Yuan Liu >--- > mm/mm_init.c | 29 +++++------------------------ > 1 file changed, 5 insertions(+), 24 deletions(-) > >diff --git a/mm/mm_init.c b/mm/mm_init.c >index f9f8e1af921c..24e103a402b0 100644 >--- a/mm/mm_init.c >+++ b/mm/mm_init.c >@@ -783,28 +783,6 @@ void __meminit init_deferred_page(unsigned long pfn, int nid) > __init_deferred_page(pfn, nid); > } > >-/* 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 __meminitdata; >- >- 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 >@@ -891,8 +869,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; >@@ -956,6 +932,7 @@ static void __init memmap_init(void) > int i, j, zone_id = 0, nid; > > for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, &nid) { >+ struct memblock_region *r = &memblock.memory.regions[i]; > struct pglist_data *node = NODE_DATA(nid); > > for (j = 0; j < MAX_NR_ZONES; j++) { >@@ -964,6 +941,10 @@ static void __init memmap_init(void) > if (!populated_zone(zone)) > continue; > >+ if (mirrored_kernelcore && j == ZONE_MOVABLE && >+ memblock_is_mirror(r)) >+ continue; >+ So you have figured out the memory layout of mirror memory? Would you mind elaborate? > memmap_init_zone_range(zone, start_pfn, end_pfn, > &hole_pfn); > zone_id = j; >-- >2.47.3 -- Wei Yang Help you, Help me