From nobody Sat Jul 25 20:04:26 2026 Received: from outbound.baidu.com (mx22.baidu.com [220.181.50.185]) by smtp.subspace.kernel.org (Postfix) with SMTP id C15A83EB0ED for ; Tue, 14 Jul 2026 09:29:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=220.181.50.185 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784021389; cv=none; b=ebxrfWiJdPnD2k0qiROqFZx2V0SzFAWxbwmJrUl3rCedmuIcXIJSF4Knk1/+h4bgBY5kxkp1A3oA6Betob7Ha97yR4yDoa9IrTF8X28Wj5XStECnJkez1I5XL1CsHy1Exdvp/7xVmFLryayyCDPxEv4bbfSIEAFPHw4RRUIchGo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784021389; c=relaxed/simple; bh=A6K4qEKcLY4KEuF4IIPZ//7orN2oETsuVWjrWK0W+Ns=; h=From:To:CC:Subject:Date:Message-ID:MIME-Version:Content-Type; b=Kc1GXLKNVvfYaE1DWqKZXEAiF87LzeUVmTMqiBmVfX3CkdKiuQBjhXx6YSatMy0Xu6jkhJR5aFrjLcE/lbbEHnpkU5EX/k//OEjXYUcsn82DOmKZBY0R8BGgXSM52Pxbu71b2g1nZrFeyfmRl92swlDQuakf6uYSBjGvDI3JoGM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=baidu.com; spf=pass smtp.mailfrom=baidu.com; dkim=pass (2048-bit key) header.d=baidu.com header.i=@baidu.com header.b=B1/sSeUz; arc=none smtp.client-ip=220.181.50.185 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=baidu.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baidu.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baidu.com header.i=@baidu.com header.b="B1/sSeUz" X-MD-Sfrom: lirongqing@baidu.com X-MD-SrcIP: 172.31.50.47 From: lirongqing To: Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , CC: Li RongQing Subject: [PATCH] sched/numa: fix stale dst_nid used in distance calculation for candidate nodes Date: Tue, 14 Jul 2026 17:21:10 +0800 Message-ID: <20260714092110.1722-1-lirongqing@baidu.com> X-Mailer: git-send-email 2.17.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: bjhj-exc2.internal.baidu.com (172.31.3.12) To bjkjy-exc3.internal.baidu.com (172.31.50.47) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baidu.com; s=selector1; t=1784020882; bh=Lk9bJzNy/oQoTAEs6eR9ru0Ug6HEZZ3IcfsKOYD76FQ=; h=From:To:CC:Subject:Date:Message-ID:Content-Type; b=B1/sSeUzMhwpXQQVFd7w9X9I/kreSYI2GTLS0bGAiaWenZvg+7zN3KZF8wFtq1kJM WuxBPmTbsI3S0pBDC59SRFgdA6+asM9miVFiVzqLghquNJWJZEPt5n545SvVzW66Gd lMwfOx51DR2rf250ig2cXdXu1xEz7tlgysn0X6O+FLCcDkOqpCGUPmdhsXujZ9kQNR OCFH7lswvkVWpy1qPwBfVxd5iqtDRo8LrjYYnTL7BlekPNANlkvcYPmDGsaPrY3Dn9 nVMZI7NqX4cHyHSFdNhqaUYe7x2POMrp2XO4Db57MDBwY3VknGFc2MVAIN8AlIOqjz op3OaD3xFfPwQ== Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Li RongQing In task_numa_migrate(), when iterating over candidate NUMA nodes to find a migration target beyond the preferred node, the distance is computed as: dist =3D node_distance(env.src_nid, env.dst_nid); However, env.dst_nid still holds the value from the previous iteration (or the preferred node on the first pass), not the current candidate node 'nid'. The corrected distance is only assigned to env.dst_nid, after it has already been used for scoring. Fix it by computing the distance against the current candidate node: dist =3D node_distance(env.src_nid, nid); Signed-off-by: Li RongQing --- kernel/sched/fair.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index d78467e..a58c15a 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -3319,7 +3319,7 @@ static int task_numa_migrate(struct task_struct *p) if (nid =3D=3D env.src_nid || nid =3D=3D p->numa_preferred_nid) continue; =20 - dist =3D node_distance(env.src_nid, env.dst_nid); + dist =3D node_distance(env.src_nid, nid); if (sched_numa_topology_type =3D=3D NUMA_BACKPLANE && dist !=3D env.dist) { taskweight =3D task_weight(p, env.src_nid, dist); --=20 2.9.4