From nobody Fri Oct 2 06:16:34 2026 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (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 4250D3FD943 for ; Tue, 4 Aug 2026 14:48:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785854911; cv=none; b=P14/xtPoWTwLMa14DxgkqYtpO0Cx/8+KhWrK0GTVOuTrLKq3TKOa5hvf1HOS7jbC7YcWUKFXxDonqXaYe/p1UhjSU3oeGZ0phzoRRBpWm0Dq0lRtQZWi1WFwrz/B429Xl/YNMOqDVd+aI+9Fqoudbj1PfyAdsVkSY1uGPExdMUE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785854911; c=relaxed/simple; bh=smVhZ0fEfnigvkFhzxr3xNk7OiG9MPCGGJD9yidql4Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ryfuaEjcZ0iJwSjxysyiVGHgwxvpzv2EfBLQqzFDeGXOTbOcqjUY9ilZ8H5nzpsmA7Na/0MNuuUY6EF4+tOinnJkanJYcHAS5/qwEQKtG85Tnq4G32ZwXBSuEvEqr9U9wzxhD/NvBhJtdC43Cev7s0vZv7Ko4iTu/RYSoA4TKUg= 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=GZzhw0UA; arc=none smtp.client-ip=209.85.214.179 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="GZzhw0UA" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-2d049069377so41568365ad.0 for ; Tue, 04 Aug 2026 07:48:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785854904; x=1786459704; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=mR23Xel4iQAWEJiRA5QZMmGqrf9trThRl4S8g3S4noE=; b=GZzhw0UAiQqchf8na+IzJhjdT9WM1TIQL+0AVbmrJaHR67p2cKN73YIh9isMQblMXg Lx7rZZ1TkjCvYUQjZxOWcyXrvNBknBrxaSgzp273UKXvDzGjDdLKMyCw8TbhDG7ZadG7 O9nxtF0jTOjBtUkWiMQvtfPLJ1mPTJv+8OlhCMzSKLvHISv+HlKtm5sLhMT4u/sAmoJt L5CVjPjzVMdeEo1MlK/fYyIm919rxlrJOz49BH4PqesDRZRfxUgbMKQa1hxkjNMicOGt L6iMlz0UeZ3RZPohm6ncmjHUqo+5y5qDjV5h0J2Ca0yWESDiHlY5coSXjOJo1prcu8Cz mb0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785854904; x=1786459704; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=mR23Xel4iQAWEJiRA5QZMmGqrf9trThRl4S8g3S4noE=; b=Eu+hGC3VBuX5Kn0ivdlJl2GwNNlDpXi98Awt1paA6jfGWJbKHJANczWCBycKfXb3vG Pr5siC6D/YiTx8X1GPqVOciEdIvQvbRbC32IxJACLCBRvN2zVp63Fr0M/hw2P0C6C4VH esAFBcF2uuxwBHcF9qqxpvERKw0+Io5wIZde2/gKdRQNABs6tJ8wKn1rOnSpIVNYNxCw 5ISTrvSGkk7+Uslc4YYEDpAVxwkw+hRJfDYmuWRU8ChqCC/ubSkHeh2HLb4sFUg2fIH3 G1jSSVJUy4Xg1muOke9HBW+M/lx8S6n5eY6i9mtiac2ZtqZgtLATp/2xm2IB8YJ5JTqR qTlg== X-Gm-Message-State: AOJu0YyhG7e0qfBiPiTQSM2MSd5U98+2mmEcz+NDkPK6EBAq38Qahuw6 B8J3g8bmzYBCXZc0COh9BSlwWI8pqhuNYHRlr5k9GasG3wMwCERlH53O X-Gm-Gg: AR+sD10/q0IFwzDYOO+hFmxCUwvVJV+TZZlNEWNolho0WtyKzlCKy6J6icRC/ch+JLN FcnnOOgXi3nsZujnzXyoEJtWQsjYzPajyo/Mj7ItoeOUs1SkD/oLQuHtfWk9rLwg+n63kxfR9A5 HIXgVKFLzQc+hkx2iOUP04lZHcuh+EU+pqWUc6aueVM//G8EVB1GtkCNOVqs0O8TwjdkGl7N2Gs kvOAXTFsA2jesDRNQ/DslWpdr5jcg+6OvVsN0VIJSjh9iDIrwezc6q5EiGzoVVlfqJkam/hSNal rftv5Y42AktL5Mkx/ISzyB6XeO9VarUsXq++uAp3A1W7Bc3mux5DikQ83MCgl2KlFXJffQcGZVX 2T5lZvOS0KyPlC4ALyQUrM7FtEYzRa7oqHrfmC6YplihGN8+mhnZJVnKvXrRM/a1H+j+Kp70KJE BBYX4YAH2XOtUogV0sbNhJDvJhaHGhCxG87FTvNDsnakjEb+FGa2I6+UI= X-Received: by 2002:a17:902:e945:b0:2ca:b4b9:4586 with SMTP id d9443c01a7336-2d0521e5d6cmr148874165ad.19.1785854903753; Tue, 04 Aug 2026 07:48:23 -0700 (PDT) Received: from ubuntu.. ([110.9.142.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d0aa4930e1sm8784175ad.41.2026.08.04.07.48.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Aug 2026 07:48:23 -0700 (PDT) From: Sang-Heon Jeon To: Mike Rapoport , Andrew Morton Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 1/4] mm/mm_init: fold adjust_zone_range_for_zone_movable() into its sole caller Date: Tue, 4 Aug 2026 23:47:58 +0900 Message-ID: <20260804144803.3290255-2-ekffu200098@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260804144803.3290255-1-ekffu200098@gmail.com> References: <20260804144803.3290255-1-ekffu200098@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" adjust_zone_range_for_zone_movable() adjusts zone_start_pfn and zone_end_pfn. It is only called from zone_spanned_pages_in_node(), which adjusts the same two values before and after the call. This makes the code harder to follow. Fold the helper into the caller to make the code clearer. No functional change. Signed-off-by: Sang-Heon Jeon --- mm/mm_init.c | 66 ++++++++++++++++++++++------------------------------ 1 file changed, 28 insertions(+), 38 deletions(-) diff --git a/mm/mm_init.c b/mm/mm_init.c index 711f821f7b3c..ddff06467239 100644 --- a/mm/mm_init.c +++ b/mm/mm_init.c @@ -1143,42 +1143,6 @@ void __ref memmap_init_zone_device(struct zone *zone, } #endif =20 -/* - * The zone ranges provided by the architecture do not include ZONE_MOVABLE - * because it is sized independent of architecture. Unlike the other zones, - * the starting point for ZONE_MOVABLE is not fixed. It may be different - * in each node depending on the size of each node and how evenly kernelco= re - * is distributed. This helper function adjusts the zone ranges - * provided by the architecture for a given node by using the end of the - * highest usable zone for ZONE_MOVABLE. This preserves the assumption that - * zones within a node are in order of monotonic increases memory addresses - */ -static void __init adjust_zone_range_for_zone_movable(int nid, - unsigned long zone_type, - unsigned long node_end_pfn, - unsigned long *zone_start_pfn, - unsigned long *zone_end_pfn) -{ - /* Only adjust if ZONE_MOVABLE is on this node */ - if (zone_movable_pfn[nid]) { - /* Size ZONE_MOVABLE */ - if (zone_type =3D=3D ZONE_MOVABLE) { - *zone_start_pfn =3D zone_movable_pfn[nid]; - *zone_end_pfn =3D min(node_end_pfn, - arch_zone_highest_possible_pfn[movable_zone]); - - /* Adjust for ZONE_MOVABLE starting within this range */ - } else if (!mirrored_kernelcore && - *zone_start_pfn < zone_movable_pfn[nid] && - *zone_end_pfn > zone_movable_pfn[nid]) { - *zone_end_pfn =3D zone_movable_pfn[nid]; - - /* Check if this whole range is within ZONE_MOVABLE */ - } else if (*zone_start_pfn >=3D zone_movable_pfn[nid]) - *zone_start_pfn =3D *zone_end_pfn; - } -} - /* * Return the number of holes in a range on a node. If nid is MAX_NUMNODES, * then all holes in the requested range will be accounted for. @@ -1257,6 +1221,15 @@ static unsigned long __init zone_absent_pages_in_nod= e(int nid, /* * Return the number of pages a zone spans in a node, including holes * present_pages =3D zone_spanned_pages_in_node() - zone_absent_pages_in_n= ode() + * + * The zone ranges provided by the architecture do not include ZONE_MOVABLE + * because it is sized independent of architecture. Unlike the other zones, + * the starting point for ZONE_MOVABLE is not fixed. It may be different + * in each node depending on the size of each node and how evenly kernelco= re + * is distributed. The zone ranges provided by the architecture are adjust= ed + * for a given node by using the end of the highest usable zone for + * ZONE_MOVABLE. This preserves the assumption that zones within a node are + * in order of monotonic increases memory addresses */ static unsigned long __init zone_spanned_pages_in_node(int nid, unsigned long zone_type, @@ -1271,8 +1244,25 @@ static unsigned long __init zone_spanned_pages_in_no= de(int nid, /* Get the start and end of the zone */ *zone_start_pfn =3D clamp(node_start_pfn, zone_low, zone_high); *zone_end_pfn =3D clamp(node_end_pfn, zone_low, zone_high); - adjust_zone_range_for_zone_movable(nid, zone_type, node_end_pfn, - zone_start_pfn, zone_end_pfn); + + /* Only adjust if ZONE_MOVABLE is on this node */ + if (zone_movable_pfn[nid]) { + /* Size ZONE_MOVABLE */ + if (zone_type =3D=3D ZONE_MOVABLE) { + *zone_start_pfn =3D zone_movable_pfn[nid]; + *zone_end_pfn =3D min(node_end_pfn, + arch_zone_highest_possible_pfn[movable_zone]); + + /* Adjust for ZONE_MOVABLE starting within this range */ + } else if (!mirrored_kernelcore && + *zone_start_pfn < zone_movable_pfn[nid] && + *zone_end_pfn > zone_movable_pfn[nid]) { + *zone_end_pfn =3D zone_movable_pfn[nid]; + + /* Check if this whole range is within ZONE_MOVABLE */ + } else if (*zone_start_pfn >=3D zone_movable_pfn[nid]) + *zone_start_pfn =3D *zone_end_pfn; + } =20 /* Check that this node has pages within the zone's required range */ if (*zone_end_pfn < node_start_pfn || *zone_start_pfn > node_end_pfn) --=20 2.43.0 From nobody Fri Oct 2 06:16:34 2026 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (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 9CAE840F735 for ; Tue, 4 Aug 2026 14:48:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785854912; cv=none; b=odhTu86Wk2AohgS50hHBx3WzRmAciExfOT3y8X5huI58nosymnEkKKso+jzYcc4x/OlJKxigCd4sRTyJVAXO6uhlj371mqNjkFhkI6Dceyp9YlB+bkz3gnplXcdSWtwiattH9VtUfavYWfbMt5ZS/bRzvNkAicLH86p3TXBKujM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785854912; c=relaxed/simple; bh=PlOtUwvCTdLLTwmOCXZZoCcLLxo8IM4LzadyltknGsE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NPtpi9knaNyp8minGnEVrW1CHNrfrNJFRbkkEmpmTO4p6Rj+Vy/QPMuSBXoWg3prz4etTIVU8hZqXCMm2PDLbp6E58UfcxqRDwDfmgN1NEVU+nGxmBTi2m7AHeo05B9tuEt04G/n7YYinLa8rz+A/GuG0P1Qx9L1sHUmqvtEKII= 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=AXa3JXar; arc=none smtp.client-ip=209.85.214.173 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="AXa3JXar" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-2cc97653887so52134325ad.1 for ; Tue, 04 Aug 2026 07:48:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785854906; x=1786459706; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=BiCC+s/Zx5WFACy20HptmxuWHsFbxqBWby1onCkyR7M=; b=AXa3JXarZZAglsSz6OrzbOyhIeiAsbhtpo+xDzrldZukONROU0DQrP6VR9d5LJmI1g IfkCgqjT+l4zhCc42dvTee0IqGdHu4yKFaRwbtHcRhf5kFcm67GYyPibZx0JanKfW+cZ stEWp+YvN/PhsSFsMit7rYekOGQp0Ou6zoMn17HZtI3Ee7LPrdAByWsmPoP3j/5spAUT 2obitjN348+js0jVf8jJ1rB/2SxC9PmTdwperH3op4WrmWY4VlRaWFV4P++xqSRmqBB3 oYxwtgtqoNgMIbFkKLCixaaOcRM4WxJFBvgK6ca1frfFornSb9janNzElMVHLQI0JJ9L faWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785854906; x=1786459706; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=BiCC+s/Zx5WFACy20HptmxuWHsFbxqBWby1onCkyR7M=; b=gRkJVFF0lQxAHfqg+W2S14IYoZaAeOFZNjqQbpBVuQZCpPc+zqu8cd7ZtB9Ry2y+D4 7zOHV9tyUal6OOJB3Sa1CslWVCajI0EBs1AZ25RfvuFTgdzIm1kp0EaTFc1gcWruVTVq LEXtUf1xdHMHsTUi61T/uN3iczicsqQUbb4a9E/AjzYi5sfJYwX3DF9XshtpQRE6vp/p wJ7Ntjr454aFkUPIs2QxzdFRuBsCLoCOSOQznSuvtCuR/xl0Ygn9fR0X9xkD5Jwe6Og9 p0tfExOouJHVbcYICryXDtsWhxBLyZ96Mc5kucXArmHEc1oNBynYvbj7JkeMekLxcDHS 86zA== X-Gm-Message-State: AOJu0Yy73co2QeQX0aL6Dcy8siFq4UJ9R86CWX0odQRBF2dZXu4ZyVPv ege9UeGpF4Hds/byb+Erh+OwkmD+3WCqRRnoRZ3Wv/SiRjjh0AUwW03wfeOEhiGB X-Gm-Gg: AR+sD13NtoD2XZveur2EtD6N49x9U1BGjI+57rJIxpkjwagQ8KGw0CvpsJWPPZodJrE 9UF93HyKWj8aiz4IR9i0ZLa+54boHHN3JifoCNO8nCMCgeWhFtoXkWCyXjfD3QuhiJNdgS5JOUd uQF0hC4CfZnoeYL5ECKCAqSRWcxIG4BDqwG+j2+lAcTYf/ObI2Ofn+8MOa2Emv3Y5ath6j/A0yM ia9RFVpxh1/mlyAG9yjCdKssElknvbRkFIFeQZQKWiq3CBLnTLDJAeAsrKGYaZz3Dsk0u7WWrBD PzEfshjfJhVXzy4WVND0ja4Th2IcqhE+rs6RMFROX0oaqD0vz8C8vmR+h6Eaydb8W+nM9QVhDLl SJTVsz6cV/lWQj2++bv1pOKTwjg/pC2WyszYxPQmmuz+hWlLOaJd0A+qJ1x4tI03Q7lPSjIARdM gE1OsjAd4OcpM76RJujdLzZ40OWa5PVH8FW4QGTnmreKpU41yR0HXj6b4= X-Received: by 2002:a17:903:3201:b0:2ce:f9db:a9e0 with SMTP id d9443c01a7336-2d052283697mr156921155ad.16.1785854905679; Tue, 04 Aug 2026 07:48:25 -0700 (PDT) Received: from ubuntu.. ([110.9.142.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d0aa4930e1sm8784175ad.41.2026.08.04.07.48.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Aug 2026 07:48:25 -0700 (PDT) From: Sang-Heon Jeon To: Mike Rapoport , Andrew Morton Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 2/4] mm/mm_init: remove redundant clamping in zone_spanned_pages_in_node() Date: Tue, 4 Aug 2026 23:47:59 +0900 Message-ID: <20260804144803.3290255-3-ekffu200098@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260804144803.3290255-1-ekffu200098@gmail.com> References: <20260804144803.3290255-1-ekffu200098@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Clamping *zone_end_pfn to node_end_pfn has no effect, because *zone_end_pfn <=3D node_end_pfn is guaranteed at that point. 1. If zone_movable_pfn[nid] !=3D 0 && zone_type =3D=3D ZONE_MOVABLE, *zone_end_pfn =3D min(node_end_pfn, ...) <=3D node_end_pfn. 2. Else If zone_movable_pfn[nid] !=3D 0 && !mirrored_kernelcore && *zone_start_pfn < zone_movable_pfn[nid] < *zone_end_pfn, *zone_end_pfn =3D zone_movable_pfn[nid]. The condition requires the clamped *zone_start_pfn and *zone_end_pfn to differ, which cannot happen when node_end_pfn < zone_low. So zone_movable_pfn[nid] < clamped *zone_end_pfn =3D min(node_end_pfn, zone_high) <=3D node_end_pfn. 3. Else *zone_end_pfn =3D clamp(node_end_pfn, zone_low, zone_high) a. If node_end_pfn >=3D zone_low, *zone_end_pfn =3D min(node_end_pfn, zone_high) <=3D node_end_pfn. b. If node_end_pfn < zone_low, *zone_start_pfn =3D zone_low > node_end_pfn, so the function returns 0 before the clamping is executed. So remove it. No functional change. Signed-off-by: Sang-Heon Jeon --- mm/mm_init.c | 1 - 1 file changed, 1 deletion(-) diff --git a/mm/mm_init.c b/mm/mm_init.c index ddff06467239..75fe1918d4d4 100644 --- a/mm/mm_init.c +++ b/mm/mm_init.c @@ -1269,7 +1269,6 @@ static unsigned long __init zone_spanned_pages_in_nod= e(int nid, return 0; =20 /* Move the zone boundaries inside the node if necessary */ - *zone_end_pfn =3D min(*zone_end_pfn, node_end_pfn); *zone_start_pfn =3D max(*zone_start_pfn, node_start_pfn); =20 /* Return the spanned pages */ --=20 2.43.0 From nobody Fri Oct 2 06:16:34 2026 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) (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 D89F944998F for ; Tue, 4 Aug 2026 14:48:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785854914; cv=none; b=gAwMY8ktTkBZeJ0v9Y86xc3KZZgl7i05M/+mVWbj62zOYRT1REgIf8yBHm4S129EIefMSF8uRl2wK84TnRczXngL5+EUGYn3gFnE3dWSiN/6Ng8do7IJyGt7u56R5CSo8NCWzYQdH883GrrEahgP7D4CmbrfBqN5468PjogWlAw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785854914; c=relaxed/simple; bh=cU70fDlZa+0+iBfYSOxNInvRsLeko1X2Rfbo3elxfVk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AlbQiY2YAYXHPN3aBkNv1NLCoAK6z8oobKy6m5+uOPEwqraZGqK7VRCdWio00v5GReW9hxfNA1usIe/jV7fTJIrs0zrQdyJOQN/iUcq4tuNoUkG1ljIr1KP0vU2c+/jjsvnHgtSAGMbpgxt3/nm+/wNyz8kktgRvWXWFDsc1DKc= 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=RxX6N2TO; arc=none smtp.client-ip=209.85.214.169 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="RxX6N2TO" Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2cacf197759so69671925ad.2 for ; Tue, 04 Aug 2026 07:48:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785854908; x=1786459708; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=y3Ke7fxV17DzCzcHb24D2luZMqAekIqqLL/76GU6lPQ=; b=RxX6N2TOJor2M7TOwYC60yKP58EVtABWaGkeF93YVdL4zT39cWgvTXsZqb/mGOmrC9 QZIcuvk8JBTDuVINoM9LcbStr+4w4fsgcEpyVJs4RGi13NxZFCyXyNlYQkrm3TbklojF q7sXP1Yk+AxIDRDRrc5UtaAuFFpL33VXUdeQlVuVepEFl7azb/qkOjuykq2t1PRVcs4h rrqURv5j9skqZs0v61RC2o7Gsi5AR39Z5liZokcFxhCtoyriBWNnS+ZuxEGFPLiATqtG SrPbC3lNLiTg4IM2Xju2AuITX2zN1+JodrW8ymg90DWfdOaLjuf7UAujJv2KagNNb9r/ Eozw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785854908; x=1786459708; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=y3Ke7fxV17DzCzcHb24D2luZMqAekIqqLL/76GU6lPQ=; b=HrlUk5f8zLAYLn3lYquae5zJpT0gVInI26s8FBUpaFspda2MUxQrNEgtemQhUValIR G9hqPAie/Ve4Qf3SP02dJyil0xzgrp/2UCO2WbSRkLUWsOvTOaqQQK8dE2N8ZWOk0rBv ilmUTThN36Wjy9aStF78NkhGkCeK+SbcSyXPCrjcC5xtH7rB/GoiFVF6swjyiR42O9K5 uKiva8ajrMzcbmr5R1KQd5hwB1LxFJCbzvNSrmJcjiQwcCYXmpi41rY9d+rmxCQJ5+sJ H202XUh+nU3HJgsj5rUCcc//UIqbcmUHdPapN27wNPsv37rQAC+Fclf63KgAi9cvHb+4 TNpg== X-Gm-Message-State: AOJu0Yw8UrzPL5ehEp18R/I391oKzbUuu0JYkDaGNaN6GjOnym5HD+QZ 7O4TsQyjZuTE3m4hdcL06nGehHKXEsCoh9qM8s23ACDA3FwwfuRcFQJc X-Gm-Gg: AR+sD10ucvNqptwaCTFbkXkC0KLEXnVQ3OycKNjo7yzw0MuhledEOc+N0WZhtkzP6pd PCQ13VkgBGUWKEucY86iLnhH18kux3lxrw0rJhulF+W6ljUvT0qqCNjJ7ZvIcos2elwHWelodyY xfLGAFAmqlDl37sgHAlwdD9RVZCABUlzDQbSa9oSxspDN9bMkJCy3jk794jyq+ouFvxGlpcV9oT 9cbmo+GOViEqEKZRCYmz/3eYRoDHQ64b5iALAJpjq2rNMuUthZU/l6gLvD4jO7SPIuwQcltCl05 yjLL/wFf7gEkk6o0TezEo8RwyjrL8AvUQdht8yC/H09S3m08k2/PM6FXeLM7PlmA18ehl6lTCgw sBVc2++vAFXQx2HBbKKdWgscB7CJ5idvbmp/mYV5thJZ5lgVUCqXlIk+W+WMNoPdro9BUpSfP7D YxOdYhWrqVBc+igXAl5E7HLnBRF7oHJdKTqWaAvKpvTifYn4+1nEG2eRo= X-Received: by 2002:a17:903:4b30:b0:2c9:e9c4:82c1 with SMTP id d9443c01a7336-2d0523b7cfdmr156995145ad.26.1785854907551; Tue, 04 Aug 2026 07:48:27 -0700 (PDT) Received: from ubuntu.. ([110.9.142.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d0aa4930e1sm8784175ad.41.2026.08.04.07.48.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Aug 2026 07:48:27 -0700 (PDT) From: Sang-Heon Jeon To: Mike Rapoport , Andrew Morton Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 3/4] mm/mm_init: move the range check and clamping inside ZONE_MOVABLE branch Date: Tue, 4 Aug 2026 23:48:00 +0900 Message-ID: <20260804144803.3290255-4-ekffu200098@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260804144803.3290255-1-ekffu200098@gmail.com> References: <20260804144803.3290255-1-ekffu200098@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Outside the ZONE_MOVABLE branch the check and the clamping have no effect, because every branch ends with one of the following. - *zone_start_pfn =3D=3D *zone_end_pfn, so the function returns 0 anyway. - node_start_pfn <=3D *zone_start_pfn <=3D *zone_end_pfn <=3D node_end_pfn, so the check does not return 0 and max(*zone_start_pfn, node_start_pfn) is always *zone_start_pfn. The branches set *zone_start_pfn and *zone_end_pfn as follows. 1. If zone_movable_pfn[nid] !=3D 0 && zone_type =3D=3D ZONE_MOVABLE, *zone_start_pfn =3D zone_movable_pfn[nid] and *zone_end_pfn =3D min(node_end_pfn, ...). 2. Else If zone_movable_pfn[nid] !=3D 0 && !mirrored_kernelcore && *zone_start_pfn < zone_movable_pfn[nid] < *zone_end_pfn, *zone_end_pfn =3D zone_movable_pfn[nid]. The condition requires the clamped *zone_start_pfn and *zone_end_pfn to differ, which cannot happen when node_end_pfn < zone_low or node_start_pfn > zone_high. So *zone_start_pfn =3D max(node_start_pfn, zone_low) >=3D node_start_pfn, and zone_movable_pfn[nid] < clamped *zone_end_pfn =3D min(node_end_pfn, zone_high) <=3D node_end_pfn. So node_start_pfn <=3D *zone_start_pfn < *zone_end_pfn <=3D node_end_pfn. 3. Else If zone_movable_pfn[nid] !=3D 0 && *zone_start_pfn >=3D zone_movable_pfn[nid], *zone_start_pfn =3D *zone_end_pfn. 4. Else *zone_start_pfn =3D clamp(node_start_pfn, zone_low, zone_high) and *zone_end_pfn =3D clamp(node_end_pfn, zone_low, zone_high) a. If node_end_pfn < zone_low, *zone_start_pfn =3D *zone_end_pfn =3D zone_low. b. If node_start_pfn > zone_high, *zone_start_pfn =3D *zone_end_pfn =3D zone_high. c. If node_end_pfn >=3D zone_low && node_start_pfn <=3D zone_high, node_start_pfn <=3D *zone_start_pfn <=3D *zone_end_pfn <=3D node_end_pfn. So move both inside the ZONE_MOVABLE branch. No functional change. Signed-off-by: Sang-Heon Jeon --- mm/mm_init.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/mm/mm_init.c b/mm/mm_init.c index 75fe1918d4d4..1190a27ed0fb 100644 --- a/mm/mm_init.c +++ b/mm/mm_init.c @@ -1253,6 +1253,17 @@ static unsigned long __init zone_spanned_pages_in_no= de(int nid, *zone_end_pfn =3D min(node_end_pfn, arch_zone_highest_possible_pfn[movable_zone]); =20 + /* + * Check that this node has pages within the + * zone's required range + */ + if (*zone_end_pfn < node_start_pfn || + *zone_start_pfn > node_end_pfn) + return 0; + + /* Move the zone start inside the node if necessary */ + *zone_start_pfn =3D max(*zone_start_pfn, node_start_pfn); + /* Adjust for ZONE_MOVABLE starting within this range */ } else if (!mirrored_kernelcore && *zone_start_pfn < zone_movable_pfn[nid] && @@ -1264,13 +1275,6 @@ static unsigned long __init zone_spanned_pages_in_no= de(int nid, *zone_start_pfn =3D *zone_end_pfn; } =20 - /* Check that this node has pages within the zone's required range */ - if (*zone_end_pfn < node_start_pfn || *zone_start_pfn > node_end_pfn) - return 0; - - /* Move the zone boundaries inside the node if necessary */ - *zone_start_pfn =3D max(*zone_start_pfn, node_start_pfn); - /* Return the spanned pages */ return *zone_end_pfn - *zone_start_pfn; } --=20 2.43.0 From nobody Fri Oct 2 06:16:34 2026 Received: from mail-pg1-f182.google.com (mail-pg1-f182.google.com [209.85.215.182]) (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 E17ED44E660 for ; Tue, 4 Aug 2026 14:48:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785854916; cv=none; b=jS6BU+YkotgzPJOSXBc3fAytE/D5VRX3bPVGUAfH+hcBPsB9DqkUZ8oxdREevfD8SevQ5y89m1tkTBVQNyYNo2sErrWKlo1I5oJVQmFWanv9evFaCygHPXLLu6VsfVZvFL/eg89t8aZnvFLka7y5EN/8hYuOQHvot7IapwyoTlk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785854916; c=relaxed/simple; bh=Qk5tLGtVUMrxUyAx8qZcilBQuP5Ca38dCq3KJpt+5Dg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=akPw5oSPcKpasuRTQGuLGtmFgUuRwy5EoKQOWvoBhtYeqYQTA5ykluvAWaGNITOHYWUcBLkyR6pTkVWVadzIdOBEa8W1/VXpNoG9K9k6x5w0ra+pSoWwuT0BuRUET7CSE+Mio7Gkj6/ZsGgV03sz+BrMLVdspCTPgs9GrM7/hsI= 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=OtnacOvz; arc=none smtp.client-ip=209.85.215.182 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="OtnacOvz" Received: by mail-pg1-f182.google.com with SMTP id 41be03b00d2f7-c9b373d5af0so3637115a12.2 for ; Tue, 04 Aug 2026 07:48:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785854909; x=1786459709; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Sj33KclCgI00dDNyPZb2XVJG6r1tXN3Oit5qoG8xUoc=; b=OtnacOvzxVbjW3DOb+mm6LV+OZJUemcM13tdGq39pGSVQ+g8EqZ9vblLpLE20pnQtX uc1PkygiumWosB+aFtvijBRKj0Wo2ccsIbjsqSbHFEPKO1ptPPxjxqYJ5CRctmo8+pwB LpsMYmh2y4XcvqC5kbLrwUe0O9x0qQrhvrmV/VbumNXUcVyoqgQ+Bnu83Nx248gAbEpq f28EqHz3GN4Jh9fuP5Hu2Kc3lCJRTpmUBF/+iSpZmo3tQvS/eYu4orEC9M2GUHtG3oFd McgNNKY+Ta287qggFjLguF+WA45UU4yk2ExuRywuLxe5Em/iiL2cRbL2UsfTnYxDeLBv APaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785854909; x=1786459709; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=Sj33KclCgI00dDNyPZb2XVJG6r1tXN3Oit5qoG8xUoc=; b=mkLJbIeyJmVmx7oAkobAOwyNPHPikSmxvGsdEZ3FA98w76hxA0WpHeV7LkisPosgTH qQweZT+6Ht1hiwSxuInDgtEuTUlvQ8TUDVSI499wOb2tfYPkKuHtoYSCsxgJCFhDdOGc ZNaNVEori3CVcOoOYHGiyxfYAL3zsulli24hWnV/cJfmJ5qyDiWWEYnwaAuSKx/WhTHF FA3s3Grs48c1ud5KH7fOSzUY3jVl/pR+TahqqVijCvVfnOwCF8rbNUacPGh039WD6YkO E1U1HrGVIA8l3vl+kN4i/Ok2p27s6MxfcqD9pdIQEzcMDB37ftJ9C3FWJB8opPEqbcop +NPA== X-Gm-Message-State: AOJu0YynYD4ZpkvDWgM9Hiuk0NPFdvhwwSNeGRl9NrwLAXwt8EDoFh4F a+v2sp4LhkO8uHthY1PdLErVVzdOf1IS3SVABhGzHm2ocdQ6veOTeSd6 X-Gm-Gg: AR+sD10bKWtts3r7P3mEkCfwNBIpn3Akex0HG2fyDp39PK2DbQ5oUyZX3DbeZTey21W Pqdj0iRG/XGuimkZIQRdvbD8liH7kaTWBDFGopkdXKA6DgYxYRkOGF9veXw0oVkHDzvBax/9s5z w+Gqclfq2tFp3NJzipT9hS/KwTy5g8D5/r5i9iO6A+frCvAND7XVbnK78liMTioTs/8JSBZSwXX BIKeAy7gEaxML53tqaPKyQEzrY3DbJyLhzTfm+1hWtXUSTnYBU23G3hOVHA4k5r3ceCINmNSTow d/SR1TP2R0GjC4src5LfxEmQp/+HlLZ8OvpqWZrjEhTL5TSW7jZCq9hrWHhnSmXXXMsW6DPkFry SnfPdOxw4mdSNZLll9REvaGxZnguZmTosw7XrrigumdYz1KShEaaP7dhLtOfq7ixrqudX2XDP/E lTKCw6oHFa+JTovmyMaQaYY0Wx1okH8OYwWMUEJkDA5/6F49AUyfrTCPs= X-Received: by 2002:a17:902:e950:b0:2c6:90ec:f601 with SMTP id d9443c01a7336-2d05219d40emr150964835ad.8.1785854909443; Tue, 04 Aug 2026 07:48:29 -0700 (PDT) Received: from ubuntu.. ([110.9.142.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d0aa4930e1sm8784175ad.41.2026.08.04.07.48.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Aug 2026 07:48:28 -0700 (PDT) From: Sang-Heon Jeon To: Mike Rapoport , Andrew Morton Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 4/4] mm/mm_init: clean up zone_spanned_pages_in_node() Date: Tue, 4 Aug 2026 23:48:01 +0900 Message-ID: <20260804144803.3290255-5-ekffu200098@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260804144803.3290255-1-ekffu200098@gmail.com> References: <20260804144803.3290255-1-ekffu200098@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Extract zone_movable_pfn[nid], which is used six times, into a local variable, and return early to reduce the indentation level. No functional change. Signed-off-by: Sang-Heon Jeon --- mm/mm_init.c | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/mm/mm_init.c b/mm/mm_init.c index 1190a27ed0fb..d544eed2f173 100644 --- a/mm/mm_init.c +++ b/mm/mm_init.c @@ -1240,41 +1240,41 @@ static unsigned long __init zone_spanned_pages_in_n= ode(int nid, { unsigned long zone_low =3D arch_zone_lowest_possible_pfn[zone_type]; unsigned long zone_high =3D arch_zone_highest_possible_pfn[zone_type]; + unsigned long movable_pfn =3D zone_movable_pfn[nid]; =20 /* Get the start and end of the zone */ *zone_start_pfn =3D clamp(node_start_pfn, zone_low, zone_high); *zone_end_pfn =3D clamp(node_end_pfn, zone_low, zone_high); =20 - /* Only adjust if ZONE_MOVABLE is on this node */ - if (zone_movable_pfn[nid]) { - /* Size ZONE_MOVABLE */ - if (zone_type =3D=3D ZONE_MOVABLE) { - *zone_start_pfn =3D zone_movable_pfn[nid]; - *zone_end_pfn =3D min(node_end_pfn, - arch_zone_highest_possible_pfn[movable_zone]); + /* Nothing to adjust if ZONE_MOVABLE is not on this node */ + if (!movable_pfn) + goto out; =20 - /* - * Check that this node has pages within the - * zone's required range - */ - if (*zone_end_pfn < node_start_pfn || - *zone_start_pfn > node_end_pfn) - return 0; + /* Size ZONE_MOVABLE */ + if (zone_type =3D=3D ZONE_MOVABLE) { + *zone_start_pfn =3D movable_pfn; + *zone_end_pfn =3D min(node_end_pfn, + arch_zone_highest_possible_pfn[movable_zone]); =20 - /* Move the zone start inside the node if necessary */ - *zone_start_pfn =3D max(*zone_start_pfn, node_start_pfn); + /* Check that this node has pages within the zone's required range */ + if (*zone_end_pfn < node_start_pfn || + *zone_start_pfn > node_end_pfn) + return 0; =20 - /* Adjust for ZONE_MOVABLE starting within this range */ - } else if (!mirrored_kernelcore && - *zone_start_pfn < zone_movable_pfn[nid] && - *zone_end_pfn > zone_movable_pfn[nid]) { - *zone_end_pfn =3D zone_movable_pfn[nid]; + /* Move the zone start inside the node if necessary */ + *zone_start_pfn =3D max(*zone_start_pfn, node_start_pfn); =20 - /* Check if this whole range is within ZONE_MOVABLE */ - } else if (*zone_start_pfn >=3D zone_movable_pfn[nid]) - *zone_start_pfn =3D *zone_end_pfn; + /* Adjust for ZONE_MOVABLE starting within this range */ + } else if (!mirrored_kernelcore && *zone_start_pfn < movable_pfn && + *zone_end_pfn > movable_pfn) { + *zone_end_pfn =3D movable_pfn; + + /* Check if this whole range is within ZONE_MOVABLE */ + } else if (*zone_start_pfn >=3D movable_pfn) { + *zone_start_pfn =3D *zone_end_pfn; } =20 +out: /* Return the spanned pages */ return *zone_end_pfn - *zone_start_pfn; } --=20 2.43.0