Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp365659pxb; Wed, 3 Feb 2021 07:21:43 -0800 (PST) X-Google-Smtp-Source: ABdhPJwFvZjb2xqtMKjlJJIfZ6TCBaakwWOkYLi9q/jYRZh13zdi3ZUYqJEJHdAOVMhAb0VU/gz9 X-Received: by 2002:a50:e40d:: with SMTP id d13mr3405466edm.286.1612365703437; Wed, 03 Feb 2021 07:21:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612365703; cv=none; d=google.com; s=arc-20160816; b=ymDbggQVnJuNoN/00ABh6Tjnui5fvCtE2nyWj68+qxEC5AKLsKD/kf4Cl3fRb8rZIQ b9E97XI3iHUON8sGN+/B+BjB1nA0onSarkXNMhsnmY3m1PB6ZUtEZ1mMAJsaNOm5EGjT n2to6bFOfkVDj7yMfHv7cKSwIpNeUNwKCCacvhnUe8upRGiqQ8YbZ2M7o3HyVYusW7ll Ji3FsaC2m7061zo8jZDlm8Cxc65HHIn99hCcG/lG5TSNawhHco21XhVzOQr6B2S/eYO1 NYG+iRFvCj/FeGC/CVr+Hh+3elxt7geCxZE10M7ebFj2iJ7VUigI9dn5aWxoKidias4w 52Uw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=RvrCeksYTAr4Ib5rubC85GcZ2iOOI/whkiuPaDXHdWE=; b=rwGjRV3FG0Sxxsordk5/K5Q4f7i0c09Bt1nEXRvJ+/pfwhJ72sVICwiISpghgWR7EL rPG4GBESKZM3OuNLFZtGLH8y/RtKJudQ/au1j90OTSNkiHYmzCphfnkMyV2ul5bZAieU BdfIrpHWZR/xn43rewMfE5WJ35gHG1zhbWgj0N2k3SARSipI+7DifZkFBrFA83UOHjt0 VIGvMOPkNIt0U84o/ROo3fJ7kkMHRbuqYIXlSuGOcqF2zPEisCsbpNjbG+l5yICt742a TaGRo0cx0AH5sajEpacdwXx45LKnT+bv1mTrAuVa9MmR3BZ0p49G417B6Ij35w4x9lo4 6J9Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id fi28si451962ejb.379.2021.02.03.07.21.18; Wed, 03 Feb 2021 07:21:43 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 S234193AbhBCPUh (ORCPT + 99 others); Wed, 3 Feb 2021 10:20:37 -0500 Received: from foss.arm.com ([217.140.110.172]:41994 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234283AbhBCPSI (ORCPT ); Wed, 3 Feb 2021 10:18:08 -0500 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 C399C12FC; Wed, 3 Feb 2021 07:17:22 -0800 (PST) Received: from e107158-lin (e107158-lin.cambridge.arm.com [10.1.194.78]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 71E3F3F73B; Wed, 3 Feb 2021 07:17:21 -0800 (PST) Date: Wed, 3 Feb 2021 15:17:18 +0000 From: Qais Yousef To: Valentin Schneider Cc: linux-kernel@vger.kernel.org, Peter Zijlstra , Ingo Molnar , Vincent Guittot , Dietmar Eggemann , Morten Rasmussen , Quentin Perret , Pavan Kondeti , Rik van Riel Subject: Re: [PATCH 8/8] sched/fair: Relax task_hot() for misfit tasks Message-ID: <20210203151718.fg5idcfqbdqhkrah@e107158-lin> References: <20210128183141.28097-1-valentin.schneider@arm.com> <20210128183141.28097-9-valentin.schneider@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20210128183141.28097-9-valentin.schneider@arm.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 01/28/21 18:31, Valentin Schneider wrote: > Misfit tasks can and will be preempted by the stopper to migrate them over > to a higher-capacity CPU. However, when runnable but not current misfit > tasks are scanned by the load balancer (i.e. detach_tasks()), the > task_hot() ratelimiting logic may prevent us from enqueuing said task onto > a higher-capacity CPU. > > Align detach_tasks() with the active-balance logic and let it pick a > cache-hot misfit task when the destination CPU can provide a capacity > uplift. Good catch. > > Signed-off-by: Valentin Schneider > --- > kernel/sched/fair.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index cba9f97d9beb..c2351b87824f 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -7484,6 +7484,17 @@ static int task_hot(struct task_struct *p, struct lb_env *env) > if (env->sd->flags & SD_SHARE_CPUCAPACITY) > return 0; > > + /* > + * On a (sane) asymmetric CPU capacity system, the increase in compute > + * capacity should offset any potential performance hit caused by a > + * migration. > + */ > + if (sd_has_asym_cpucapacity(env->sd) && > + env->idle != CPU_NOT_IDLE && > + !task_fits_capacity(p, capacity_of(env->src_cpu)) && Note for a very busy task that is running on the biggest cpu this will always return true. > + cpu_capacity_greater(env->dst_cpu, env->src_cpu)) But this will save us from triggering unnecessary migration. We could swap them and optimize for this particular case, but tbh this is the type of micro optimization that is hard to know whether it makes a real difference or not.. Anyways, this looks good to me. Reviewed-by: Qais Yousef Thanks -- Qais Yousef > + return 0; > + > /* > * Buddy candidates are cache hot: > */ > -- > 2.27.0 >