Received: by 2002:ab2:3319:0:b0:1ef:7a0f:c32d with SMTP id i25csp10179lqc; Thu, 7 Mar 2024 08:51:32 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCX0gO2e8WZhEd2NkdMKwVxIyGEW3DWKWtFDnS1TYEBjTLCnR2hdY1xU21lz7DS2qgbgxLxv2VRFhrUIuV+aExoOIFpUaKE7nZQ6vT7NaA== X-Google-Smtp-Source: AGHT+IE33phPho7/dQh6SDTaQB18hx2GhTEifJZP/XNFasc7bWjjepYLFHgHp7bYxh0c+By7R98e X-Received: by 2002:a05:6214:2af:b0:690:a96f:9a1b with SMTP id m15-20020a05621402af00b00690a96f9a1bmr1351814qvv.12.1709830292183; Thu, 07 Mar 2024 08:51:32 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709830292; cv=pass; d=google.com; s=arc-20160816; b=i/yWG8q/t1KaQNibZQCoA2B0dzwZBLu9XjLpN3SgVWFZDum/vjYbzXM/UiCNLvx+6k Zj6/NxwiEO+6qlpAhPIl5gGzACsv9evufe+SMHxj5hweXdeVZDnNowN09ky2Pw4ys/VT YpwV94ZEoJo+aZr0CYuichfXiN3guEuQPjowxtJlojM/aYw54+Vf+sjd7lyIzjr8Vi0K 7uRUUxrjEZWTNlgor2LEmN8P1drWvS2Vdw8bwsQ//+WHXc3aFuIpxwq+vaIHAuKWAWMi No7NnEtr6VxjuFVUFwAEgmwApYcRhRA3HoOcMBsGBWn86Yt3DBogP+WSNqQ7y3sC0UTN WEmA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:list-unsubscribe:list-subscribe:list-id:precedence :dkim-signature; bh=Wnra5m+sq3wWPvqWL6tYqfrszmGzJT5oM76OsNcwHZ0=; fh=w3fg4KGpWq6OsXKaYM9NjRQ3hW0Wve6jaUPIFXCX+co=; b=Dk5y2zHylw2CVI5fW9w2xi78x9amz9Id4Oh6ed/vItoohBppse85c380XLb+9w6X0n /vT2hNOSOBRvvLRZuZLw3XrBZb+wU5amWttV2NCDux6zwWfc5gQFflVxJqaYEvIcvPNb IGX30q4n/+yPr8UpgDnY05wbx7JLHnoLjoXeywWw6hOk5ZunNFvdFeprDDOPjMolxPAk 60FPS9nLT38VGKt0v7Mr4/+zDEv4BmI3VLtlbp0Y1ViZ90/C0D6Q/hwqHzYH9KFf6bd1 G2IbcpFljlTB6NrUxkXJs6a8mORcNBIq62B4bPU3/Vqk1vfMeeWeewUeDSYMTQ5wjLlz Yjvg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=rbuWuVd2; arc=pass (i=1 spf=pass spfdomain=linaro.org dkim=pass dkdomain=linaro.org dmarc=pass fromdomain=linaro.org); spf=pass (google.com: domain of linux-kernel+bounces-95885-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-95885-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id ow2-20020a0562143f8200b006903ca3f5b3si17053472qvb.129.2024.03.07.08.51.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Mar 2024 08:51:32 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-95885-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=rbuWuVd2; arc=pass (i=1 spf=pass spfdomain=linaro.org dkim=pass dkdomain=linaro.org dmarc=pass fromdomain=linaro.org); spf=pass (google.com: domain of linux-kernel+bounces-95885-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-95885-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id D71B71C210D9 for ; Thu, 7 Mar 2024 16:51:31 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3FF77130AE1; Thu, 7 Mar 2024 16:51:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="rbuWuVd2" Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D282A12FB0D for ; Thu, 7 Mar 2024 16:51:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.170 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709830270; cv=none; b=fIz+qKim9jcjOSXuKd3I0k/99E2VoEzh+A601hPlfq0dNmXtdGc7/9NSWtaNjRg5Y1+wPONVyhB3Ryu+U2TqjVyIPZ7BWxzNAuVoZry5TLCBuMSAYoWXb8uN2ZtWe41ZGEB8IxXf4id54KzEagnJkLje38BwJfXd0nIO9aO0oeI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709830270; c=relaxed/simple; bh=yWoN7kMXPJ1+jbDqJWHNPeW5N/s3MWg1CoEk+cIJmbU=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=C0O3ZfftMrFpO8r2RyLJEoCPzn3XPLW8Ujn/Gs9bduAJn1zvJQV5DUOA438QtVthYUAOTB/A6NVTaSNWI00PT+QFWM9V138qsvDb6nX2BfTee/C5VYIAeLNjLfDT73rCtrd17n837Xmp6VIZGMdRwSDAWHIAkAXXo+YfC1Z+jk4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=rbuWuVd2; arc=none smtp.client-ip=209.85.210.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Received: by mail-pf1-f170.google.com with SMTP id d2e1a72fcca58-6e649a2548cso1028154b3a.3 for ; Thu, 07 Mar 2024 08:51:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1709830268; x=1710435068; darn=vger.kernel.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Wnra5m+sq3wWPvqWL6tYqfrszmGzJT5oM76OsNcwHZ0=; b=rbuWuVd2WgP5l+OHA2PAeWut6yjAkfhQEj4NwrrMwv38Eb6nul0He7gRubb/8I/4vT AvJBAOszVG15YsF4z5XOJHwrpKvlmv8c9w8yNjSOejgzwOgicW+tTP83rsTuoVxJ7ee6 Gs/DY1swrV9LBmS0pV4v+ygYnWTRpMs0bkCcQHmABZi33GKT26AxhuTEd9L8wbrzBL9T A2IqhCAJOwZa+0eQGPQum4lUXvrwQjfJxJioiazMWCYC3P2vrubygFvKVkYxi6A1kFnZ d0GXsx7knuNhYQna77vpxPHhaFGF3rz6jb/NpcjZaI3/OIOb5S0x1wQcAeR5NG1k0l+x +zBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709830268; x=1710435068; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Wnra5m+sq3wWPvqWL6tYqfrszmGzJT5oM76OsNcwHZ0=; b=hQ13E1LOBNOCzYhp0aCTdZRjUIppko8Zm9HmRyCLl7rjOfpGriKsn6Duz/q0ddyycQ TfNPaSSCsMLBU1SfVSNcxIGDr7lbrXeJN0iJAQOBKDUX3ce/N0p7IpyTqUCI+JfIW/9Q N3J8hKP5qqyaJ9BVPPaRM/isXLTd5EpzM3tIbBt+wcMTFBXWftEF/fX7jtpIS8PnDnKp EWd6b/UR7FTvbqJrxzg+5Rkow1/Xyoe1FE87Juki8NnoLAyTnVyIrChBJ05h9S/9lPdh kACBLOxFXF0J1mf/ytAq9iQVez61IBYYkSwu6iFiuryW91d8hw+KycTy6TlIBo5sA6Ex AxQA== X-Forwarded-Encrypted: i=1; AJvYcCW2koUVHC1uZFmEAQYQxthZKGaMXrksUEO2+Gte9fNyOc+hH9RQxkySYs7L5zFdFAmEkaKrXQ1gwK6Y8yN5GGAU2FTeTFP/D8S3pBFN X-Gm-Message-State: AOJu0YxKbUQfLj6Ft5tkNkbkpS+6JuYOQXYhzLg/RUF6/B6lOnj/5OtO MHzQARDrrUsahC/JMOi66TiZaU+7Z2kGhIL7+9gz/oIoW44Xy5pj5VEmVA67TpRj5UqnYHQ9ZCR cuUohA0vFcWRQmLKJmuK36D9r4viSjEa7v//dvw== X-Received: by 2002:a05:6a20:8f18:b0:1a1:6b2c:873e with SMTP id b24-20020a056a208f1800b001a16b2c873emr5788398pzk.13.1709830268191; Thu, 07 Mar 2024 08:51:08 -0800 (PST) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20240307085725.444486-1-sshegde@linux.ibm.com> <20240307085725.444486-4-sshegde@linux.ibm.com> In-Reply-To: <20240307085725.444486-4-sshegde@linux.ibm.com> From: Vincent Guittot Date: Thu, 7 Mar 2024 17:50:57 +0100 Message-ID: Subject: Re: [PATCH v6 3/3] sched/fair: Combine EAS check with overutilized access To: Shrikanth Hegde Cc: mingo@kernel.org, peterz@infradead.org, yu.c.chen@intel.com, dietmar.eggemann@arm.com, linux-kernel@vger.kernel.org, nysal@linux.ibm.com, aboorvad@linux.ibm.com, srikar@linux.ibm.com, vschneid@redhat.com, pierre.gondois@arm.com, qyousef@layalina.io Content-Type: text/plain; charset="UTF-8" On Thu, 7 Mar 2024 at 09:58, Shrikanth Hegde wrote: > > Access to overutilized is always used with sched_energy_enabled in > the pattern: > > if (sched_energy_enabled && !overutilized) > do something > > So modify the helper function to return this pattern. This is more > readable code as it would say, do something when root domain is not > overutilized. > > No change in functionality intended. > > Suggested-by: Vincent Guittot > Signed-off-by: Shrikanth Hegde Reviewed-by: Vincent Guittot > --- > kernel/sched/fair.c | 24 +++++++++--------------- > 1 file changed, 9 insertions(+), 15 deletions(-) > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index 87e08a252f94..bcda18a2ccfe 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -6676,12 +6676,11 @@ static inline bool cpu_overutilized(int cpu) > } > > /* > - * Ensure that caller can do EAS. overutilized value > - * make sense only if EAS is enabled > + * overutilized value make sense only if EAS is enabled > */ > -static inline int is_rd_overutilized(struct root_domain *rd) > +static inline int is_rd_not_overutilized(struct root_domain *rd) > { > - return READ_ONCE(rd->overutilized); > + return sched_energy_enabled() && !READ_ONCE(rd->overutilized); > } > > static inline void set_rd_overutilized_status(struct root_domain *rd, > @@ -6700,10 +6699,8 @@ static inline void check_update_overutilized_status(struct rq *rq) > * overutilized field is used for load balancing decisions only > * if energy aware scheduler is being used > */ > - if (!sched_energy_enabled()) > - return; > > - if (!is_rd_overutilized(rq->rd) && cpu_overutilized(rq->cpu)) > + if (is_rd_not_overutilized(rq->rd) && cpu_overutilized(rq->cpu)) > set_rd_overutilized_status(rq->rd, SG_OVERUTILIZED); > } > #else > @@ -7989,7 +7986,7 @@ static int find_energy_efficient_cpu(struct task_struct *p, int prev_cpu) > > rcu_read_lock(); > pd = rcu_dereference(rd->pd); > - if (!pd || is_rd_overutilized(rd)) > + if (!pd) > goto unlock; > > /* > @@ -8192,7 +8189,7 @@ select_task_rq_fair(struct task_struct *p, int prev_cpu, int wake_flags) > cpumask_test_cpu(cpu, p->cpus_ptr)) > return cpu; > > - if (sched_energy_enabled()) { > + if (is_rd_not_overutilized(this_rq()->rd)) { > new_cpu = find_energy_efficient_cpu(p, prev_cpu); > if (new_cpu >= 0) > return new_cpu; > @@ -10869,12 +10866,9 @@ static struct sched_group *find_busiest_group(struct lb_env *env) > if (busiest->group_type == group_misfit_task) > goto force_balance; > > - if (sched_energy_enabled()) { > - struct root_domain *rd = env->dst_rq->rd; > - > - if (rcu_dereference(rd->pd) && !is_rd_overutilized(rd)) > - goto out_balanced; > - } > + if (is_rd_not_overutilized(env->dst_rq->rd) && > + rcu_dereference(env->dst_rq->rd->pd)) > + goto out_balanced; > > /* ASYM feature bypasses nice load balance check */ > if (busiest->group_type == group_asym_packing) > -- > 2.39.3 >