Received: by 2002:ab2:b82:0:b0:1f3:401:3cfb with SMTP id 2csp311862lqh; Thu, 28 Mar 2024 02:50:38 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCUKV8AxyLI0PGxb0Jrf2Ok4mH77+yBDDjlpoE+tHd/QhwRz0+Yks/GrzM01xJ0ibEg1fjKSFy33fEM2wjttv+x+o4BXCZzh8jhtLNHmmQ== X-Google-Smtp-Source: AGHT+IEbNascpBgpvqDLsLQNZKqcRV2P+QW0nGPuF2FK1AZW3Yg1SIqHvTlaZSTCPGifQR1JI9e3 X-Received: by 2002:a05:620a:ccf:b0:78a:64b4:95ee with SMTP id b15-20020a05620a0ccf00b0078a64b495eemr2656219qkj.37.1711619438013; Thu, 28 Mar 2024 02:50:38 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1711619438; cv=pass; d=google.com; s=arc-20160816; b=mJoWdfRma9rr81WuKqKij8CPkk943Sdu8Y2YmhQl5EAhdIyJ+CVCZBdSmUwflw9HDe lXkaTUg5Q71JbEyppbV57DfaKVRGXfKRw14qOACNqEFy3vaNAuSs266CI7Oc5LRSHPGV xtI4kyoB/2/ctUgiX38K+Awkkj1w3UhRC5BsT+eqy2yT5c9z+hz6smb/Pq6yZ1Ql/HMd KYrxWJswVy0b2qWmTpxlji61CkkSFdnH0bnwM0siWs2pcOokShYBuPqiqP4zKBwnVhUI VmyS0igZw6nQSrinW8TOL5tTCFKNgBFgRq4wD4GHdzdYS8nYwq7rMHYPJBQGhppAV4DL cAgA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:precedence:robot-unsubscribe:robot-id :message-id:mime-version:list-unsubscribe:list-subscribe:list-id :precedence:references:in-reply-to:cc:subject:to:reply-to:sender :from:dkim-signature:dkim-signature:date; bh=kWBFk7E4e9RaDBUdcG0EGwI7Xono95rwLUx6jTGftV0=; fh=oI8CU7BE4glshyA10Najeazno+wPfPxCnG++If/ibao=; b=rOCimjG6VlINSXcbqlm+TPyUsnhxqRPvhcR3XeQR79aWpo3Kbf1ROG1HUuQq8OI99g KsecLgxkqW4Q8qWHHVIGZAX9mMYlOoA9CdsRtIMHB85Lfve+4O1GSu4bvTKM46trWPK9 5HL1IOiQtJx2lJHtWfd+h3lCqB+QL+ozG6gBm/d04xldBxjfr00dcdufvYDPxwVkytLt wPBQHdwdCCg/nbdAlTht+BpuIvvwOTk1elLXmtD8fuLxDXj9e28jpol4xihvcM/xHQJQ 6db/XUwrJWWBz7wVFQ7R1ogVegvj6i9tkV5KnANzcMDrLhvdmXQBczXIu3PY4iZ1k/Am MVxg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=g9OfIYJm; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e; arc=pass (i=1 spf=pass spfdomain=linutronix.de dkim=pass dkdomain=linutronix.de dmarc=pass fromdomain=linutronix.de); spf=pass (google.com: domain of linux-kernel+bounces-122721-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-122721-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id wm21-20020a05620a581500b0078830dfb613si1082440qkn.217.2024.03.28.02.50.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 28 Mar 2024 02:50:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-122721-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=g9OfIYJm; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e; arc=pass (i=1 spf=pass spfdomain=linutronix.de dkim=pass dkdomain=linutronix.de dmarc=pass fromdomain=linutronix.de); spf=pass (google.com: domain of linux-kernel+bounces-122721-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-122721-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de 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 AA69E1C2D0AD for ; Thu, 28 Mar 2024 09:50:37 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id DECC77BAE1; Thu, 28 Mar 2024 09:50:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="g9OfIYJm"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="eGAmxNV7" Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3924E657B7; Thu, 28 Mar 2024 09:50:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.142.43.55 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711619424; cv=none; b=G6qZCmv60Y83nos9mIEG3jynaigZHixUOUnTEIvq8RE71ncLO/hE9IS5j+kXGShxwlyXtR428ANLy2xscvQxLT0EfA10droicTFocBJm7/kDDuIlPttPoDtcAtD0rAfM0ly0vnMLRcwVc2QdvhPcCIt0C3p3PO4ITfz9EUuLM+0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711619424; c=relaxed/simple; bh=SUi06SVhQ1CeX1M5/vaiDk/LDWppX360WfFjSq4XvIo=; h=Date:From:To:Subject:Cc:In-Reply-To:References:MIME-Version: Message-ID:Content-Type; b=YS7/hOp2CxsD0J5l6Atrk1eeQYoWyC63nR0Di7Si6xUZ1PWOfhAzeXzLISX8/YH8YA2y4CEmUycbU709eErGurzNZ0a0VjXgd1N4Gbhfj1Ax9eoN6ZF1jfPsu4/Pqv8U/8J831JVVOoj7yfOvBjtB9oCsq/QiDSKdg72cqjl4kM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de; spf=pass smtp.mailfrom=linutronix.de; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=g9OfIYJm; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=eGAmxNV7; arc=none smtp.client-ip=193.142.43.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linutronix.de Date: Thu, 28 Mar 2024 09:50:19 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1711619421; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kWBFk7E4e9RaDBUdcG0EGwI7Xono95rwLUx6jTGftV0=; b=g9OfIYJmWMtHHzHUsxOI/TPSgRZcCIk54Je4GZD6cDOgEyv7NdXcdnWIafcum0MAXRkk00 m7nVn9KnSNzwUth+w5Rm259PQ1u/FXcNTFhAJaiIhqhD6VHj5FsfLYSCUDYyWkiL+EOE4G ftDGR1AZqi5J54TOQwZ+qTBesD+FilH+ntnRFPxjIe2QDS7LnL3FMbX9bbWqhldzaRaMPK EJHpgFVfoEBYJochZUqzmJvz8wsDV3jPQ168nO3nXdcC483RYSjN74oI4LPS4oRcqGL0ck 5j1ttHVFP7bdfJ26BVkboFfcEhF0RpXhBpA/DVU/Gdg4zC4ym+CObA3RsdlzTw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1711619421; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kWBFk7E4e9RaDBUdcG0EGwI7Xono95rwLUx6jTGftV0=; b=eGAmxNV7jPGRRsDiiHxKbGdKQl6VZRw7imOvmWV+zkA+9wF+cfuvcU2c5Zjpc8kap6NnrO I8TPZq1xYSLsB1AA== From: "tip-bot2 for Shrikanth Hegde" Sender: tip-bot2@linutronix.de Reply-to: linux-kernel@vger.kernel.org To: linux-tip-commits@vger.kernel.org Subject: [tip: sched/core] sched/fair: Combine EAS check with root_domain::overutilized access Cc: Vincent Guittot , Shrikanth Hegde , Ingo Molnar , x86@kernel.org, linux-kernel@vger.kernel.org In-Reply-To: <20240326152616.380999-1-sshegde@linux.ibm.com> References: <20240326152616.380999-1-sshegde@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-ID: <171161942000.10875.13585922975103561544.tip-bot2@tip-bot2> Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails Precedence: bulk Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit The following commit has been merged into the sched/core branch of tip: Commit-ID: 902e786c4a54a2c4f7462b9026bb56610888db3d Gitweb: https://git.kernel.org/tip/902e786c4a54a2c4f7462b9026bb56610888db3d Author: Shrikanth Hegde AuthorDate: Tue, 26 Mar 2024 20:56:16 +05:30 Committer: Ingo Molnar CommitterDate: Thu, 28 Mar 2024 10:39:18 +01:00 sched/fair: Combine EAS check with root_domain::overutilized access Access to root_domainoverutilized is always used with sched_energy_enabled in the pattern: if (sched_energy_enabled && !overutilized) do something So modify the helper function to utilize this pattern. This is more readable code as it would say, do something when root domain is not overutilized. This function always return true when EAS is disabled. No change in functionality intended. Suggested-by: Vincent Guittot Signed-off-by: Shrikanth Hegde Signed-off-by: Ingo Molnar Link: https://lore.kernel.org/r/20240326152616.380999-1-sshegde@linux.ibm.com --- kernel/sched/fair.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 1856e58..3846230 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -6686,12 +6686,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) { - return READ_ONCE(rd->overutilized); + return !sched_energy_enabled() || READ_ONCE(rd->overutilized); } static inline void set_rd_overutilized_status(struct root_domain *rd, @@ -6710,8 +6709,6 @@ 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)) set_rd_overutilized_status(rq->rd, SG_OVERUTILIZED); @@ -7999,7 +7996,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; /* @@ -8202,7 +8199,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_overutilized(this_rq()->rd)) { new_cpu = find_energy_efficient_cpu(p, prev_cpu); if (new_cpu >= 0) return new_cpu; @@ -10903,12 +10900,9 @@ static struct sched_group *sched_balance_find_src_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_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)