From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E7A8A3C7E19 for ; Wed, 20 May 2026 09:35:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.19 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779269724; cv=none; b=Metuw5PXgAs4M/+Nyr8wLdYLfVQ+rUv6dn54X8EZr95ca3ngW4Rkh5SsX3pXH8UBKgbacqdA6bxCbjJ2/tUwSmw/M401PGOn5deLik8kFheykGTGJLaZMK7xkvEEnT7lLMbMVJgqU7iQMVaFgp7/arwuhGh9YACzq+rwRAuv/zg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779269724; c=relaxed/simple; bh=6ohoYsGOhjBP3A4hNjgXYU3ZasHnjBPl+8YWmnesUfo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jDMZaqi042dnMNcKHFv6DVkPh2VddgGxXSdxEpXglby1pwpEtunDd18uwdT3MN5K0a4hBNeVjKFhsJtsTgswyV1ETzN2dhcAURU0PbJds+UvRFAuMvS3ULbYqe7JREYHhLi2ZwrC1h4Wf16aGJvMFpvSPUewyt7kbCd8w7/dZ0U= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=mu+OIuz9; arc=none smtp.client-ip=192.198.163.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="mu+OIuz9" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1779269722; x=1810805722; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=6ohoYsGOhjBP3A4hNjgXYU3ZasHnjBPl+8YWmnesUfo=; b=mu+OIuz9IT27iqgkiXc8LvFCp3bT5i6vU2qpiMIgzeWDN2O3w82sIKRz Z63I9pvySq8/zpXyMeATZA3eUq38VX0xEuG4vEi1bzw5zCesOE/u3M7eA lJumVcu56bm+Fr7SL3QHRkiip78ghVHz4m+mwNqTAb4LQqDlT6SZDQZev vPFyJBvTETRdr6rIFZnBNn/hA7BRG9N6tucynovMawBn/XH5aE5VBdhGU qb4Nu3kQjFFUVsEkfeoSuUledx07vPz+7rQfKRS9JC44O7jbuRHFs13px bnTyrZzG6pXXhQO85apx0Am/MP1P0fTBmtxspmdmG4ANFOJOzELS2JFYH A==; X-CSE-ConnectionGUID: YtjP8j67QPmLIGEryhdQGw== X-CSE-MsgGUID: M4cQ6O8iTJeq3z8tymoQWA== X-IronPort-AV: E=McAfee;i="6800,10657,11791"; a="79187298" X-IronPort-AV: E=Sophos;i="6.23,244,1770624000"; d="scan'208";a="79187298" Received: from orviesa001.jf.intel.com ([10.64.159.141]) by fmvoesa113.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2026 02:35:21 -0700 X-CSE-ConnectionGUID: vfvG5KIgSrK0SiSF4N0twQ== X-CSE-MsgGUID: JQszQG3USpew1dD8Mt0OkQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,244,1770624000"; d="scan'208";a="278207294" Received: from spr10.sh.intel.com (HELO localhost) ([10.239.23.75]) by orviesa001.jf.intel.com with ESMTP; 20 May 2026 02:35:18 -0700 From: Yuan Liu To: David Hildenbrand , Oscar Salvador , Mike Rapoport , Wei Yang Cc: linux-mm@kvack.org, Yong Hu , Nanhai Zou , Yuan Liu , Tim Chen , Qiuxu Zhuo , Yu C Chen , Pan Deng , Tianyou Li , Chen Zhang , Jason Zeng , linux-kernel@vger.kernel.org Subject: [PATCH v5 2/5] mm: skip non-mirrored ZONE_NORMAL memory map init when kernelcore=mirror Date: Wed, 20 May 2026 05:34:54 -0400 Message-ID: <20260520093457.3719960-3-yuan1.liu@intel.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260520093457.3719960-1-yuan1.liu@intel.com> References: <20260520093457.3719960-1-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-Transfer-Encoding: 8bit Mirrored regions are already skipped when initializing ZONE_MOVABLE, but overlapping PFNs can still be initialized from the ZONE_NORMAL path when ZONE_MOVABLE is present on the node. When zone_movable_pfn[nid] is set, skip ZONE_NORMAL initialization for non-mirrored regions, keep skipping mirrored regions for ZONE_MOVABLE. Reviewed-by: Wei Yang Reviewed-by: Jason Zeng Co-developed-by: Wei Yang Signed-off-by: Wei Yang Signed-off-by: Yuan Liu --- mm/mm_init.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/mm/mm_init.c b/mm/mm_init.c index 24e103a402b0..2a5ac175d5dd 100644 --- a/mm/mm_init.c +++ b/mm/mm_init.c @@ -941,9 +941,18 @@ static void __init memmap_init(void) if (!populated_zone(zone)) continue; - if (mirrored_kernelcore && j == ZONE_MOVABLE && - memblock_is_mirror(r)) - continue; + if (mirrored_kernelcore) { + /* + * Avoid double initialization of PFNs that overlap + * between Normal and Movable zones. + */ + if (j == ZONE_NORMAL && !memblock_is_mirror(r) && + zone_movable_pfn[nid]) + continue; + + if (j == ZONE_MOVABLE && memblock_is_mirror(r)) + continue; + } memmap_init_zone_range(zone, start_pfn, end_pfn, &hole_pfn); -- 2.47.3