Received: by 2002:ac0:e350:0:0:0:0:0 with SMTP id g16csp338462imn; Thu, 4 Aug 2022 07:57:23 -0700 (PDT) X-Google-Smtp-Source: AA6agR5kuoSWL89CUCtmJDZuC1SEL4ZrrFI5NAB94yfHJekbqsBSlUB31eDs2Nard4abup33/Qc/ X-Received: by 2002:a63:235d:0:b0:41a:e265:becb with SMTP id u29-20020a63235d000000b0041ae265becbmr2010674pgm.158.1659625043571; Thu, 04 Aug 2022 07:57:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1659625043; cv=none; d=google.com; s=arc-20160816; b=OzqW/bhYzeqF5Kzcyu63WcBZoN8EkrG54PFBN3ANMKoFS2PiZy58FyOqwC0URqpcpn pKnrUMMi2j2f1eR9yByIw8TmlqXHHc7pMySl3yxKHLRKg05XvUNkSoC58tAPmdNJ02ZV hNugmvEX4v3vRshf4mC1eOH0mV8JAgE0nfvPyTPky0ioZThUyRiIxP0p7dzcyAZKJtQE jc6b58K+wkC0jfL2cV3tifVj5elgVuowWNCEDcXTAXRvO16P7gQYNirr4Jil75OgUNaq cuBSfGUcW7EFsov9BbE+E/0nr52Vn9uA30fhrWeFybgmC1iDX1Iy27GbGSTBIgzQitBF wzgA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=HEtOmm/HfMAxqi8fxkLoXAhSezJkOTSX7TTJrposlL4=; b=h+9bf4qY4R35RY0jmkcE6Ys4DQALxjzS6FscCvKVxYgPmX7FgazqaRETA0P6p3Qj37 LauecQ/8k4h01psiJjOkdVhxTwWtUFR/XVQCkj20Ax/qwv2xGmJa+OrlOXDQrIjmhaFb z2meAE+6zligo2V/XH2abm3u4A2/cBZQq30CcUeeGSZSRC0LYEvvsm2eoB9AW3FrHW9f P9BKsaLyGmA2difrr+K5jd5z4l1dGG4lTOepN9SY8uVD8SyHfkSJkJU0V4D0jXtBi6ez pbY8eHN0Yymuq7whvUnVCv6hbDpv5TAgCyhZFcpRbwehBMI2nVriGItvCpeHwCsxMnyF fJ7w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n13-20020a170902e54d00b0016bd79636a5si1193575plf.575.2022.08.04.07.57.10; Thu, 04 Aug 2022 07:57:23 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239959AbiHDOg7 (ORCPT + 99 others); Thu, 4 Aug 2022 10:36:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49748 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239823AbiHDOgt (ORCPT ); Thu, 4 Aug 2022 10:36:49 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 472A74C627 for ; Thu, 4 Aug 2022 07:36:44 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id BDB3911FB; Thu, 4 Aug 2022 07:36:44 -0700 (PDT) Received: from localhost.localdomain (unknown [10.57.10.177]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 913993F73B; Thu, 4 Aug 2022 07:36:42 -0700 (PDT) From: Qais Yousef To: Ingo Molnar , "Peter Zijlstra (Intel)" , Vincent Guittot , Dietmar Eggemann Cc: linux-kernel@vger.kernel.org, Xuewen Yan , Lukasz Luba , Wei Wang , Jonathan JMChen , Hank , Qais Yousef Subject: [PATCH v2 4/9] sched/uclamp: Make select_idle_capacity() use util_fits_cpu() Date: Thu, 4 Aug 2022 15:36:04 +0100 Message-Id: <20220804143609.515789-5-qais.yousef@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220804143609.515789-1-qais.yousef@arm.com> References: <20220804143609.515789-1-qais.yousef@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Use the new util_fits_cpu() to ensure migration margin and capacity pressure are taken into account correctly when uclamp is being used otherwise we will fail to consider CPUs as fitting in scenarios where they should. Fixes: b4c9c9f15649 ("sched/fair: Prefer prev cpu in asymmetric wakeup path") Signed-off-by: Qais Yousef --- kernel/sched/fair.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index ea02c64cd933..3079ca867f2c 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -6603,21 +6603,23 @@ static int select_idle_cpu(struct task_struct *p, struct sched_domain *sd, bool static int select_idle_capacity(struct task_struct *p, struct sched_domain *sd, int target) { - unsigned long task_util, best_cap = 0; + unsigned long task_util, util_min, util_max, best_cap = 0; int cpu, best_cpu = -1; struct cpumask *cpus; cpus = this_cpu_cpumask_var_ptr(select_rq_mask); cpumask_and(cpus, sched_domain_span(sd), p->cpus_ptr); - task_util = uclamp_task_util(p); + task_util = task_util_est(p); + util_min = uclamp_eff_value(p, UCLAMP_MIN); + util_max = uclamp_eff_value(p, UCLAMP_MAX); for_each_cpu_wrap(cpu, cpus, target) { unsigned long cpu_cap = capacity_of(cpu); if (!available_idle_cpu(cpu) && !sched_idle_cpu(cpu)) continue; - if (fits_capacity(task_util, cpu_cap)) + if (util_fits_cpu(task_util, util_min, util_max, cpu)) return cpu; if (cpu_cap > best_cap) { -- 2.25.1