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 912293BE144 for ; Thu, 25 Jun 2026 07:39:53 +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=1782373194; cv=none; b=f/pAs7g35xDB21uHr+IuZS/RxI8AS82T2Tm9EvA1Q6X83hh58TVlLokBu0VqFxBPje/CVl6fVLsCHiWuzSWPKKPZPjqpfI/wOIe0ErvigOxS0xHNfUqSJJ34F7M75sjtbI6jgD+j0kC6VuFSBJWNu6G9cpqH7znIMnRIkCaJ4LE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782373194; c=relaxed/simple; bh=7i2tOi75d9i83a9EJlb8E90gg6cb2rvHkvbtlk8IQc8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jDNM9ajvZ4AXeDWs6xPCLaGnRJyIBVJYYs4BG79SNGAkTWcX+0UH1D/FDRuqaZzj/cgWD1LJ2zIQV5uWXtVaR6mANw1G3HNjYUci8R0kP6O6+7TDbT73Npl6OcefzVWFkoi+l9z36SFY6RBv/HlnabOn2WCf60G3mstV+CoH0zY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XGPmq9l0; 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="XGPmq9l0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3845A1F000E9; Thu, 25 Jun 2026 07:39:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1782373193; bh=cSJ+S3PGQHQUzTw7lG7PXPuxkl/9B8uEBbMRx1+mPJc=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=XGPmq9l0POx4DEWSLbmxYHSJs/KUS99Pv1jWNSkTfaWZApGYsefRTZaBwU1oaUqEx pcFojiUsELD+syaEP04sNoXR9TyV8ZuT7owQmryEmdQQTnqRIHymS/x2i7NswRXecu InUWWGufuNIWQmSM2RX8fDV4zbB3yQyGPxp8EpKw9mBBTp+0l9v/9ZX/Rzi/XCA0z/ ew3Xu4ZmJ1JY5xvkocBP019rmX6dKV4FmcmbPyWJiPIHnLHjYkjjBA+SZX95ZUysa/ Rx3bIluMow60fTkxdbRg/GPCU1QrLahUlHSSeUdnu8bUu4HVgGuJF7aDzQr4JiyqtC zJNNGqQz96z2A== 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 2/2] mm/mm_init: drop overlap_memmap_init() Date: Thu, 25 Jun 2026 10:39:40 +0300 Message-ID: <20260625073941.145014-3-rppt@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260625073941.145014-1-rppt@kernel.org> References: <20260625073941.145014-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 dce9dc9f2302..6f0a71ccca30 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; -- 2.53.0