From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756537AbbFPL5X (ORCPT ); Tue, 16 Jun 2015 07:57:23 -0400 Received: from e28smtp02.in.ibm.com ([122.248.162.2]:36951 "EHLO e28smtp02.in.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756344AbbFPL4p (ORCPT ); Tue, 16 Jun 2015 07:56:45 -0400 X-Helo: d28dlp02.in.ibm.com X-MailFrom: srikar@linux.vnet.ibm.com X-RcptTo: linux-kernel@vger.kernel.org From: Srikar Dronamraju To: Ingo Molnar , Peter Zijlstra Cc: linux-kernel@vger.kernel.org, srikar@linux.vnet.ibm.com, Rik van Riel , Mel Gorman Subject: [PATCH v2 4/4] sched:Use correct nid while evaluating task weights Date: Tue, 16 Jun 2015 17:26:02 +0530 Message-Id: <1434455762-30857-5-git-send-email-srikar@linux.vnet.ibm.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1434455762-30857-1-git-send-email-srikar@linux.vnet.ibm.com> References: <1434455762-30857-1-git-send-email-srikar@linux.vnet.ibm.com> X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 15061611-0005-0000-0000-000005ECD2EB Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In task_numa_migrate(), while evaluating other nodes for group consolidation, env.dst_nid is used instead of using the iterator nid. Using env.dst_nid would mean dist is always the same. Infact the same dist was calculated above while evaluating the preferred node. Fix the above to use the iterator nid. Also the task/group weights from the src_nid should be calculated irrespective of numa topology type. Signed-off-by: Srikar Dronamraju --- kernel/sched/fair.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index d1aa374..e1b3393 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -1493,9 +1493,8 @@ static int task_numa_migrate(struct task_struct *p) if (nid == env.src_nid || nid == p->numa_preferred_nid) continue; - dist = node_distance(env.src_nid, env.dst_nid); - if (sched_numa_topology_type == NUMA_BACKPLANE && - dist != env.dist) { + dist = node_distance(env.src_nid, nid); + if (dist != env.dist) { taskweight = task_weight(p, env.src_nid, dist); groupweight = group_weight(p, env.src_nid, dist); } -- 1.8.3.1