From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 A41D039A071 for ; Tue, 30 Jun 2026 07:22:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782804145; cv=none; b=S/Bsr9A78Eyd9+7NO/zvtKmEbRVryDVpYsKf+RgI3txhWWjCIJ3zEob2wIceiZLktRzQMk2lh+HTZHLddD0gcQvLc4fDQ2P5bgAkhfBVcPpyM6tDVrPQCn9IHV0WJ9cNN+bfY6tDQ87UkECYNCki94N4PV/qlQfkk9k6aJgV4/w= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782804145; c=relaxed/simple; bh=GegsBwO7XvVBYJhJ3/wgPnigdUJSCTKc5veYnZATeUo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=D2gH/WFiekYFMYl2GqzNOwsKrGeDospiDjldtEj1L/5QwzP3nz2LGjbHJC9FovYLf9R6+cQTy244P0F5Kyxcit6c8eekR75GTznX3awuH2P0f/oyjL1pSHaCm/HYpPkrJgt+NRWBf35IUe16HR/o9bq5tSwkgC16JTQLjYXiFzA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=acUjTNpa; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="acUjTNpa" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3725F1F000E9; Tue, 30 Jun 2026 07:22:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1782804144; bh=y0XMfOS9Ca4gesbEKnVY7f8yMPjjkgkoHlJ40QUpOHA=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=acUjTNpayhnlurAC7VyXypDgIJqrmclztiDNXm3mjydmB+rasN//K57Aj2U/5DWAS HSAi7/571gpyjr6wuxbPdei2LRpmrszUdZJ/xm6H91iV3zXOGmUP6T2SUVWX8sKCHr HbojYGNRbyVsIy+6lgvcp+iv/4nJdw6FFpl7+n4lwHFGRJVDweoKaiorfGKxouILe/ 1Euotm7QbqVr/M+RC6/m8yRVYQrNB4/Dz0gYWyN9TszJGSih8xPq07d8Q4JEDm5ML7 L3RrcPkrLa8O4OT6a7Rn26TUzD4piLbh4vkpOFuBRSSIA/01yeR9LIWxyQ81RbQ0tv P2FZ098qtz7mw== From: Mike Rapoport To: linux-mm@kvack.org Cc: Andrew Morton , David Hildenbrand , Mike Rapoport , Taku Izumi , Wei Yang , Yuan Liu , linux-kernel@vger.kernel.org Subject: [PATCH v2 2/2] mm/mm_init: drop overlap_memmap_init() Date: Tue, 30 Jun 2026 10:22:12 +0300 Message-ID: <20260630072212.624305-3-rppt@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260630072212.624305-1-rppt@kernel.org> References: <20260630072212.624305-1-rppt@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: "Mike Rapoport (Microsoft)" When ZONE_NORMAL and ZONE_MOVABLE could overlap because kernelcore=mirror didn't reduce the span of ZONE_NORMAL, initialization of the memory map had to skip overlapping pages during initialization of ZONE_MOVABLE to avoid double initialization of the same struct pages. Since kernelcore=mirror works now the same way as other variants of kernelcore=/movablecore=, and adjusts the span of ZONE_NORMAL, there can't be an overlap between ZONE_NORMAL and ZONE_MOVABLE. Remove overlap_memmap_init(). Co-developed-by: Wei Yang Signed-off-by: Wei Yang Signed-off-by: Mike Rapoport (Microsoft) --- mm/mm_init.c | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/mm/mm_init.c b/mm/mm_init.c index 57923dd33d06..838b5a0ad98d 100644 --- a/mm/mm_init.c +++ b/mm/mm_init.c @@ -799,28 +799,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 @@ -907,8 +885,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; -- 2.53.0