Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754608AbdFWQzq (ORCPT ); Fri, 23 Jun 2017 12:55:46 -0400 Received: from shelob.surriel.com ([96.67.55.147]:58343 "EHLO shelob.surriel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754011AbdFWQzn (ORCPT ); Fri, 23 Jun 2017 12:55:43 -0400 From: riel@redhat.com To: linux-kernel@vger.kernel.org Cc: jhladky@redhat.com, mingo@kernel.org, mgorman@suse.de, peterz@infradead.org Subject: [PATCH 1/4] sched,numa: override part of migrate_degrades_locality when idle balancing Date: Fri, 23 Jun 2017 12:55:27 -0400 Message-Id: <20170623165530.22514-2-riel@redhat.com> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170623165530.22514-1-riel@redhat.com> References: <20170623165530.22514-1-riel@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1116 Lines: 34 From: Rik van Riel Several tests in the NAS benchmark seem to run a lot slower with NUMA balancing enabled, than with NUMA balancing disabled. The slower run time corresponds with increased idle time. Overriding the final test of migrate_degrades_locality (but still doing the other NUMA tests first) seems to improve performance of those benchmarks. Reported-by: Jirka Hladky Signed-off-by: Rik van Riel Signed-off-by: Rik van Riel --- kernel/sched/fair.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 2a0e71034e36..2180c8591e16 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -6635,6 +6635,10 @@ static int migrate_degrades_locality(struct task_struct *p, struct lb_env *env) if (dst_nid == p->numa_preferred_nid) return 0; + /* Leaving a core idle is often worse than degrading locality. */ + if (env->idle != CPU_NOT_IDLE) + return -1; + if (numa_group) { src_faults = group_faults(p, src_nid); dst_faults = group_faults(p, dst_nid); -- 2.9.4