From mboxrd@z Thu Jan 1 00:00:00 1970 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 31F11313E1B for ; Tue, 7 Apr 2026 19:21: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=1775589682; cv=none; b=gqzMZvMaMoxGhQqkVYmpoq95tZUhN1mcWmBhEylMgdjYTe540Q+tytZGtudTCh67UDQ5FtoS7ztQqzGExWqI5ie6YkJbXgjauUsHIGv3eLvlt2IpWgdZAjF3/Frll9uje0HJewRcGhGrGANrMLsZ5OWCuRE7fJOdjaKZp0bsfB8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589682; c=relaxed/simple; bh=DkernDWYJY7GJqimll3HFUcpfDPdb54VSOx8+b4Caf8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FrfT4XdMfR8e+yMj2SoAsIybdLaZK3D7vPJ0ZhC/7kZDNkneU/AP6JSUqeLeSg/K3nKi7Oibrdfx7KcoBeQsIs1uKBPcwMae6xKkg4DsscoSEMKHX6aI8x8w3mDe9VpJtleIZ2G7LOLOLXO0vgL/3d1PUiuuQA/yImqU3I9kVFA= 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=oKbzzejQ; 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="oKbzzejQ" Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637DtcCF2302243; Tue, 7 Apr 2026 19:20:47 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=uNVqGOtYS5W9TEbu2 YR3HcvhzXgyTIvC8SvcgiVp3Rk=; b=oKbzzejQhINDI5xbE7xSkJdePve4U6JlK +XDtqS6jJp6Zpwl+stmr12b7lo5qfEMNjmN6Kh3yKx4upvvFhHFg0iEa2/0vE93F A5329BK9JbZ/ViOIi/mHWbqxWP6C6YSwAjlbRCCoqTSA9ApGdlsFCN7dxJDy5TQ1 4zztbI7uBxWbImbrKft6Itdp/8u+ynj3r2rRJv9P0RfnW+nnPobzyzx7RbHmpXcz wBZAOW3BYN4Ur5kyANDpJDYmkiBaB4GTrD1VwlwmylnwocnDeJaXU37j5crRBIG0 3/M4Yq0RyD2Q2UGNgWvqPVVHiqBHNePb9jtuVqK9QEUcWYVIrSxJA== Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dcn2fcsj8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:20:46 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 637J08Je026661; Tue, 7 Apr 2026 19:20:45 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dcmg7vhm1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:20:45 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 637JKfqi56099190 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 7 Apr 2026 19:20:41 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A66C720043; Tue, 7 Apr 2026 19:20:41 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E290820040; Tue, 7 Apr 2026 19:20:36 +0000 (GMT) Received: from li-7bb28a4c-2dab-11b2-a85c-887b5c60d769.ibm.com.com (unknown [9.39.20.194]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 7 Apr 2026 19:20:36 +0000 (GMT) From: Shrikanth Hegde To: linux-kernel@vger.kernel.org, mingo@kernel.org, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, tglx@linutronix.de, yury.norov@gmail.com, gregkh@linuxfoundation.org Cc: sshegde@linux.ibm.com, pbonzini@redhat.com, seanjc@google.com, kprateek.nayak@amd.com, vschneid@redhat.com, iii@linux.ibm.com, huschle@linux.ibm.com, rostedt@goodmis.org, dietmar.eggemann@arm.com, mgorman@suse.de, bsegall@google.com, maddy@linux.ibm.com, srikar@linux.ibm.com, hdanton@sina.com, chleroy@kernel.org, vineeth@bitbyteword.org, joelagnelf@nvidia.com Subject: [PATCH v2 06/17] sched/fair: Select preferred CPU at wakeup when possible Date: Wed, 8 Apr 2026 00:49:39 +0530 Message-ID: <20260407191950.643549-7-sshegde@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260407191950.643549-1-sshegde@linux.ibm.com> References: <20260407191950.643549-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: 8bit X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDE3NSBTYWx0ZWRfXyDH89nt6JRDa Vro+wsv3QEEgfTMAxkt1KaleuDBUNJSXidvcNaMq55sMpeO7aag+AhVJ0mQ2QSolUgKlh6doAsu htdDpYAKFHiIvJw+qcz8U1wyl7vAP0abfiiqTLGPUCjBwVZh3ei7BZJF3VaXYJTrBhPMqh2WSK1 nVg8Z2DkxMBQlduJWpVCPxH7hb5lb/UTjh8sPxzXsVJsIdceMpxnhUwoiwGZf+cSenUU7Xp58DZ k5dVRGH9sW+JqoypWH+Fg5q5woW6yao5GdBAz28SbQTVYaj5O/YOSJbakvLXFo6aG/StOt3LVDD A1Er/FM7fVNdv4fJ/NtIzf69zNvWq2VQrkelsTsHFKlMH7wehmlx7/9p2Kd8LnHeaEWquLU+DdU 312iks3AmytLR5Qo2l9OzdJpw5IOc6AUhdsy+K4JmLeyQIxORXeLeSpe2eqZgQ3uLySgNVt4j2u aJp0cYDpITRvYUbcRXw== X-Authority-Analysis: v=2.4 cv=FsY1OWrq c=1 sm=1 tr=0 ts=69d5590e cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=U7nrCbtTmkRpXpFmAIza:22 a=VnNF1IyMAAAA:8 a=j9sfLVbiRzlE9PmvVxMA:9 X-Proofpoint-ORIG-GUID: K_3k7N0aFWIxrG9wjNurQi5FGNd5_cvf X-Proofpoint-GUID: jR5TLzsCq_iG2rVOxty7K9LwQ9OB_wYE X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-07_04,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 impostorscore=0 spamscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 adultscore=0 malwarescore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604070175 Update available_idle_cpu to consider preferred CPUs. This takes care of lot of decisions at wakeup to use only preferred CPUs. There is no need to put those explicit checks everywhere. Only other place where prev_cpu was not preferred and could possibly return was sched_balance_find_dst_cpu. Put the check there. Signed-off-by: Shrikanth Hegde --- kernel/sched/fair.c | 3 ++- kernel/sched/sched.h | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 86ef9ce39b61..22010afb4c1d 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -7698,7 +7698,8 @@ static inline int sched_balance_find_dst_cpu(struct sched_domain *sd, struct tas { int new_cpu = cpu; - if (!cpumask_intersects(sched_domain_span(sd), p->cpus_ptr)) + if (!cpumask_intersects(sched_domain_span(sd), p->cpus_ptr) && + cpu_preferred(prev_cpu)) return prev_cpu; /* diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index 7271af2ca64f..4c45092b2fce 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1412,6 +1412,9 @@ static inline bool available_idle_cpu(int cpu) if (!idle_rq(cpu_rq(cpu))) return 0; + if (!cpu_preferred(cpu)) + return 0; + if (vcpu_is_preempted(cpu)) return 0; -- 2.47.3