From nobody Tue Feb 10 02:59:46 2026 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (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 95CF51C5D44 for ; Wed, 7 Jan 2026 06:52:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767768742; cv=none; b=IuUr1Il8qdrTyJ5VlhuZ7KnL+keLJ1bjwI1cvMTkxBlnUQywZCHvEQKRcfaAzze+8cwsifL64rGyO6CLWkQtEuxUwKL4e4oEJ79vGIWW1HmPooSFVJ0rjJ2Cn9sEgGUlxtX/hppkfiu5T+BFUX06j/ZbGmXzsv5zXWSMp2Fd0Fc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767768742; c=relaxed/simple; bh=+dwnAhz20tvtws6VvZ4x071mmwbZM4PcK4846f5pptg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LkTShuDGNxBTpXdt9fBiwUeTilh+e2+MoAxjyooCbQj6mpxek0MFo95UnFkjtgbxM+GPOcYqEID/PGCL3b9l2xYgZXYgfzoDwayM4mH9hKE5uiywrDYVUboQ3CPZaeIDbG7oTofBSx7I5bXc9uv6FoBKWxpfghiJxsciv2YEvJ4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=VgcZH2rn; arc=none smtp.client-ip=148.163.156.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="VgcZH2rn" Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 606IJdm6008176; Wed, 7 Jan 2026 06:51:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=zs20oWepA0YSSIqFU xVO+9FieISgIhMvpPwXV44qxGs=; b=VgcZH2rnHs08lLRmn5e2v7UHE+a9L8AjY X13T4WX853s9lFtbc+ue3tDERmUWFt9keqrU+S8Fl4+WhZ57aTIFJ9x47o3w1pIj i8bDyGMeM1coTRHqc/0sJICg0qeo6lzRFyuQs7X5F3KsUOjaYRqtZwT/cQlqebQg kbmJZ0DjifNFA4eLpkJaYss7QrHfGNVqOXC+wTZTAStWwjzVbqJfypxukE/QPEZD RV63LUPxhZPZqSmU4j+MVSev6LDhHgmgUsa/1XtoUVBfvwihfbn5qSeVKzh32Dso tO0qayAimIQinUdZ5QMSu6k2+CikPgA9PKa9DRhgFspyJb2Dwoerg== Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4betu67d9p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 07 Jan 2026 06:51:53 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 6074kKxW012536; Wed, 7 Jan 2026 06:51:52 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4bffnjfdxy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 07 Jan 2026 06:51:52 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 6076poVu29295058 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 7 Jan 2026 06:51:50 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 6EED420049; Wed, 7 Jan 2026 06:51:50 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 75E7720040; Wed, 7 Jan 2026 06:51:47 +0000 (GMT) Received: from li-7bb28a4c-2dab-11b2-a85c-887b5c60d769.ibm.com.com (unknown [9.124.216.12]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 7 Jan 2026 06:51:47 +0000 (GMT) From: Shrikanth Hegde To: mingo@kernel.org, peterz@infradead.org, vincent.guittot@linaro.org, linux-kernel@vger.kernel.org Cc: sshegde@linux.ibm.com, kprateek.nayak@amd.com, juri.lelli@redhat.com, vschneid@redhat.com, tglx@linutronix.de, dietmar.eggemann@arm.com, anna-maria@linutronix.de, frederic@kernel.org, wangyang.guo@intel.com Subject: [PATCH v3 1/3] sched/fair: Move checking for nohz cpus after time check Date: Wed, 7 Jan 2026 12:21:23 +0530 Message-ID: <20260107065125.669668-2-sshegde@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260107065125.669668-1-sshegde@linux.ibm.com> References: <20260107065125.669668-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 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=QbNrf8bv c=1 sm=1 tr=0 ts=695e0289 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=vUbySO9Y5rIA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=IMJbMpzTyqkz7RZfM9YA:9 X-Proofpoint-ORIG-GUID: vDpYxxm989Hn4RD0oSzy0otnsyOTYOH6 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA3MDA0OSBTYWx0ZWRfXyFbpBeRHFmkF 0F9+WywmlcZBNmhraeOEeCO8/WlZwxLV9jN8n1irzh3WWqkLmn00NnBkP4V9rIU0BccU8wIGfLH 2bx1CJ/dgXZj1URZ26JkJ3g3konqid9+8H4jnQZKTQAPLFvpMUU/lpyRk67yyMsuGzaJckPqBSj mzt5PRumVujNIEmJV0YsRAtCTk+sdrD3r8Ccd/r/qheT/hNGdmwHEj9/pwkknRK+sTgSVN1n/wM PvwMi7i2lDEKS1H7/gcq/9EBC54sDXa7HbeG3lukq0eqCTl/6avw0bneyzsabwdmEvLhepSgBZZ TzYdJDuIjgoaELo61A4SxavXM1d9O1wFr2/vHiYfeF4PLIXyISlhy3gKQGV16au+t5gk6y/+7rQ JFkCU8oMJXg7TqORRZs6OALnBoymNAeYsgNIb/tEjj0CzxIERpMxOAJRslAV1jjjj5vOe2y/35Q 8PcGGW+831ImSjRhxtw== X-Proofpoint-GUID: vDpYxxm989Hn4RD0oSzy0otnsyOTYOH6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-06_03,2026-01-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 bulkscore=0 suspectscore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 impostorscore=0 phishscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2512120000 definitions=main-2601070049 Content-Type: text/plain; charset="utf-8" NOHZ idle load balancer is kicked off only after time check. So move the atomic read after the time check to access it only when needed. When there are no idle CPUs(100% busy), even if the flag gets set to NOHZ_STATS_KICK | NOHZ_NEXT_KICK, find_new_ilb will fail and there will be no NOHZ idle balance. The current behaviour is retained. Note: This patch doesn't solve any cacheline overheads. No improvement in performance apart from saving a few cycles of atomic_read. Signed-off-by: Shrikanth Hegde --- kernel/sched/fair.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 9743fc0b225c..17e4e8ac5fca 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -12451,20 +12451,24 @@ static void nohz_balancer_kick(struct rq *rq) */ nohz_balance_exit_idle(rq); =20 - /* - * None are in tickless mode and hence no need for NOHZ idle load - * balancing: - */ - if (likely(!atomic_read(&nohz.nr_cpus))) - return; - if (READ_ONCE(nohz.has_blocked_load) && time_after(now, READ_ONCE(nohz.next_blocked))) flags =3D NOHZ_STATS_KICK; =20 + /* + * If none are in tickless mode, though flag maybe set, + * idle load balancing is not done as find_new_ilb fails + */ if (time_before(now, nohz.next_balance)) goto out; =20 + /* + * None are in tickless mode and hence no need for NOHZ idle load + * balancing: + */ + if (likely(!atomic_read(&nohz.nr_cpus))) + return; + if (rq->nr_running >=3D 2) { flags =3D NOHZ_STATS_KICK | NOHZ_BALANCE_KICK; goto out; --=20 2.47.3