Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp587936ybb; Wed, 25 Mar 2020 05:58:20 -0700 (PDT) X-Google-Smtp-Source: ADFU+vugh/2K5i1rvLeK9RC8axruFX4hBoZPc5/guYOTVivVHc4TzAp1ZIFQxBk8iMALtVjkfNUQ X-Received: by 2002:a4a:6841:: with SMTP id a1mr1096644oof.18.1585141100783; Wed, 25 Mar 2020 05:58:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585141100; cv=none; d=google.com; s=arc-20160816; b=GqW3Fr9CSoRs0Gwa/u2HxbvObudJJ/H/pDp8orSkAJLcrNkASMQ9y+IJM/lumR36cZ 161GLVf9E60HR+IdO1K6Qxv2xfIHylvuCLdUv6fZQFb9bH5430+xVIv2JyOEcfncJHo8 x4sQKE3vlalKhoBA68acjZnd5T0rqGigTPYWQmVCEPyNR4q7ELJGGOoj1vBNaj4+pexN 2BDumrFX5J+jIpylA5TP+epA4qfjKo8pghbyR9mg56BN/P13Jhh/4VCD+ER2JQpLe/Oy be/w4yfpt+jDbPOFhlpfg9xt2X5psZknOPxJxrj1A7E4ktQH4CUH2ZJwqXSveUeleAXb uNzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :ironport-sdr:ironport-sdr; bh=yK+W0wCfRAR+CyXc6RjQeqiIcc0+Ncjm9d7TdFzjy7E=; b=vANHEHEwdUV/h0PP+VAdmDbxF9693zM7vhonTMCwY02vbupZdA600Jn/7SU90hDQ6z wUU0I22fP9LUIrQofn3qgvAMcbuvrlkUa+mitYQdGRnj6AtgLOXyZNRi3uUjylRXjyVl uBxUT3fBrLMWZ9JsYfQ5s/WC1RzBUa0QheUsBa62Tl+4boUcCc57uJskyJ389Y6xJkQC qoGRdwZUT4KgcweBPGZ4ImlN3mBCoFkXe1m0k8yAl0ZSuWL/AE2hUZ7WnWYVYTWJR5ie kW2gUeySGdTjvZOH7uzc4QkowDCSLnuT25vZb1S6pB6w9nS6XHhe/wB0eqvr2R14yAvg nduw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q13si10990188otn.141.2020.03.25.05.58.07; Wed, 25 Mar 2020 05:58:20 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727259AbgCYM5q (ORCPT + 99 others); Wed, 25 Mar 2020 08:57:46 -0400 Received: from mga01.intel.com ([192.55.52.88]:6136 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726700AbgCYM5q (ORCPT ); Wed, 25 Mar 2020 08:57:46 -0400 IronPort-SDR: 4FrkzzbLkQwDfl1W+AyDcJWUozG8uyG1yFs/EH86hEz2ge/GOjDZGre3CNMVIhtCII7bBBd/S+ s+xBh0BZodcg== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Mar 2020 05:57:45 -0700 IronPort-SDR: ud2Jc42Q5Pw832YR1IM/USQWfvP2pWxpKtjoKRvxzjZl85Pv5lrjYPQZo3X0lEcKNjeNobve/h qu31qXwY5YiA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,304,1580803200"; d="scan'208";a="393617837" Received: from aubrey-ubuntu.sh.intel.com ([10.239.53.16]) by orsmga004.jf.intel.com with ESMTP; 25 Mar 2020 05:57:42 -0700 From: Aubrey Li To: vincent.guittot@linaro.org, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, linux-kernel@vger.kernel.org Cc: tim.c.chen@linux.intel.com, vpillai@digitalocean.com, joel@joelfernandes.org, Aubrey Li , Aubrey Li Subject: [PATCH] sched/fair: Don't pull task if local group is more loaded than busiest group Date: Wed, 25 Mar 2020 20:46:28 +0800 Message-Id: <1585140388-61802-1-git-send-email-aubrey.li@intel.com> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A huge number of load imbalance was observed when the local group type is group_fully_busy, and the average load of local group is greater than the selected busiest group, so the imbalance calculation returns a negative value actually. Fix this problem by comparing the average load before local group type check. Signed-off-by: Aubrey Li --- kernel/sched/fair.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index c1217bf..c524369 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -8862,17 +8862,17 @@ static struct sched_group *find_busiest_group(struct lb_env *env) goto out_balanced; /* + * If the local group is more loaded than the selected + * busiest group don't try to pull any tasks. + */ + if (local->avg_load >= busiest->avg_load) + goto out_balanced; + + /* * When groups are overloaded, use the avg_load to ensure fairness * between tasks. */ if (local->group_type == group_overloaded) { - /* - * If the local group is more loaded than the selected - * busiest group don't try to pull any tasks. - */ - if (local->avg_load >= busiest->avg_load) - goto out_balanced; - /* XXX broken for overlapping NUMA groups */ sds.avg_load = (sds.total_load * SCHED_CAPACITY_SCALE) / sds.total_capacity; -- 2.7.4