From nobody Mon Jun 15 03:52:32 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (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 D93743321BF for ; Tue, 7 Apr 2026 19:21:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589711; cv=none; b=jBoVFZv9HoZDzgD5z6T4g724blop1n5GXZXm2hte/wyIqFzpcnvqZrvvgpK4hQixSScaB13EyiSG4q4MEYOSkmZdUeEqSf1q1d9o7hOikOid7alV2TBA8/Go9t7jgj8a8Jr/0bcpQBzfXBMFzN9WwnCBOgcEAtj/NwyqEF6veHk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589711; c=relaxed/simple; bh=mdNQ2+Hqf5xe1YYXQ0LT2Z1Sxx+T6TbdbG/u5mvJVjw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iU5u+Mhu9Zvj14y6bDBuDjaVGJ1rmJ+Me6hogNvAtjmuN3lcqacYtgV2ALqYKq2O8/BWZBfKr/VGvKt/E+Aq+HeyGQi5t9KWgcZw8btRDbunPbRX3Y90zocMeFJXHB3mgOIM+zehF5lxrKgBHFHPVem+xzvlnAyzAeaFKIhbImA= 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=ihej387R; arc=none smtp.client-ip=148.163.158.5 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="ihej387R" Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637EA1312299517; Tue, 7 Apr 2026 19:20:22 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=smUKSGk4iARfVEwo7 UeXVM8PPspz0u0YpfcFGq0Li8M=; b=ihej387Rw02CJ0xYMy1f+taMas4gVPTcE /Znt56cwH/XsHITI7m42uvK1+WnUKkxeuwdlPaRv0EnKQRigYQXpWMQ8wEotM8mk ApNj28gBzgg6b0IxmiSJcfq46Ot2crCBqkyDBNQUrvr4MZUXaJc/YGZi78Ybp5Im 9WpXZHQqgY0jvrl41uMS4JXhIUJ8m7tBAuG97u4H8o3HxEKm1DvLIDjivG+EzkqI ju8nSUWlsIJbi9KnC/iDQn82TWw7ddt0O6bsgweo1SNzj3QJgMk6tGraUMKPJidq ujsj2eqD3zTBqbZV4JM5T5hpQcz7DBxLF5DqWyrEtYOAVB2q9acaQ== Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dcn2fvd3d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:20:21 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 637IeVoK014356; Tue, 7 Apr 2026 19:20:20 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dcmg4mhsn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:20:20 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 637JKG6J30999042 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 7 Apr 2026 19:20:16 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id AA1A520040; Tue, 7 Apr 2026 19:20:16 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 14BDA20043; Tue, 7 Apr 2026 19:20:12 +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:11 +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 01/17] sched/debug: Remove unused schedstats Date: Wed, 8 Apr 2026 00:49:34 +0530 Message-ID: <20260407191950.643549-2-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: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Authority-Analysis: v=2.4 cv=KeridwYD c=1 sm=1 tr=0 ts=69d558f6 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=RzCfie-kr_QcCd8fBx8p:22 a=VnNF1IyMAAAA:8 a=NlpiSR-wqh4DhfsiYFIA:9 X-Proofpoint-ORIG-GUID: A-dBl164gfL984kgXwMbff8PiNqBJou2 X-Proofpoint-GUID: 0X55OKFJUEz_SBazIBPktWWlEdX6BJ5f X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDE3NSBTYWx0ZWRfX8BjSDKQcVMbc +nEDYZrUSk7ed/ixRkVF/bvXnN+qGnfO1pynHHMVRZb/fR21r8TASMTAerBfXVvveCt5Pa9MZJU RU6IIQcZwTYjkomgB8b87NmWTIORgZKLGherF1aa5M29j/iMsf6sXiG2HeJvUboJZJnpGBUB2P6 zFmHaHLm+mfu6qzohN20zqi5pxGYVxVQ2ARusFrmW8clO/XEISe3v2B9OhIHEgBbjmzROrZbzSE oiSVRmSo/vWgyWy79jLEXRAVs5yAU28PSrD49fKpDjw0PFxxTw75VBUFjIbBhuGVY8ydC/ho/pS 43FTygDM7WnFuf24jdGtWOAYdXL0yvPxATt0u3oGgfZGckRsg6pyIhxYhnqyUAwJ47GQ4tvxUfJ W0rRnFjROMoRuHnZQnuJJL5EUqPAh1FBt8OrJdxVtl87QBJ9AYkxLjlJ8VMpb07Mb3to74hnxrN 8VlNSgzux+lKxRoGgJg== 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 suspectscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 clxscore=1015 phishscore=0 priorityscore=1501 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604070175 Content-Type: text/plain; charset="utf-8" nr_migrations_cold, nr_wakeups_passive and nr_wakeups_idle are not being updated anywhere. So remove them. These are per process stats. So updating sched stats version isn't necessary. Signed-off-by: Shrikanth Hegde --- include/linux/sched.h | 3 --- kernel/sched/debug.c | 3 --- 2 files changed, 6 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h index 8ec3b6d7d718..1eb3825bcaeb 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -550,7 +550,6 @@ struct sched_statistics { s64 exec_max; u64 slice_max; =20 - u64 nr_migrations_cold; u64 nr_failed_migrations_affine; u64 nr_failed_migrations_running; u64 nr_failed_migrations_hot; @@ -563,8 +562,6 @@ struct sched_statistics { u64 nr_wakeups_remote; u64 nr_wakeups_affine; u64 nr_wakeups_affine_attempts; - u64 nr_wakeups_passive; - u64 nr_wakeups_idle; =20 #ifdef CONFIG_SCHED_CORE u64 core_forceidle_sum; diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c index 74c1617cf652..f8a43fc13564 100644 --- a/kernel/sched/debug.c +++ b/kernel/sched/debug.c @@ -1301,7 +1301,6 @@ void proc_sched_show_task(struct task_struct *p, stru= ct pid_namespace *ns, P_SCHEDSTAT(wait_count); PN_SCHEDSTAT(iowait_sum); P_SCHEDSTAT(iowait_count); - P_SCHEDSTAT(nr_migrations_cold); P_SCHEDSTAT(nr_failed_migrations_affine); P_SCHEDSTAT(nr_failed_migrations_running); P_SCHEDSTAT(nr_failed_migrations_hot); @@ -1313,8 +1312,6 @@ void proc_sched_show_task(struct task_struct *p, stru= ct pid_namespace *ns, P_SCHEDSTAT(nr_wakeups_remote); P_SCHEDSTAT(nr_wakeups_affine); P_SCHEDSTAT(nr_wakeups_affine_attempts); - P_SCHEDSTAT(nr_wakeups_passive); - P_SCHEDSTAT(nr_wakeups_idle); =20 avg_atom =3D p->se.sum_exec_runtime; if (nr_switches) --=20 2.47.3 From nobody Mon Jun 15 03:52:32 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (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 C92E824503B for ; Tue, 7 Apr 2026 19:21:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589671; cv=none; b=sbyo3s09uzK6s9+9UwKtBl+nFvvihrr3dDj0/F/uMyYVHrV7twoRscHDdoQPjPjFilJodqT7FleaDlOLja1pGWUQ9Qvjyu4riDuvnaHbQvQB30dYIh8CZhMTLz1bRYxP7PBFjg9nZthVnAl/7LFXnjJ8fCYvkanrA8EMj95c1B8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589671; c=relaxed/simple; bh=d9PTTtjVS/Vh06kJHwuT3ws/QkGAqT3YH/fDjSFY+zI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HCSR+dXE4UPKSHjr6oQy4escUG08UQ0J80x9zJe7n6t/rxBxMtFqy13NeIeUIh4WUuGZdrDiTz6uyI1pNmxQpPyvt1KLqEt9Faaq3uAd6YMR5iMgmcO8rk30ctRzmjBl04tNmeCrug99NwcsxS+caaWLVn4eC6JNsLStFknsLck= 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=PkCfD0vm; arc=none smtp.client-ip=148.163.158.5 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="PkCfD0vm" Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637E9hks2210127; Tue, 7 Apr 2026 19:20:27 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=z4MLianDz1u+gPaDM FRo2WyagNmVaxUByDouFtHE3EI=; b=PkCfD0vmUOalm2ylyPpb1jof90eT57ySp 5BhaQMKbHEx+1Ajrw++4KmrUuc9RxvRhCQc2G2iVPJkziLTXgNz0r9+BEP3Dh7i7 K1ciya/cv81gVX6OmzuSvw2PUWGmPV1tjCphhPjpdUMp0Dnh5fnNUOkIp6yg13hd OuCaaAYIgJ46su2BH9fLMx1qk3nLy5BcqdVyZ1KLUKtbTTGxzII//hMmO0wionMp A65l6r51uu1OMfR56Tkohr/qJmfaEu1vjwOtHwD8jW0u5IWO497NhIqtUVmnEt3B 7+8y9QwOFS3CI6zplcWpkMBlOXKVYzBnRfr28fhzexSTn3EBK0FjA== Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dcn2hccd7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:20:26 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 637Ir5nZ014345; Tue, 7 Apr 2026 19:20:25 GMT Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dcmg4mht3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:20:25 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay02.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 637JKLlV39453076 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 7 Apr 2026 19:20:22 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D25F220043; Tue, 7 Apr 2026 19:20:21 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0480B20040; Tue, 7 Apr 2026 19:20:17 +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:16 +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 02/17] sched/docs: Document cpu_preferred_mask and Preferred CPU concept Date: Wed, 8 Apr 2026 00:49:35 +0530 Message-ID: <20260407191950.643549-3-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: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDE3NSBTYWx0ZWRfX4xz6TKqyrEvE N2bdRTCNYeDiL1bLKKpZwiYkggtUbXPZUxaH7JAjckgLNdu1SikJe8v3stz0VLrgr7kneA2VR/A BgzzYa/jzwWQo68htvwYov1FnvWg1gh6wJttkJutDXwEMVkabr057Aicw7P5r++y4Rk4zzbM/oy IVNXmBD70R7T/nMUhEtq44SErs5Ow1IsRfDuBVree4QXxkQCllGUSaqonvsnqS7ejj0zXNiPc3j CjFvoUBgQ3kI19wKd6TsQQyaKROdwfj3HIw1Ummo4Y5puMTPGIDN83MakPSMqPK4yM4te8toGgH fA54tpGvYu/wcjN2B6bv3RoV++LlPft6f/7hQWM6UeXiyHotnK27cWigyDV58Le5LCt9r+dgWxz vrXQ5ns4HXl0yCcMMG8xr90UPchw9nlaCBArtWxl2IobLjX/5d9bhUUXhSdbtVRWhJpwaeMa85v 3mZYHDTVbAm7AIvnjzA== X-Proofpoint-GUID: V9BR2Nks4Oq-9jXon8MjsiD9fh2EfXyK X-Authority-Analysis: v=2.4 cv=a/wAM0SF c=1 sm=1 tr=0 ts=69d558fb cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=jh6Gn3DwPfN3ZNOXjfUA:9 X-Proofpoint-ORIG-GUID: 78gY9cAf-4FN6Vu7-MtKlkJMTWl6-4G_ 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 clxscore=1015 spamscore=0 impostorscore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0 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 Content-Type: text/plain; charset="utf-8" Add documentation for new cpumask called cpu_preferred_mask. This could help users in understanding what this mask and the concept behind it. Signed-off-by: Shrikanth Hegde --- Documentation/scheduler/sched-arch.rst | 48 ++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/Documentation/scheduler/sched-arch.rst b/Documentation/schedul= er/sched-arch.rst index ed07efea7d02..2e926c7afc8f 100644 --- a/Documentation/scheduler/sched-arch.rst +++ b/Documentation/scheduler/sched-arch.rst @@ -62,6 +62,54 @@ Your cpu_idle routines need to obey the following rules: arch/x86/kernel/process.c has examples of both polling and sleeping idle functions. =20 +Preferred CPUs +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +In virtualised environments it is possible to overcommit CPU resources. +i.e sum of virtual CPU(vCPU) of all VM's is greater than number of physical +CPUs(pCPU). Under such conditions when all or many VM's have high utilizat= ion, +hypervisor won't be able to satisfy the CPU requirement and has to context +switch within or across VM. i.e hypervisor need to preempt one vCPU to run +another. This is called vCPU preemption. This is more expensive compared to +task context switch within a vCPU. + +In such cases it is better that VM's co-ordinate among themselves and ask = for +less CPU by not using some of the vCPUs. vCPUs where workload can be safely +scheduled which won't increase any contention for pCPU are called as +"Preferred CPUs". + +In most cases preferred CPUs will be same as online CPUs, when there is pC= PU +contention, Preferred CPUs will reduce based on the amount of steal time. +When the pCPU contention goes away as indicated by steal time, Preffered C= PUs +will become same as online CPUs again. This will be done by new scheduler +feature called STEAL_MONITOR. + +For scheduling decisions such as wakeup, pushing the task etc, needs this +CPU state info. This is maintained in cpu_preferred_mask. + +vCPUs which are not in cpu_preferred_mask should be treated as vCPUs which +should not be used at this moment provided it doesn't break user affinity. +This is achieved by +1. Selecting only a preferred CPU at wakeup. +2. Push the task away from non-preferred CPU at tick. +3. Only select preferred CPUs for load balance. + +This works only for SCHED_RT and SCHED_NORMAL. SCHED_EXT and userspace can +make choices using cpu_preferred_mask. + +/sys/devices/system/cpu/preferred prints the current cpu_preferred_mask in +cpulist format. + +Notes: +1. This feature is available under CONFIG_PARAVIRT. +2. preferred CPUs is same as online CPUs until STEAL_MONITOR is enabled. +3. A task pinned, which can't be moved to preferred CPUs will continue + to run based on its affinity. But no load balancing happens +4. If needed, steal time based governors/arch dependent method + could be used to cater to different types of cpu numbers. +5. Decision to use/not use is driven by kernel. Hence it shouldn't + break user affinities. One of the main reason why CPU hotplug + or Isolated cpuset partitions was not a solution. =20 Possible arch/ problems =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --=20 2.47.3 From nobody Mon Jun 15 03:52:32 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 C8BE33358BF for ; Tue, 7 Apr 2026 19:21:11 +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=1775589673; cv=none; b=YHm9pPSVU0s6QI4dw+qxc7DvZzgEk048dh6QfELmmUDyXYew9trnznRtecbsJqe2sZflpEIvc55n2TgyNnyJBtOrWz6f16P7o4Fn2J+vzC+m33/OHreISdElfELW6d3UlltfGdWh9vqVTbKTkX7sTHwy5Stb0KHpGOIbcTmOPLU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589673; c=relaxed/simple; bh=wO41P1XlqooTzZwbv3d4Qpnbtjd6OgWZ94spzfKNbEQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AiOE5T/FKrnEuU9Tqx0m6XXVNkmUmCAvrSd4YytxOfX84It4zAx/Y5WMzogFKjhdJ2yplRFLzVgGeZ4PRj/4Zyutu7QuGQzBGZtsaIIOREKVjo3/M5hyBo2jLUPQC1N9vZfs17uQCnhZGB1gDqYJ1cLzbCztxAoNM/xsuXnbXFk= 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=k1L+jwwY; 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="k1L+jwwY" 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 637E5JfN2302532; Tue, 7 Apr 2026 19:20:32 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=zJbsKdKgrMa1XPzsn cfT1R1S3eHbGprcYYIRxfS/03g=; b=k1L+jwwYTkGWxeDN/0W9Ltm2pGOjGJqJb gK5Ay01E1zwRLqOFse4z/bFFNXJphMMLlNHGjxNH2kTt/bxS5xVB9djFJOgKVPFj I/aY4BBTo0zvK1BgtCc8iGquffow6O2ZVn2/xlD5uykhLQimlD/MqfeQBm7tduv+ nSB4hOLFrBOfmGtUAKqJbo7eSpud6rxyZUjebQvGPmh7rke6CkAOpksun332qCKQ F1f0I/QRAsw+qzjHJtOMWrHE2OzG7YWrXMeLGIzMkLL5g1H6b0Jv0GCSGTNglZf8 pD07WoH9/j4BDkWrRYLtfoeQRLgN8xgSYtxWli5sYDMEgzwPavMLA== Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dcn2fcsh9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:20:32 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 637IQCeK013821; Tue, 7 Apr 2026 19:20:30 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4dcmf44jt4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:20:30 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 637JKQCc51708350 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 7 Apr 2026 19:20:26 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B2F1D20043; Tue, 7 Apr 2026 19:20:26 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2B7C920040; Tue, 7 Apr 2026 19:20:22 +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:21 +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 03/17] cpumask: Introduce cpu_preferred_mask Date: Wed, 8 Apr 2026 00:49:36 +0530 Message-ID: <20260407191950.643549-4-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: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDE3NSBTYWx0ZWRfXyLQX0oxzK+E9 6mNgKhUH2Q3UsYEQVeNBCijjqXoNDx/ITgZZhYR4H+OzC8wbhGg3mrBqDEJ6OLn09SHxFX13NFs KHsCfY98kZsvNNJPPrY25OgTnVsiADdhGaHQHhcxhyp8qlEVsBYyhCC4urFOEebJRizUmlxO75y kr4EatAwtRkJnYJrexwgqL8VFrjneA4PJ1C95xKM984rZIyLolGDvn8UnVappX7fpieyO4AsXsv lOes2cU9k4oX95pHqqJCu/QeY/0AgneBpPzFQktOkIZJ7F8t+VElNz5PA4f5xFyHfihnvnh8/oi u67tF0//q/AM29W/dUkLWqcGPmkyMBvm2OxQ4S2p/4lBRbYeERcJXrS97XDAyLMoWJFV2ujjRcU b77Il8zV6zhEYQOwwDY6zB2olros5MG2tKb1mhhbyLR9WQuzVgTHjg54o2DRgKUekN3sBKwzqAy 1c3z+qM3+U+HWBzyJfQ== X-Authority-Analysis: v=2.4 cv=FsY1OWrq c=1 sm=1 tr=0 ts=69d55900 cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=U7nrCbtTmkRpXpFmAIza:22 a=VnNF1IyMAAAA:8 a=blX9kqOrpvjOr1fgGLAA:9 X-Proofpoint-ORIG-GUID: sEJ4GWpTB0NQmvGeNZL4-MJhaR5yUNoS X-Proofpoint-GUID: bQjtNmz3rzF7nCteueeJWLaUrk5nA8ST 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 Content-Type: text/plain; charset="utf-8" This patch does - Declare and Define cpu_preferred_mask. - Get/Set helpers for it. Values are set/clear by the scheduler by detecting the steal time values. A CPU is set to preferred when it comes online. Later it may be marked as non-preferred depending on steal time values with=20 STEAL_MONITOR enabled. Signed-off-by: Shrikanth Hegde --- include/linux/cpumask.h | 22 ++++++++++++++++++++++ kernel/cpu.c | 6 ++++++ kernel/sched/core.c | 5 +++++ 3 files changed, 33 insertions(+) diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h index 80211900f373..80c5cc13b8ad 100644 --- a/include/linux/cpumask.h +++ b/include/linux/cpumask.h @@ -1296,6 +1296,28 @@ static __always_inline bool cpu_dying(unsigned int c= pu) =20 #endif /* NR_CPUS > 1 */ =20 +/* + * All related wrappers kept together to avoid too many ifdefs + * See Documentation/scheduler/sched-arch.rst for details + */ +#ifdef CONFIG_PARAVIRT +extern struct cpumask __cpu_preferred_mask; +#define cpu_preferred_mask ((const struct cpumask *)&__cpu_preferred_ma= sk) +#define set_cpu_preferred(cpu, preferred) assign_cpu((cpu), &__cpu_preferr= ed_mask, (preferred)) + +static __always_inline bool cpu_preferred(unsigned int cpu) +{ + return cpumask_test_cpu(cpu, cpu_preferred_mask); +} +#else +static __always_inline bool cpu_preferred(unsigned int cpu) +{ + return true; +} + +static __always_inline void set_cpu_preferred(unsigned int cpu, bool prefe= rred) { } +#endif + #define cpu_is_offline(cpu) unlikely(!cpu_online(cpu)) =20 #if NR_CPUS <=3D BITS_PER_LONG diff --git a/kernel/cpu.c b/kernel/cpu.c index bc4f7a9ba64e..2d4d037680d4 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -3137,6 +3137,12 @@ void set_cpu_online(unsigned int cpu, bool online) if (cpumask_test_and_clear_cpu(cpu, &__cpu_online_mask)) atomic_dec(&__num_online_cpus); } + + /* + * An online CPU is by default assumed to be preferred + * Unitl STEAL_MONITOR changes it + */ + set_cpu_preferred(cpu, online); } =20 /* diff --git a/kernel/sched/core.c b/kernel/sched/core.c index f351296922ac..7ea05a7a717b 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -11228,3 +11228,8 @@ void sched_change_end(struct sched_change_ctx *ctx) p->sched_class->prio_changed(rq, p, ctx->prio); } } + +#ifdef CONFIG_PARAVIRT +struct cpumask __cpu_preferred_mask __read_mostly; +EXPORT_SYMBOL(__cpu_preferred_mask); +#endif --=20 2.47.3 From nobody Mon Jun 15 03:52:32 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 A485C313E2B 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=1775589693; cv=none; b=l9NBIDTGJcu4ebp9O2y2wS3LDMarIzt2r2lwBHdAdyVQkvFraNh18zhadkd88fijq7QgqwwPRlg22SWmy5mVDl/Gj8V9/txvUXcCYu/pXVx5Dw54dlXesqwvCcgMRFPVlG8sh5Aa1AB9WKMORqzwz3A0Mr9IZFq8HWFWjbXIe04= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589693; c=relaxed/simple; bh=kCVsXNnhaa39Yb31n8EKRIbHkgw2eDODsFTb4hmi/Yc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ddqExWifKtafneDGXl00k2KFNsSU6OatOTBN4vcwnetR5vISFZIBNVElmV9QBBsTSDH5keRPths98j+mzmG9bbKtK93V2Dn9zol/I99ccXrOZN+2hrCXAsRyLaJKW3VoiSi2ByB/zZDDsEEmtz1Fsgl6HIKOikMfLvtpzDptdbo= 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=oFY3RP8y; 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="oFY3RP8y" Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637DdJg82591017; Tue, 7 Apr 2026 19:20:38 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=YN9MFmou6m6kTDp6C TBync+i/LQo9B9Yk3wXqi30NVs=; b=oFY3RP8y7l/6ZTPMdTX80m5eOk23WKO6Z QRljaS0j2qAMbPz9NQScEbafe+VAVAWLbsJIpQ6gi1X1PeZRVoFlPjQ64M5iD3He FBGNRsf4GOZHKYiI8YlmEsL9VO0cYObyn1W97R6Rt9vyFL1yJAfan7DL4KaBrcO4 KloiahkzUp/ZL4gBu4xkf9s5+l8WR4aTFj4wkCNRjGt0Fr2TaoLINTAqWTPMNVdB MqrqC/zmsXvSJ9f9JRxgEaQEdf//f5PBnp65UiG+TnB41QVjEEVnRz3Gjwte3ROE w5LYql1pgn0zTuHIRGLmNWJgELok+HA1gjY/psvPblUar3vTDLWdA== Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dcn2e4t4h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:20:37 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 637IeqqL013844; Tue, 7 Apr 2026 19:20:36 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4dcmf44jt7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:20:36 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 637JKVGG36831558 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 7 Apr 2026 19:20:32 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CB4A020043; Tue, 7 Apr 2026 19:20:31 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 21FB720040; Tue, 7 Apr 2026 19:20:27 +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:26 +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 04/17] sysfs: Add preferred CPU file Date: Wed, 8 Apr 2026 00:49:37 +0530 Message-ID: <20260407191950.643549-5-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: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: qaPpvlBkYHLz0F0Ell0xYcvki9HvKH_u X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDE3NSBTYWx0ZWRfX2S+Nvub8SJtj SuS6VTwQaIO59ihn3G54fmHjXzh6kSIdpvml2ygkghHT0+0CIsTvdqaFs4l1TdTzJpGEg1MwgKy SNxJnxfh+eeoCLBj6o4I3pk+/+3plulOTgeTDm5JemXBmnHYlvKTsCquyvJMCPGKTCMKJNl6vGc eixBbxr/8DcPZKnyN3b0h8GCf0wSiPRvfYI2V8EBNeQtGtT9q8oWtbEFhgyvCGC8zoZ7x0ZOFVQ yWehuwV4y4kFZsSkF4+oUF9D+oVS6Ss5ihLZV+k44Hw6wf7NMYPzlaOTthbfxSL0USMIBfP+DH6 EiwCGFPQF/1XQht+4g69YMJz9tZBCiTRByMoar+rxNfV+qkaEYsUmv0mzqPE1BE4azRoBIa5woK aZyVgBoaTaZ79lFFDAz1I4Y0w0LeSAXBEV5qHgGt+7n8vUyVeaLOGKFNB1qvHlTh1t8Sbzfrk8v f+vhSV7UYcpGDH3lPRg== X-Authority-Analysis: v=2.4 cv=Cfw4Irrl c=1 sm=1 tr=0 ts=69d55905 cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=VnNF1IyMAAAA:8 a=VwQbUJbxAAAA:8 a=usQfwybhv0jOAWjiEAgA:9 X-Proofpoint-GUID: LXXDwIjydRF77iN1sETmzhF4AfYehfCS 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 malwarescore=0 phishscore=0 clxscore=1015 adultscore=0 suspectscore=0 priorityscore=1501 impostorscore=0 bulkscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604070175 Content-Type: text/plain; charset="utf-8" Add "preferred" file in /sys/devices/system/cpu This offers - User can quickly check which CPUs are marked as preferred at this moment. - Userspace algorithms irqbalance could use this mask to send irq into preferred CPUs. For example: cat /sys/devices/system/cpu/online 0-719 cat /sys/devices/system/cpu/preferred 0-599 <<< Implies 0-599 are preferred for workloads and 600-719 should be avoided at this moment. cat /sys/devices/system/cpu/preferred 0-719 <<< All CPUs are usable. There is no preferrence. Signed-off-by: Shrikanth Hegde --- Documentation/ABI/testing/sysfs-devices-system-cpu | 11 +++++++++++ drivers/base/cpu.c | 12 ++++++++++++ 2 files changed, 23 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documenta= tion/ABI/testing/sysfs-devices-system-cpu index 3a05604c21bf..ffa05605923b 100644 --- a/Documentation/ABI/testing/sysfs-devices-system-cpu +++ b/Documentation/ABI/testing/sysfs-devices-system-cpu @@ -788,3 +788,14 @@ Date: Nov 2022 Contact: Linux kernel mailing list Description: (RO) the list of CPUs that can be brought online. + +What: /sys/devices/system/cpu/preferred +Date: Apr 2026 +Contact: Linux kernel mailing list +Description: + (RO) the list of preferred CPUs at this moment. + These are the only CPUs meant to be used at the moment. + Using CPU outside of the list could lead to more + contention of underlying physical CPU resource. Dynamically + changes to reflect the current situation by using + STEAL_MONITOR scheduler feature. Expects CONFIG_PARAVIRT=3Dy diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c index 875abdc9942e..0a6cf37f2001 100644 --- a/drivers/base/cpu.c +++ b/drivers/base/cpu.c @@ -391,6 +391,15 @@ static int cpu_uevent(const struct device *dev, struct= kobj_uevent_env *env) } #endif =20 +#ifdef CONFIG_PARAVIRT +static ssize_t preferred_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return sysfs_emit(buf, "%*pbl\n", cpumask_pr_args(cpu_preferred_mask)); +} +static DEVICE_ATTR_RO(preferred); +#endif + const struct bus_type cpu_subsys =3D { .name =3D "cpu", .dev_name =3D "cpu", @@ -531,6 +540,9 @@ static struct attribute *cpu_root_attrs[] =3D { #endif #ifdef CONFIG_GENERIC_CPU_AUTOPROBE &dev_attr_modalias.attr, +#endif +#ifdef CONFIG_PARAVIRT + &dev_attr_preferred.attr, #endif NULL }; --=20 2.47.3 From nobody Mon Jun 15 03:52:32 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (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 7C944359703 for ; Tue, 7 Apr 2026 19:21:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589675; cv=none; b=cObSsDR+OoCyZAaf0G4fW119iaD8RNwxVvQSMQR7tlvrPdh3Xu/If9dS0wLrphMdNiYHrAwZh2Tb6YgMr78lIaD1pRL5cLWl9mWNL+le7fhHwDZhMnB01bZHjY9KX4c22l3vfci+5Obef3vv6OosVCVf48DV+lhIVjWHlufU6jg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589675; c=relaxed/simple; bh=vG+OY2B+0dDZ7bMJvk/8JVjxKq1oN6/zbGgjccDM1WA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qd4TTVkoteAjSjdyA3Bm/EMpRU0ijBF/of9jaYYrSD7UlEzFiWKN8gFiTjHF2YmknUpbEloEm5+lC10xBC9xAfQsc4ulyUZYCb+58+RhlnToAdBDJmVBJ78UzFGTxN5mhPdJg0kid0KJtbJYZqg1AqxD9qffRg0TDLSu4kW3M7I= 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=j53ky2oI; arc=none smtp.client-ip=148.163.158.5 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="j53ky2oI" Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637ELBnv2297424; Tue, 7 Apr 2026 19:20:41 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=4n1Pj4R+dgSTYNWm2 onVle82CaJjykc7rwIiarmG2c4=; b=j53ky2oIAT0xGAe4g8gkALqJxGQ8enrxO GgY+q86unS0YNUP08Z1Y3CYJ60nEQP9VlTWg7ntDGGdQSYxY7qBnZpHxtW2IRKEn 7MmOv3dnAlMqtIXalzmozZJWwHzvBBLwZV6HvgHo86VOErRRyYdEmreXMoZGN3yu OGuY8VjHg1a8NEc8G9yCiTBa3vdEsgmUL4c0SSz5WG0y0R6wLz4k9YUZ3ZaVQi62 q77bKHueOf9ln5otLhfBpK07wZB2lUrrWJLZMX2IAAuIQzr5Hu71i8joci+D3mdB ZcEI9Odj3bZxcAry8pPGy02W+V7lsROd9L5RnX4iDUlhrDPQNjxBw== 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 4dcn2fvd4v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:20:41 +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 637IjTnw018877; Tue, 7 Apr 2026 19:20:40 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dcme9cjvr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:20:40 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay03.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 637JKaNk53674476 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 7 Apr 2026 19:20:36 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 955F720043; Tue, 7 Apr 2026 19:20:36 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2596520040; Tue, 7 Apr 2026 19:20:32 +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:31 +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 05/17] sched/core: allow only preferred CPUs in is_cpu_allowed Date: Wed, 8 Apr 2026 00:49:38 +0530 Message-ID: <20260407191950.643549-6-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: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Authority-Analysis: v=2.4 cv=KeridwYD c=1 sm=1 tr=0 ts=69d55909 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=RzCfie-kr_QcCd8fBx8p:22 a=VnNF1IyMAAAA:8 a=h5kyaPOYuMV5y32J0wcA:9 X-Proofpoint-ORIG-GUID: MDCX_Hqe7i5wiAV2pk-UGWEJZFfwwR2x X-Proofpoint-GUID: g_CS_MFa98xLqMO4VAueCD47wIj7CfnQ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDE3NSBTYWx0ZWRfX58hgDryr/k1B dCeBWobGGwN2aZ2d4jHlGHvJJ9L0Wmv7nM/pN+nKlLfX50DdNz4+CLsx5uahRR71Ag6B1F5pjFn oymCuP4eI3PCQ2AWI3HjiXWfuDGOFOqt7v/fFLMoHapB4umyxBogFGw3SZBE9U/LVtI2aIdIinb PtttJWdgWtJuDoDMwA0x9PVp2+0IPfGucfrHuXrF5Fdr8W9cyUbLSfGG9iXac/lPEWeZs+I2TLh YS19KlXt7siyNLG9siuon+GfLft+Z3sTzBJp3H1QvAhiUUQHD8Q4m3LKeMW6037Na2IovJmC6Iu 6jfK0y4sH7e1ZTAoWxeLD8gOu5nBjODAxUWu9k5KZyTCHCIB2HDo1hrUZ67QJbJwthnVT7lQP36 B0e89vsrk0V95hwGzPuT7v+gBkOqNTmkM9600uyQH7yiybKS0Pkm5h1XNgH42CLTyFPmVeGSIuY 9eXWkKoQLVMhzpbgEYw== 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 suspectscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 clxscore=1015 phishscore=0 priorityscore=1501 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604070175 Content-Type: text/plain; charset="utf-8" When possible, choose a preferred CPUs to pick. Push task mechanism uses stopper thread which going to call select_fallback_rq and use this mechanism to pick only a preferred CPU. When task is affined only to non-preferred CPUs it should continue to run there. Detect that by checking if cpus_ptr and cpu_preferred_mask interesect or not. Signed-off-by: Shrikanth Hegde --- kernel/sched/core.c | 17 ++++++++++++++--- kernel/sched/sched.h | 12 ++++++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 7ea05a7a717b..336e7c694eb7 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2463,9 +2463,16 @@ static inline bool is_cpu_allowed(struct task_struct= *p, int cpu) if (is_migration_disabled(p)) return cpu_online(cpu); =20 - /* Non kernel threads are not allowed during either online or offline. */ - if (!(p->flags & PF_KTHREAD)) - return cpu_active(cpu); + /* + * Non kernel threads are not allowed during either online or offline. + * Ensure it is a preferred CPU to avoid further contention + */ + if (!(p->flags & PF_KTHREAD)) { + if (!cpu_active(cpu)) + return false; + if (!cpu_preferred(cpu) && task_can_run_on_preferred_cpu(p)) + return false; + } =20 /* KTHREAD_IS_PER_CPU is always allowed. */ if (kthread_is_per_cpu(p)) @@ -2475,6 +2482,10 @@ static inline bool is_cpu_allowed(struct task_struct= *p, int cpu) if (cpu_dying(cpu)) return false; =20 + /* Try on preferred CPU first */ + if (!cpu_preferred(cpu) && task_can_run_on_preferred_cpu(p)) + return false; + /* But are allowed during online. */ return cpu_online(cpu); } diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index 88e0c93b9e21..7271af2ca64f 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -4130,4 +4130,16 @@ DEFINE_CLASS_IS_UNCONDITIONAL(sched_change) =20 #include "ext.h" =20 +#ifdef CONFIG_PARAVIRT +static inline bool task_can_run_on_preferred_cpu(struct task_struct *p) +{ + return cpumask_intersects(p->cpus_ptr, cpu_preferred_mask); +} +#else +static inline bool task_can_run_on_preferred_cpu(struct task_struct *p) +{ + return true; +} +#endif + #endif /* _KERNEL_SCHED_SCHED_H */ --=20 2.47.3 From nobody Mon Jun 15 03:52:32 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 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: quoted-printable 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 Content-Type: text/plain; charset="utf-8" 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 s= ched_domain *sd, struct tas { int new_cpu =3D cpu; =20 - 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; =20 /* 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; =20 + if (!cpu_preferred(cpu)) + return 0; + if (vcpu_is_preempted(cpu)) return 0; =20 --=20 2.47.3 From nobody Mon Jun 15 03:52:32 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (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 BCD94358391 for ; Tue, 7 Apr 2026 19:21:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589674; cv=none; b=LZx31a76mXeew1mPkC/BtXhgVNobh295b+jzkqPqPjGJ/I492eqsJFXlTEW/N2dkOf5G7pCPepn7TKkU1OZtKHmHqxAKx5sTWxpsBfqh46sMdM0U1zy2Kvw6V2fZgetwnVOTvFi3NckXeslcl2jx0/B2cJxMdeXsFsYLeouMTQc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589674; c=relaxed/simple; bh=p+EaI/jbuoEE4uusPtGiXUdAN9nzd0RK/QC4m3k9Z6A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mMux9UgW/HaGDXGUwLzXbV0khXL3HnOged5Lb4ubAH/XbNsNW8XqKqIvife/im9aMVBq93TBJWXM0YLYKERDVXQ+yKt0et2LW1hFPx1UUHrJuewEXAhB60qeSvwFwliv2UiAcqyLrzGl6a2nlWEOyqJQLSz1+rFsC56aqh2Mtmo= 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=koBXdl7U; arc=none smtp.client-ip=148.163.158.5 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="koBXdl7U" Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637Dg4V02326591; Tue, 7 Apr 2026 19:20:52 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=C0aqUMJl4iFLUaFvA LoWYFaLbS9vZtUktRwkXTzBmCU=; b=koBXdl7UmC9kqOIIMPH7oNUrH1gHlIkv/ ri2QvlC5iRMnJDRDqVUdmglMdeQvqYX6vbhHIm0/hp7NvKu2uw9wZfBrJnAK1Fk7 rXoYVzUvsrK2NjT1y8TWkUoyucUjodh0gKji5s7YTWGpdfu6QQIO25qz8k6m1epo 5Bzn1DKxR9yFW1mdYjMR17xGTzR2Hf2eM8MzwLI0CfE0uqiFNrgikpOd+LDPPBYl v1ckiaVffd62p/XWd43dQFpkqpG88Zh4MiqQa4TGwISGDQElystbNCmyHjZVmnQR NggYO1N+IrYueC9MjqlaI2mtUnWflJvS6H3KCyd2eOQ6Qbkmg6pww== Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dcn2kcct7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:20:51 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 637IlaMw014348; Tue, 7 Apr 2026 19:20:50 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dcmg4mhud-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:20:50 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 637JKk9C23724376 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 7 Apr 2026 19:20:47 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id DFCD020043; Tue, 7 Apr 2026 19:20:46 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 1502820040; Tue, 7 Apr 2026 19:20:42 +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:41 +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 07/17] sched/fair: load balance only among preferred CPUs Date: Wed, 8 Apr 2026 00:49:40 +0530 Message-ID: <20260407191950.643549-8-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: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDE3NSBTYWx0ZWRfXz1QUTVL0MTkj YD/Uw1bIDFjytFAgBNFq94SyT9BIsfTcW9ikowiAt4lAy8BNtOWRM/doBmpPI8GY+fcwSo6pfnL ZSzQXRa0B2GUtEouljH7JzETUaEjeHJs686M/hq7u2Wtdc3W6nKGbNzoEx/g0dFyZgqGvhYFD/u t2++k4XEoJbQO6NMcruh2LUxJRr+kGpp8S7Tx5zUqNJNLhYhx90r5Hm5dTKzyPmSaWF6IxK7Y8c hjT5DHw1++RToz51Uy3c5tyoKimO7DQDR+ElFclyY6rct+th+xuWGx+jgdbQfMij0bWR10CMQ+O xyy/6wy1Eu5lCGiZM/QlDziu/eTme1bXVt+4Bv9mOmlKz3L3V1NKt7egkmeeiPHXzU7wQEuJu89 O3/Rgmbbbgjst3Yx354zcVbhswQWSUqIQQBlbwUrfF+WMxqOXwyyEBmiaEKbdjzxWLzM3Z1Wh02 hYk6dJMyjfTnJ5MS4Vg== X-Proofpoint-ORIG-GUID: zKHRzHXyAU2JHRShKItazNvu49sZBRSE X-Authority-Analysis: v=2.4 cv=e9k2j6p/ c=1 sm=1 tr=0 ts=69d55914 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=Y2IxJ9c9Rs8Kov3niI8_:22 a=VnNF1IyMAAAA:8 a=5ICBfrR2l7P1yX5hQRsA:9 X-Proofpoint-GUID: OitUDIaExvde2pxCsrr88atG_ODrkZL6 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 clxscore=1015 impostorscore=0 malwarescore=0 suspectscore=0 spamscore=0 bulkscore=0 adultscore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604070175 Content-Type: text/plain; charset="utf-8" Consider only preferred CPUs for load balance. With this, load balance will end up choosing a preferred CPUs for pull. This makes it not fight against the push task mechanism which happens at tick. Also, this stops active balance to happen on non-preferred CPU pulling the load. This means there is no load balancing if the task is pinned only to non-preferred CPUs. They will continue to run where they were previously running before the CPUs was marked as non-preferred. Signed-off-by: Shrikanth Hegde --- kernel/sched/fair.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 22010afb4c1d..e4571bd71a44 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -12058,6 +12058,11 @@ static int sched_balance_rq(int this_cpu, struct r= q *this_rq, =20 cpumask_and(cpus, sched_domain_span(sd), cpu_active_mask); =20 +#ifdef CONFIG_PARAVIRT + /* Spread load among preferred CPUs */ + cpumask_and(cpus, cpus, cpu_preferred_mask); +#endif + schedstat_inc(sd->lb_count[idle]); =20 redo: --=20 2.47.3 From nobody Mon Jun 15 03:52:32 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 3CCF233E35B for ; Tue, 7 Apr 2026 19:21:50 +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=1775589711; cv=none; b=QHt9azGnMl48nd+TvADqoCiaMpdfzxOPPyGYBkb5hWDNEBccUz8kwgVR1xnZnHBY0hZW/MIZsl5ncKEHfvPai3ZU0rMzrp0JBdJ/EKcDcWI7VT+iYprrUa+MmmmJMLzhiKdBRVx/XyJIHVGCo6JJesZeRbfi4lqTqsHAlATXOlk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589711; c=relaxed/simple; bh=ji6VIUKgOuqF2AzJxPKE8vcMN2gw7Ds4I41p/SKUNxQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=G9RcAkcA6P/wSMZMx2MhOeTxSMxczYhHxa/AQts2/0kcEXmBKCSsSFyTCWQQQZHOmoZXlEBAnYc6z0VtiFWke+kTa5hw03bBuextVZoContSv0mEvAnes1tlLAmzeWphHNF1FSgauUtkOqYNRf/RvAxJEtbI7Udq8tZWl/uWsCs= 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=tIVL4aaE; 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="tIVL4aaE" Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637Ewv3O2590969; Tue, 7 Apr 2026 19:20:57 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=SfTjwgNsz+lf6LhyR CXemfPLiJdw18B2C2oCOwzy4eA=; b=tIVL4aaE5RXbNEIqEQct4Qb7oPo972/Zu WXxAKnbkF9s/12lSOhG76bONk2snH5ZQguWQgcpLeo4nqDPxBarBc7UxzpacM6KL Q7xkZ9bejPYQx8Cx9JuUZKnlvyy22PU+fEkAFOqCRAvMm5xlPErFDWoEOYhcgmOC oV3O6zSK1m42AEw/PUWV78OJYY8hx8a21+LIEtK6Vfsg9NCxSbII1/+E10AijCPn 2HuM7NBEmpGAsmmHbq2qqvIAbWALT8GgTH4ZE9ahRVbmk4ywQ611SFH0v90+uNou dCAAqgakb7NwkHhgsqlWIlEG7bTqr32kwficB92QCgevO1JTSYqHQ== 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 4dcn2e4t5m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:20:56 +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 637J08Jj026661; Tue, 7 Apr 2026 19:20:55 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dcmg7vhmq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:20:55 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 637JKpZ828246674 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 7 Apr 2026 19:20:51 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 784A920043; Tue, 7 Apr 2026 19:20:51 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3D1F020040; Tue, 7 Apr 2026 19:20:47 +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:47 +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 08/17] sched/rt: Select a preferred CPU for wakeup and pulling rt task Date: Wed, 8 Apr 2026 00:49:41 +0530 Message-ID: <20260407191950.643549-9-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: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: n1wdP2IjEcwfDuRVfz1V-gjnelYLZn_7 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDE3NSBTYWx0ZWRfXx9jPwHhX7BUp kiUBTB/id5QExJwSRFYAGJqIjw/QJ3gObncO3dQpRHlcWMf0ryWSMDqLWTc1TUmhLjLFfn0su3S 3wAH6nTxsQ02Tr0lZvNiH+f5s2HFn7fMJhj/WvrOVcpdjCrC1aBo4YCHKnt0Jo1mNNttGA/G/tY 6CQD+NvamHCanDSzg8dSgHz5JqYXhiNEOO0gzWPgsD++RdtMxaRUacYqwBP0bBYqQXfLGgJf/K/ 6z9251b6i5Ah8tbtK8wMBvdR49OPHR02718ffGQtYlOaUvrp9lyqbNuCGZpLpq63rNBIY+ihlJg IMDPtnqc6jsVhnZVhwREFR1hF5EiolF6YCGwZ+YTqyDXnPB+0xfp3KvrYjdaJ4z6SeOYXFKXxw3 G1okr1sCtzkqmKt+Tl0cunTlm23PIjZePvjRO9dPSPTcJdL1oOTKOk5ZRzpFnBwJ1si3+IkaY/G GeFA4RGlA6u/Rss2Njw== X-Authority-Analysis: v=2.4 cv=Cfw4Irrl c=1 sm=1 tr=0 ts=69d55918 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=VnNF1IyMAAAA:8 a=wXEVXGXn7PT5tqLe4hQA:9 X-Proofpoint-GUID: 0FiKFixtYzdiUdeOSeWnD3fQmr3zK7XL 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 malwarescore=0 phishscore=0 clxscore=1015 adultscore=0 suspectscore=0 priorityscore=1501 impostorscore=0 bulkscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604070175 Content-Type: text/plain; charset="utf-8" For RT class, - During wakeup choose a preferred CPU. - For push_rt framework, limit pushing to preferred CPUs - Pull the rt task only if CPU is preferred. Signed-off-by: Shrikanth Hegde --- kernel/sched/cpupri.c | 4 ++++ kernel/sched/rt.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/kernel/sched/cpupri.c b/kernel/sched/cpupri.c index 8f2237e8b484..3e3106690ff3 100644 --- a/kernel/sched/cpupri.c +++ b/kernel/sched/cpupri.c @@ -104,6 +104,10 @@ static inline int __cpupri_find(struct cpupri *cp, str= uct task_struct *p, cpumask_and(lowest_mask, &p->cpus_mask, vec->mask); cpumask_and(lowest_mask, lowest_mask, cpu_active_mask); =20 +#ifdef CONFIG_PARAVIRT + cpumask_and(lowest_mask, lowest_mask, cpu_preferred_mask); +#endif + /* * We have to ensure that we have at least one bit * still set in the array, since the map could have diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index a48e86794913..0c8cc8555287 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -2262,6 +2262,10 @@ static void pull_rt_task(struct rq *this_rq) if (likely(!rt_overload_count)) return; =20 + /* No point in pulling the load, just to push it next tick again */ + if (!cpu_preferred(this_cpu)) + return; + /* * Match the barrier from rt_set_overloaded; this guarantees that if we * see overloaded we must also see the rto_mask bit. --=20 2.47.3 From nobody Mon Jun 15 03:52:32 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (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 2F37824677F for ; Tue, 7 Apr 2026 19:21:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589681; cv=none; b=l2+h6MBmWPS8O55iTqXWdRvKy3giQfNsMQQttKqr0PL2zfjLFO0xot9eVNBOEeRaymCJ5NIJlo5ZsfOqW0BNtPVCQUzOCFuv8sSUN08zP03SEOpSUSnNlYogDqk1NNZ8CD9Cw7dNE/tRjTY0l/9WSZqNIOqUxPeT0Sjjp5Vzxbc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589681; c=relaxed/simple; bh=f7OoFLoDmwemjGdP3+lIw9Bm3dy1IWXi7xtolHtB/ZI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kG20ZQ1thxKb6Pk2clT6F15Ar5JHRVqBmdNAAL3bVXQhxpmuXGfCu+NrSGL3RjZ/g2Dovb3V0a8s5PLS+I10Ji7STCeV2v7Y83VlJ97/t3GM517gWIVxxRJFkOxoEjp496w+qCdGHldBYon8DcN1ApkcJm0ezM+PCcL+OyPH2Pk= 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=rDXUzshZ; arc=none smtp.client-ip=148.163.158.5 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="rDXUzshZ" Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637EMO0A2297382; Tue, 7 Apr 2026 19:21:01 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=nhlocWo1kAYzLTrAP YDVT4ZFBsxUYMfP4OZprpNAruo=; b=rDXUzshZ/NDgdlWc3fVOgNDiFzTMfQ2Uu sKbLWYgeRCMHWhX8lJg18yh3jdJSGvjL5aS2hdNYOilN4/YM6MJYaecUgh2U+T6E Xu6jUvRGlLUwFru+KZEZz4gv2zYEUdCo/fzD/Pknl7MlwOkYgJg5Fa88ox1jYs/f uoo/x71FnM3IF7onoaqLqMmhkZxYneq+BhDa982C8NRHOHWmD/0DQ/ExDtQfsVCe e0SXF0J/fqrtT4SVtdsLLPzyiHN9BB++hoP1QPWkg4NlCseLxegu2pv4U7bnwTVi 61btYGCJf2l99mlTdMPFXRxedOoDo1YcR4WfoF4dqN7ArZygsw6Uw== 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 4dcn2fvd5y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:21:00 +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 637J04Ls026707; Tue, 7 Apr 2026 19:20:59 GMT Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dcmg7vhmu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:20:59 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay02.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 637JKuYf50266574 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 7 Apr 2026 19:20:56 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 171DF20043; Tue, 7 Apr 2026 19:20:56 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C548C20040; Tue, 7 Apr 2026 19:20:51 +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:51 +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 09/17] sched/core: Keep tick on non-preferred CPUs until tasks are out Date: Wed, 8 Apr 2026 00:49:42 +0530 Message-ID: <20260407191950.643549-10-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: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Authority-Analysis: v=2.4 cv=KeridwYD c=1 sm=1 tr=0 ts=69d5591d cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=RzCfie-kr_QcCd8fBx8p:22 a=VnNF1IyMAAAA:8 a=QWx9vYyWXuU5Gb4Iy2kA:9 X-Proofpoint-ORIG-GUID: qEgJLgENmTrLqYKwtj5dbCcw3l9s9oiB X-Proofpoint-GUID: Poo27fxu2Zl4fmhOZJQHLbomG8T3IX8C X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDE3NSBTYWx0ZWRfX4jlOE+Bj54O7 4iNil0bKUfwFAI6CGUoYk32xbIagj2nKP9T2F1HmfPXPnAoUblKVtrg0Rv76xa+pxLJQuHLoapw vD3qBsqUnL6q9aX+gp+TRAtBfgxNfAUI2Da6oBcFYAb86PAepuiJTEtM1gLj+RvC5NawQ5tjtSH kEiftpHU/LLkbSGR2UGJi/ZvVvbJJz3+86y+tTNIom+lBolRhr+gy3D6genFKOYl9a/TVuHF2Yw hNzbr5Ky24Wwg1X1AeiE/tBhmmDQf5K36l7y2OqcEaTbRuVlTYcGcMSBx07bTqjyTl/IxIMS/1l ViMIwCIO3cbAHM1Rw0tc3p5nFq/xLkMbED5hx0xCK2fY85Tvu4tVZNk0Fy4HFwQmD2lyF+L6uUS BxKBRqD/NBVMdHuwF247dLCdZmXymZN9yc1Jb9W/Pcns44dWuGgCYtwmZU+qIlXkHWPUOqQKyI4 isJ4mCUo55zsYi55Ydg== 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 suspectscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 clxscore=1015 phishscore=0 priorityscore=1501 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604070175 Content-Type: text/plain; charset="utf-8" Enable tick on nohz full CPU when it is marked as non-preferred. If there in no CFS/RT running there, disable the tick to save the power. Steal time handling code will call tick_nohz_dep_set_cpu with TICK_DEP_BIT_SCHED for moving the task out of nohz_full CPU fast. Signed-off-by: Shrikanth Hegde --- kernel/sched/core.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 336e7c694eb7..c7f046443dc5 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1407,6 +1407,10 @@ bool sched_can_stop_tick(struct rq *rq) if (rq->dl.dl_nr_running) return false; =20 + /* Keep the tick running until both RT and CFS are pushed out*/ + if (!cpu_preferred(rq->cpu) && (rq->rt.rt_nr_running || rq->cfs.h_nr_queu= ed)) + return false; + /* * If there are more than one RR tasks, we need the tick to affect the * actual RR behaviour. --=20 2.47.3 From nobody Mon Jun 15 03:52:32 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (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 2D5EF336883 for ; Tue, 7 Apr 2026 19:21:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589710; cv=none; b=e86NQjwG0tDaubCcK7wgPxzoqoBRJD8D3pyB7c84505o0AyniaSm+5P8sTUpFd75hpH2GyD0+pBfGcmhcgoRKKsAWwIEhxKPpXcxxFT54OQk6wbpks4ef/J/EccUO+/rqOHpiSD3jpxiAc04QKnJg8SWQM3NybuydZbmBPWhV4o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589710; c=relaxed/simple; bh=fPTTyUEMxfQbWwUbPDJilRu93V+38OSMoU0Y2zdPJ4o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kLaLwoVBMPZ4kO5vKVO8k7MQiwRTs5iZnOuGdPcC7LvJd1vN6eLhL6gCNfexJuxrzCadFt5D4uyYo2Wyn8Qobn52peXbHT/ps1EC8XKHhlz1B5RkEneLWWhMtSiBV9pDNaM4qurrgtReiYJF3pUlwV8Hu79+hHz3GYX+3Q+lxuM= 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=gruMaw8r; arc=none smtp.client-ip=148.163.158.5 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="gruMaw8r" Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637DmSZh2213384; Tue, 7 Apr 2026 19:21:06 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=mFY4RzirG9nq9H7ZA i1EavPiIOO9ccONp4UqWS4Nw5Y=; b=gruMaw8r8iv7BM8W60VBqUeMXro+RicnU gumVlGdMG5/g2r6haSXrKieKU8ztyT7NhuemP0jMujhvxjr8dGcrz5aNnMsN/luZ iYzoechGmvwerR2vDSBlRAO2uqw2j94nWGEOkzsGwZVirrz9iPvHyUtcES9sXnaC xT7FeZcVc54BI/YyTlLx8d1c5f7JEAM0hnrfXUwbgBVx61vU9c+/FKqLpsg5Am5s fYxaoPoSL6gmW70/SrVysK4gZgAPSgNdvWlIwFdRYlf6s7xG5HPML5xS+2SXIobJ KnuSGwXaIMVJyLW1eElEqOG31tXPGt9CdTEqPNzdVlTuCNxQJ5AbQ== Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dcn2hccf7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:21:05 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 637IlaN1014348; Tue, 7 Apr 2026 19:21:04 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dcmg4mhv2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:21:04 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 637JL0rI25952734 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 7 Apr 2026 19:21:01 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D0E8120043; Tue, 7 Apr 2026 19:21:00 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 63DFE20040; Tue, 7 Apr 2026 19:20:56 +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:56 +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 10/17] sched/core: Push current task from non preferred CPU Date: Wed, 8 Apr 2026 00:49:43 +0530 Message-ID: <20260407191950.643549-11-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: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDE3NSBTYWx0ZWRfX+89yVyDUm2Bz zAw53BLkxIVl4k9pVgJF3KobYYguofMuineyFN+ZqU8SurqhYVKUOQmjk7b/ad/y++Sl0oxooRk tryUMsM4eI9C7FAvzKdEDtEV984Cgx/psR2l2Hjf4bukGCxgQeBJ5D8C8w8/Wi3I3baQmZK1AHN SK0tFjRbjg2eA6aR69v8gL09Us6K+LVF1w5hd0QBz8B9aO/2gdW9LhAwECwGB7i2gTS19CKHFCw 6jQNSYH6IB2PVWievDjkzo0F1XjD/52FB2s4uGfUMLUsFZhiNNHuvrT0kurIU+cnsR7Acg2aVKY CuFyOgmd73PVgsg2FqLXxDN9FMOHhshWau4mBkKg8xZEAPwMVjPWt8aHq69ZRZf6YNTFB2M7Xh/ V2kL1WAInlb4rZjEAgMTbWLU6umqnCPaaDHAeHPzDTe4UzAC0i/SIizKXRAlVO1PjLH2EBlXMXB 9sBHWvNiRs79/xHy3QA== X-Proofpoint-GUID: XcP599203HowhfKAocaMUVMEUt3XZb3I X-Authority-Analysis: v=2.4 cv=a/wAM0SF c=1 sm=1 tr=0 ts=69d55921 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=DHV1smzMkSx7QAEspXQA:9 X-Proofpoint-ORIG-GUID: U_44uhBUXbgWOhKrWQ9ulQ8AAFhml1DJ 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 clxscore=1015 spamscore=0 impostorscore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0 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 Content-Type: text/plain; charset="utf-8" Actively push out RT/CFS running on a non-preferred CPU. Since the task is running on the CPU, need to stop the cpu and push the task out. However, if the task in pinned only to non-preferred CPUs, it will continue running there. This will help in maintaining the userspace affinities unlike CPU hotplug or isolated cpusets. Though code is almost same as __balance_push_cpu_stop and quite close to push_cpu_stop, it is being kept separate as it provides a cleaner implementation w.r.t to PARAVIRT config. Add push_task_work_done flag to protect work buffer. This currently works only fair and rt class. Signed-off-by: Shrikanth Hegde --- kernel/sched/core.c | 84 ++++++++++++++++++++++++++++++++++++++++++++ kernel/sched/sched.h | 8 +++++ 2 files changed, 92 insertions(+) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index c7f046443dc5..b375c500d49e 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -5652,6 +5652,10 @@ void sched_tick(void) unsigned long hw_pressure; u64 resched_latency; =20 + /* push the current CFS/RT task out if its on non-preferred CPU */ + if (!cpu_preferred(cpu)) + sched_push_current_non_preferred_cpu(rq); + if (housekeeping_cpu(cpu, HK_TYPE_KERNEL_NOISE)) arch_scale_freq_tick(); =20 @@ -11247,4 +11251,84 @@ void sched_change_end(struct sched_change_ctx *ctx) #ifdef CONFIG_PARAVIRT struct cpumask __cpu_preferred_mask __read_mostly; EXPORT_SYMBOL(__cpu_preferred_mask); + +/* npc - non preferred CPU */ +static DEFINE_PER_CPU(struct cpu_stop_work, npc_push_task_work); + +static int sched_non_preferred_cpu_push_stop(void *arg) +{ + struct task_struct *p =3D arg; + struct rq *rq =3D this_rq(); + struct rq_flags rf; + int cpu; + + raw_spin_lock_irq(&p->pi_lock); + rq_lock(rq, &rf); + rq->push_task_work_done =3D 0; + + update_rq_clock(rq); + + if (task_rq(p) =3D=3D rq && task_on_rq_queued(p)) { + cpu =3D select_fallback_rq(rq->cpu, p); + rq =3D __migrate_task(rq, &rf, p, cpu); + } + + rq_unlock(rq, &rf); + raw_spin_unlock_irq(&p->pi_lock); + put_task_struct(p); + + return 0; +} + +/* Using this CPU will lead to more hypervisor preemptions. + * It is better not to use this CPU. + * + * In case any task is scheduled on such CPU, move it out. In + * select_fallback_rq a preferred CPU will be chosen and henceforth + * task shouldn't come back to this CPU + */ +void sched_push_current_non_preferred_cpu(struct rq *rq) +{ + struct task_struct *push_task =3D rq->curr; + unsigned long flags; + struct rq_flags rf; + + /* sanity check */ + if (cpu_preferred(rq->cpu)) + return; + + /* Idle task can't be pused out */ + if (rq->curr =3D=3D rq->idle) + return; + + /* Do for only SCHED_NORMAL AND RT for now */ + if (push_task->sched_class !=3D &fair_sched_class && + push_task->sched_class !=3D &rt_sched_class) + return; + + if (kthread_is_per_cpu(push_task) || + is_migration_disabled(push_task)) + return; + + /* Is there any preferred CPU in the affinity list */ + if (!task_can_run_on_preferred_cpu(push_task)) + return; + + /* There is already a stopper thread for this. Dont race with it */ + if (rq->push_task_work_done =3D=3D 1) + return; + + local_irq_save(flags); + + get_task_struct(push_task); + + rq_lock(rq, &rf); + rq->push_task_work_done =3D 1; + rq_unlock(rq, &rf); + + stop_one_cpu_nowait(rq->cpu, sched_non_preferred_cpu_push_stop, + push_task, this_cpu_ptr(&npc_push_task_work)); + local_irq_restore(flags); +} + #endif diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index 4c45092b2fce..c1d037f11c62 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1239,6 +1239,10 @@ struct rq { unsigned char nohz_idle_balance; unsigned char idle_balance; =20 +#ifdef CONFIG_PARAVIRT + bool push_task_work_done; +#endif + unsigned long misfit_task_load; =20 /* For active balancing */ @@ -4138,11 +4142,15 @@ static inline bool task_can_run_on_preferred_cpu(st= ruct task_struct *p) { return cpumask_intersects(p->cpus_ptr, cpu_preferred_mask); } + +void sched_push_current_non_preferred_cpu(struct rq *rq); #else static inline bool task_can_run_on_preferred_cpu(struct task_struct *p) { return true; } + +static inline void sched_push_current_non_preferred_cpu(struct rq *rq) { } #endif =20 #endif /* _KERNEL_SCHED_SCHED_H */ --=20 2.47.3 From nobody Mon Jun 15 03:52:32 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 F10EB145FE0 for ; Tue, 7 Apr 2026 19:21:32 +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=1775589694; cv=none; b=AgZsS8oCEMZIPyO1YHZMYWz4KUNgKsLzk6oCB24iCgwC6f69dWd8Fz9SYedeBacSuUmsViP47Gn9zzF2n3NkXfBjZPTHz2slVYYUQHcfHo5E7I+t3ZJOeRlrHM8Z/mA63QirgIhPYa8kmLs+w9x44lSpdsTjEcUUoq6oOiBHt9k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589694; c=relaxed/simple; bh=1HH0IDqJfr+bByCFARwjq8MnBfX6Qg7nDr7P9gyHMCM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WusdzefxFUZ3a7Z5HYHKupQAELDYpCoildBxwJzTKDHV8L0Gc97owt0PT494UAl29M7E4MvMZPvnYK6x60PSI6NYJ7WX1yFW+AZLW4nM3WiYn7Kd7RF7VprJtiUJJ6rx7H2iH+iU+MDiIUB8KdsCmtqPGXG4MaWLkgHCMuwoRuo= 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=BPS7KrSn; 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="BPS7KrSn" 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 637DtuJI2302957; Tue, 7 Apr 2026 19:21:11 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=E8zB3gNEfZWonsRz/ L9j8D9xAwORUWvVYSxIklrwLO4=; b=BPS7KrSnz9+3ciBzYUkdTsiBkjeBP/YGj 9bo7Hz5uTrbraG9okgSzZ7AkL05uju2U8tclMavQo/4MznTLJdtddRTiGlIAyQFv R088LsXvcgQ/LnxKy6CRasIsCsybzlUptd7ipxqI3Dgk8YzUsO0qTTv4R2EXMAuD 5cBDT26rMf7XKU0AHUoIPi69/InBRrhn1+v76NQLDhjj00fnMRzs7Q5zOAe4uE+m 1sLCq5MG8iok9Llxv4Niv6OPczZVv0XXySWEoOj11DiliPTGIUPEjc0S4Ub2U96h p0gKTDRZQBHqhTNtNsTwSjb9vKtRK2Q8LnOR5SPQBY7RBs2DfYM/A== Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dcn2fcskp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:21:10 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 637Ijtcw014352; Tue, 7 Apr 2026 19:21:09 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dcmg4mhv9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:21:09 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 637JL5OD7275004 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 7 Apr 2026 19:21:05 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A8B4D20040; Tue, 7 Apr 2026 19:21:05 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 39C4C2004B; Tue, 7 Apr 2026 19:21:01 +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:21:00 +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 11/17] sched/debug: Add migration stats due to non preferred CPUs Date: Wed, 8 Apr 2026 00:49:44 +0530 Message-ID: <20260407191950.643549-12-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: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDE3NSBTYWx0ZWRfX2lpGAOqq0Zwm FT59tvAtSbjUEcmYU4jxvBiT7vua6RRoc+0pn8MprhAJ/B8aZBNH1jG4tbFjAx02rZ1lB+lXNPZ PTW1P1xrsc7FjARV6TGkoVx3LyKDOVStK0wkrSlyPoRaMgBuThfnDn1nq5lvl6ajFmSyusICWaK Ama9T0RrfOQJRPa5Esq6JMBu3+NifpO7kW0NVjWllJgsQD0kuQ8yLVfgPpMnkoIlS2XL5IzyhT8 MEkLGMP/JG1anhKeys0oAA8S/N3ERkvFTcc1bjjULfHB0qbT1TZfZSdJTRi59SNsFHQduSZz2BU qZdYY8AKqg7dp9gB5hW4VqDR6rM+6HLg8J5BsQhQHJ3OPaacTauwF+lQCW6q/tfXjPEQDDFGK0N Izkbhd/MBqw12X2niOiZlPQPAf/1Vegj3wr14TwnHA/+E66IhxCy9pctQ5risF03a2BYdMhaEWz F9gGpEFvmhDQFmH8rAg== X-Authority-Analysis: v=2.4 cv=FsY1OWrq c=1 sm=1 tr=0 ts=69d55926 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=U7nrCbtTmkRpXpFmAIza:22 a=VnNF1IyMAAAA:8 a=-i9lZGrASMRMKgkbeRgA:9 X-Proofpoint-ORIG-GUID: zAG4Gw6epC61Ly-_eSNBmNig1vxdBUV1 X-Proofpoint-GUID: JnlGpYV2W7lK86SANkNUDLT9USjLmc_4 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 Content-Type: text/plain; charset="utf-8" Add new stats. - nr_migrations_cpu_non_preferred: number of migrations happened since a CPU was marked as non preferred due to high steal time. Signed-off-by: Shrikanth Hegde --- include/linux/sched.h | 1 + kernel/sched/core.c | 1 + kernel/sched/debug.c | 1 + 3 files changed, 3 insertions(+) diff --git a/include/linux/sched.h b/include/linux/sched.h index 1eb3825bcaeb..6c0d5d36f21c 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -554,6 +554,7 @@ struct sched_statistics { u64 nr_failed_migrations_running; u64 nr_failed_migrations_hot; u64 nr_forced_migrations; + u64 nr_migrations_cpu_non_preferred; =20 u64 nr_wakeups; u64 nr_wakeups_sync; diff --git a/kernel/sched/core.c b/kernel/sched/core.c index b375c500d49e..7a9442439eb2 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -11321,6 +11321,7 @@ void sched_push_current_non_preferred_cpu(struct rq= *rq) local_irq_save(flags); =20 get_task_struct(push_task); + schedstat_inc(push_task->stats.nr_migrations_cpu_non_preferred); =20 rq_lock(rq, &rf); rq->push_task_work_done =3D 1; diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c index f8a43fc13564..482c86a0ff80 100644 --- a/kernel/sched/debug.c +++ b/kernel/sched/debug.c @@ -1305,6 +1305,7 @@ void proc_sched_show_task(struct task_struct *p, stru= ct pid_namespace *ns, P_SCHEDSTAT(nr_failed_migrations_running); P_SCHEDSTAT(nr_failed_migrations_hot); P_SCHEDSTAT(nr_forced_migrations); + P_SCHEDSTAT(nr_migrations_cpu_non_preferred); P_SCHEDSTAT(nr_wakeups); P_SCHEDSTAT(nr_wakeups_sync); P_SCHEDSTAT(nr_wakeups_migrate); --=20 2.47.3 From nobody Mon Jun 15 03:52:32 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 1E60424677F for ; Tue, 7 Apr 2026 19:21:36 +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=1775589701; cv=none; b=HzX/RLRf9gpBmN4jpWspo3EBD7F6ORlLl9tnFA/DtGL/1Xos5U4qHp+TUUkNA2slDw3qkt1/lmDdQKvwadcznCkus69QTZFB/ks61n15oZdTRzkC6IcN8YgN1MF28y9h8V4pQz9jpS7H+u/ws5vm7Fgj/tGQZ83ye8JIJAScUjQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589701; c=relaxed/simple; bh=h7zVxI1L0ImLN/BQh3kDTdCSIa/PS61AGNJucpTaxmk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WyqR/3Cqreo8PDHRDOnfoolQGgBvPbsZznqYV78ZWissybBY5GuUqXHmYhJfY3b6tpEIiyPZBMC9QlS7T2bl3CYw2e8YR+SqwdPtGjnz0e7EAPsX+EQDaLoGQV07/6cG7QTmLxihNvwiaLtj/OmuLEuPXyWfR2Gzl94d2j8HSvc= 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=eqfiGaLj; 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="eqfiGaLj" 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 637DtuJJ2302957; Tue, 7 Apr 2026 19:21:16 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=asQXcPxldCNz0JKsF K90ayU4RNKb8mjXFHbxpjdAJLw=; b=eqfiGaLjRIwvzNVDezuD/788ku1MGuwES ZOC46nvuSOHkb+0rhGtkJNmAdr2U/LtPvzaHjH3UEvg9PATQTGTS7PcO6Fo+UxeM PYB8tqIyJmDn2KxmE+vIaPR5k6v8P1WF6qo1E2ns30jTxtAweNUTLm8eLOxSS92R Z5gqaKAQT8zjMrekN+yBmkcOd01mRpQ62rMcAyCQV/BLIeI5tmyXOecSUJh4kW4h Xs2FRwliLmh6cNX78jOCV44Yr/M8xu7jEAwwe5x4LszfQm1VpeBgevAS+wW1teII 25tIznJWZIstLJbWNAh+jNB9Zz9PlBBTs9uUYvNdJBVtgr556aDsg== 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 4dcn2fcsm2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:21:15 +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 637Io5Gu026655; Tue, 7 Apr 2026 19:21:14 GMT Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dcmg7vhnk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:21:14 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay02.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 637JLAl442598862 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 7 Apr 2026 19:21:11 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CEB5520043; Tue, 7 Apr 2026 19:21:10 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 15B2420040; Tue, 7 Apr 2026 19:21:06 +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:21:05 +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 12/17] sched/feature: Add STEAL_MONITOR feature Date: Wed, 8 Apr 2026 00:49:45 +0530 Message-ID: <20260407191950.643549-13-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: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDE3NSBTYWx0ZWRfX86rNDMZ6k/mP 5HDqeDD6458QAxZw2cxKHUOt6ZE88MILSFlN4Ryf5eqSdlp2/DzOCiWiTXXaU+Mbu4b6A1hkNB+ h6evOx1t/FuxmScRoenlhMg9WWEe0OJD7IHqEIjRqbLMag+db4lMC5S32cBAR8BKTD4QzVKvPxB UQgsKZsZXUYQU0nA6Y1yykmlWUoPKaa4DyYOpudQJs2//sopygFfIHyXP2YM0RbBDiNdWad4o+b sfGnAj1iGJxwnCKQmFAxIKZoRscgEZFToUbwwxXhkKw030eYZmKYIjZaPK9CTzZ4fVettqrHInR LgsmgucpilBnE+irmnuil9+9VDgEQYUceUbLw2m0CmpMXD+yDfnpo4vRzRE+2DT8ddiBiSimTwr Y0RO7+0LjGlL21MKEsZr1l8Da+ZdJh1qKg9qPxOck2+BrAxvb7oyBDdpeDAbXiNMmrFYDCqVd4T Qx7kcmS93Zr1/tKEdxA== X-Authority-Analysis: v=2.4 cv=FsY1OWrq c=1 sm=1 tr=0 ts=69d5592c 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=EY_rVp2eSJYRKuLr9FYA:9 a=zZCYzV9kfG8A:10 X-Proofpoint-ORIG-GUID: qz25ZEbod2llNsro_z85-EYuzYvTzfKq X-Proofpoint-GUID: Q1t7fWXv8T8ovqlgM0vtbnokOUBKpp5a 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 Content-Type: text/plain; charset="utf-8" Add a new sched feature to do steal time calculation. Computing steal time and acting on it periodically are to be opted by the user. This helps to avoid any overhead when the feature is disabled. It is disabled by default. Signed-off-by: Shrikanth Hegde --- kernel/sched/features.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/sched/features.h b/kernel/sched/features.h index 84c4fe3abd74..08208bec3dd2 100644 --- a/kernel/sched/features.h +++ b/kernel/sched/features.h @@ -134,3 +134,6 @@ SCHED_FEAT(LATENCY_WARN, false) */ SCHED_FEAT(NI_RANDOM, true) SCHED_FEAT(NI_RATE, true) + +/* Generic steal time monitor to act on cpu_preferred_mask */ +SCHED_FEAT(STEAL_MONITOR, false) --=20 2.47.3 From nobody Mon Jun 15 03:52:32 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (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 B7F48359703 for ; Tue, 7 Apr 2026 19:21:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589700; cv=none; b=KWrTfbxG04sIs2DzaxtUiOaHiKdRPVuUJ7HWEncAj+fbyLbuxWJO0aSMEbbEh4LpjeZcKDtGFl8BrWqwakjAGuXylFQYflP/umLVhS+JjtxzTTDFRHXRl35wkCLFTpycBEzKIW/LeRmbxJTWxv22viBeeImVyI5/UWqfFKJTzoE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589700; c=relaxed/simple; bh=jjjqSfQ4T4tZXqdjDotyz+hXG+k4hbYaDz1j156rQMg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AiuacDkv9+APofkkkdbVfTI7TTlcbBC/pcPX1YqBFbStsGlmtCuiG4cS1zZbxHWkR1uuKd29X1AeM79CjXqtaeZP9afz6z6OsEzzRdgh7T60FTiUqqF9lPtJ4TQ5iIWmfhqle63fUy9Ov6hyk4EwbXEBfSu9QnWClhsjk5B5IfM= 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=ABZKmf/w; arc=none smtp.client-ip=148.163.158.5 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="ABZKmf/w" Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637DY8eA2212394; Tue, 7 Apr 2026 19:21:21 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=S3z0471z5ysK5N0xe 8ysjJW2AvETKUijyYYVKGQeT6c=; b=ABZKmf/woK0iy62SgAWnB9QZ2D0qPw3Cf TesVhnVwSMBTTsoc5swsCu6Pk9Qb4ESkOTX7O10+X8CCkjytsusx+rayIJi//czt /Rn8Y3vfuPLxO06OB0xf/BL0lC536iEixBUf85rPTt72+GcuiXqtuM1+lZEaMCgi hJTfQfOKrEPi/9NKcVEaPApMq7of3ZdaJh20VQ0/9nd1E5Blw//glUfMdsU9KV3I XvHHDNAE0nXQHZ7T7fxf/uzYZVHeedN2mXxe5DisVDtJBvpJgKGtkTZJGkp0wk3L VFrUdDqj/JrNt9dRtykJKrnMXu7mpRfXi6hpk17K1nF0YAMLeKf5Q== Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dcn2hccg1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:21:20 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 637IqPim013827; Tue, 7 Apr 2026 19:21:19 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4dcmf44jvb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:21:19 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 637JLFir34603312 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 7 Apr 2026 19:21:15 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B16AA20043; Tue, 7 Apr 2026 19:21:15 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 27D4D20040; Tue, 7 Apr 2026 19:21:11 +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:21:10 +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 13/17] sched/core: Introduce a simple steal monitor Date: Wed, 8 Apr 2026 00:49:46 +0530 Message-ID: <20260407191950.643549-14-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: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDE3NSBTYWx0ZWRfX5OArtw227tYu kzZ1+9ATowVrNPFMT6MxVGs+EAJvgjRlA79hywmOfeTDbNh1IjJcp3+ThQpNQkhsh6DvkWpg/vl ZON0ylSVkaaHKVFXO4rbpjHQpL9i0/JqgYrAgjhlsNAckdblldignJdqoWhMIvc1GM3PWOIx2al 6sanwhLDutnF5Kpq9+IR3gC79eZzKMjHfyjrOBiIW43+0S9/4uQyRJJNJAnx1DUQbLEF0qD8+48 iDbRCDxY45hYJsECVRLorI1pUG0dtA5l5M22pceAuUYNEVvQvN/+/Pw4u6M6/QRFewq2PlSGVLR Xne/RpzmeXO9fB0a2GZVNTsle0+t0V9B480FegmHpmHDxas2YRyE4QPXH5yYRXWk+XxeS0aTvn4 YF0gTR9/KxG39C1fNWnDAJhTVaRRF2tb7hkvFIplNeSeT+j5xVivRO8jhkFrswduaJa3+cCwjkU TQHo6WrJYvs5JzW9rLA== X-Proofpoint-GUID: OHU5A-KRldxKZaSEUIF8W6jLyazekOZM X-Authority-Analysis: v=2.4 cv=a/wAM0SF c=1 sm=1 tr=0 ts=69d55930 cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=OdSMrRaz63idaxcbYwMA:9 X-Proofpoint-ORIG-GUID: rscypStRwJus-ZYxeWFwWYgMqkA9sKA3 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 clxscore=1015 spamscore=0 impostorscore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0 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 Content-Type: text/plain; charset="utf-8" Start with a simple steal monitor. It is meant to look at steal time and make the decision to reduce/increase the preferred CPUs. It has - work function to execute the steal time calculations and decision making periodically. - temporary cpumask, which will be used in the work function. This helps to avoid cpumask allocation in periodic work function. - low and high thesholds for steal time. - sampling period to control the frequency of steal time calculations. - cache the previous decision to avoid oscillations Signed-off-by: Shrikanth Hegde --- kernel/sched/core.c | 23 +++++++++++++++++++++++ kernel/sched/sched.h | 14 ++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 7a9442439eb2..8c80600ddd28 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -9083,6 +9083,8 @@ void __init sched_init(void) =20 preempt_dynamic_init(); =20 + sched_init_steal_monitor(); + scheduler_running =3D 1; } =20 @@ -11332,4 +11334,25 @@ void sched_push_current_non_preferred_cpu(struct r= q *rq) local_irq_restore(flags); } =20 +struct steal_monitor_t steal_mon; + +void sched_init_steal_monitor(void) +{ + INIT_WORK(&steal_mon.work, sched_steal_detection_work); + zalloc_cpumask_var(&steal_mon.tmp_mask, GFP_NOWAIT); + steal_mon.low_threshold =3D 200; /* 2% steal time */ + steal_mon.high_threshold =3D 500; /* 5% steal time */ + steal_mon.sampling_period_ms =3D 1000; /* once per second */ +} + +/* This is only a skeleton. Subsequent patches introduce more of it */ +void sched_steal_detection_work(struct work_struct *work) +{ + struct steal_monitor_t *sm =3D container_of(work, struct steal_monitor_t,= work); + ktime_t now; + + /* Update the prev_time for next iteration*/ + now =3D ktime_get(); + sm->prev_time =3D now; +} #endif diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index c1d037f11c62..c0fbfb04eda3 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -4138,12 +4138,25 @@ DEFINE_CLASS_IS_UNCONDITIONAL(sched_change) #include "ext.h" =20 #ifdef CONFIG_PARAVIRT +struct steal_monitor_t { + struct work_struct work; + cpumask_var_t tmp_mask; + ktime_t prev_time; + u64 prev_steal; + int previous_decision; + unsigned int low_threshold; + unsigned int high_threshold; + unsigned int sampling_period_ms; +}; + static inline bool task_can_run_on_preferred_cpu(struct task_struct *p) { return cpumask_intersects(p->cpus_ptr, cpu_preferred_mask); } =20 void sched_push_current_non_preferred_cpu(struct rq *rq); +void sched_init_steal_monitor(void); +void sched_steal_detection_work(struct work_struct *work); #else static inline bool task_can_run_on_preferred_cpu(struct task_struct *p) { @@ -4151,6 +4164,7 @@ static inline bool task_can_run_on_preferred_cpu(stru= ct task_struct *p) } =20 static inline void sched_push_current_non_preferred_cpu(struct rq *rq) { } +static inline void sched_init_steal_monitor(void) { } #endif =20 #endif /* _KERNEL_SCHED_SCHED_H */ --=20 2.47.3 From nobody Mon Jun 15 03:52:32 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (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 CA3F7359703 for ; Tue, 7 Apr 2026 19:21:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589705; cv=none; b=nZ8P0sYAaIvGPVcaTLLh6OsWpgXbCTTSKN8ZUqbG5SLVgbCoNOjDjsy9djyF3n26YlDzI17d1ZfDcSzV2oIqrDjqwf8QSmJ5fTtJ0XLV2CSALGzWQ5r1yhRcMb/4kJ6OHsvPl+oVkdwRxvwckpY1MREWMHFi9qlgMtu1Lci4HKg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589705; c=relaxed/simple; bh=cCqOYjuqMykQ/z9dfT5z+nZ0AP2Etl5oSKMTVjTSZ3g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Mgep0jW7/yyGSTMnMCsuvYlXUOXDS/Yg+7oaNf9wYn0cyK1MiDWkDt9FbPHPMDeh4pT7xVxUJOkIztaPA2B67gnZs3bXEWDR9iwfLSf5O1cztHednwcoNb+txAgl7V2chv/HFcYGPUzKHplGcgiO1rHvLg3/GeLZv2qNB7lpY2I= 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=mUI+kOdV; arc=none smtp.client-ip=148.163.158.5 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="mUI+kOdV" Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637DlDWp2326507; Tue, 7 Apr 2026 19:21:26 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=J2glyphH2EC4aZWWl H4JVgVSe8hXOEm1j2Rd713j/SQ=; b=mUI+kOdVjhgVRwNYOqQ0x0huGBCpZ4V3V ivDs7JMkj45rURTnedMGfazJhdANIgXSZwKCd4RgNOUiUAjN/1o2rfykwOb8grCX 8SLhlgGnjcYyicNJai7HD7B4Ye/qz/X+R6SOS9+27Z5T7/NZcLVSe8I83ke7Bftb +JT4xs1P4SyKT7UJ0wJuCziPCdyC2E6KhaSreUKnHO72/1E5snPE7a78Qk1+ZeK9 RHziql5PRJ2xVui97HV7hyRJNxDcLjMuuylscfKfQasH2vADRdDxxK4nIbcS5ONc Mmzmkp6IyDcFCovG8PzXDgFNH9gNceXfPmj1ZNs5LegAQY4qyJpTg== Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dcn2kccux-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:21:25 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 637Ir5nh014345; Tue, 7 Apr 2026 19:21:24 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dcmg4mhvv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:21:24 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 637JLKOp46334364 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 7 Apr 2026 19:21:20 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B3D5B20043; Tue, 7 Apr 2026 19:21:20 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0A0EF20040; Tue, 7 Apr 2026 19:21:16 +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:21:15 +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 14/17] sched/core: Compute steal values at regular intervals Date: Wed, 8 Apr 2026 00:49:47 +0530 Message-ID: <20260407191950.643549-15-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: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDE3NSBTYWx0ZWRfX3rb7q2yx5Ymn TwpYCV5rjESTH9ns/t29kIwTNPOFJIS36aPr1q7OJvmOgx3y73SHlVlX/E6Nnpq7qB+IsPVqmZW O0C/y8UzOj6sTBVE0+7zWYSixVQJvRY26rPH+ssj+9dmp458J3cbkfpOvQk//imqmUX8nNf1cyh OwZlqeFQfzrYS6xdaOek2hGmVL9/5yxJScq3345BiqWBEcjI7Q6IMOwIeRjDZAy9YCth1yOZX+b 6c4EBL9sp+i2UiM+LfpnfjHZu/IildQ4qHXGRtQp+0xfeWl+XiGsfO16xonPl1vSr/VtpCW1qWO cjHRtZVQYnQ3ZC14evUUSjKjjT5qe/BMoT270c5B6czaWrewtrwA+SW6laWUQZwugVRlgzSivRg f5LHF6bH6I9yPVezW4xY38+iAkHQ4rtJUm8kaHnOh9ji+egGPaIztjhLIgoHge6x2f0z2JLa+Iw 9WWYf+boOJRIHZEbQaQ== X-Proofpoint-ORIG-GUID: bJyLKEFO80FAoa284lmC9SAKEi3YYXWB X-Authority-Analysis: v=2.4 cv=e9k2j6p/ c=1 sm=1 tr=0 ts=69d55935 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=Y2IxJ9c9Rs8Kov3niI8_:22 a=VnNF1IyMAAAA:8 a=5Sjc-5nkPH-zHnvugUgA:9 X-Proofpoint-GUID: IsNuVmJHzGj1_-va0W8qdX9ZcQCeuogT 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 clxscore=1015 impostorscore=0 malwarescore=0 suspectscore=0 spamscore=0 bulkscore=0 adultscore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604070175 Content-Type: text/plain; charset="utf-8" Kick off the work to compute the steal time at regular interval. Gated with sched feature STEAL_MONITOR to avoid any overhead in systems that are not interested in it. The sampling period can configured at runtime using steal_mon_period. By default is 1000 milliseconds. i.e. 1 second This work is done by first online housekeeping CPU only. Hence it won't need any complicated synchronization. Signed-off-by: Shrikanth Hegde --- kernel/sched/core.c | 27 +++++++++++++++++++++++++++ kernel/sched/sched.h | 2 ++ 2 files changed, 29 insertions(+) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 8c80600ddd28..1c6fcf1ae4fe 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -5694,6 +5694,10 @@ void sched_tick(void) rq->idle_balance =3D idle_cpu(cpu); sched_balance_trigger(rq); } + + /* This feature works currently on SMT system */ + if (sched_feat(STEAL_MONITOR) && IS_ENABLED(CONFIG_SCHED_SMT)) + sched_trigger_steal_computation(cpu); } =20 #ifdef CONFIG_NO_HZ_FULL @@ -11355,4 +11359,27 @@ void sched_steal_detection_work(struct work_struct= *work) now =3D ktime_get(); sm->prev_time =3D now; } + +void sched_trigger_steal_computation(int cpu) +{ + int first_hk_cpu =3D cpumask_first_and(housekeeping_cpumask(HK_TYPE_KERNE= L_NOISE), + cpu_online_mask); + ktime_t now; + + /* Done by first online housekeeping CPU only */ + if (likely(cpu !=3D first_hk_cpu)) + return; + + /* + * Since everything is updated by first housekeeping CPU, + * There is no need for complex syncronization. + */ + now =3D ktime_get(); + + /* Default is once per second */ + if (likely((now - steal_mon.prev_time) < steal_mon.sampling_period_ms * N= SEC_PER_MSEC)) + return; + + schedule_work_on(first_hk_cpu, &steal_mon.work); +} #endif diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index c0fbfb04eda3..337357e48a83 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -4157,6 +4157,7 @@ static inline bool task_can_run_on_preferred_cpu(stru= ct task_struct *p) void sched_push_current_non_preferred_cpu(struct rq *rq); void sched_init_steal_monitor(void); void sched_steal_detection_work(struct work_struct *work); +void sched_trigger_steal_computation(int cpu); #else static inline bool task_can_run_on_preferred_cpu(struct task_struct *p) { @@ -4165,6 +4166,7 @@ static inline bool task_can_run_on_preferred_cpu(stru= ct task_struct *p) =20 static inline void sched_push_current_non_preferred_cpu(struct rq *rq) { } static inline void sched_init_steal_monitor(void) { } +static inline void sched_trigger_steal_computation(int cpu) { } #endif =20 #endif /* _KERNEL_SCHED_SCHED_H */ --=20 2.47.3 From nobody Mon Jun 15 03:52:32 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (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 A70C233CEA9 for ; Tue, 7 Apr 2026 19:21:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589708; cv=none; b=dk2jFmDG1RyZqZnTcLtVwnDz1U5EAxEp9/Thn0/h5/BbAQbF4kGQs2AfdbrKwZpx2shpIN/PR6EeqkaNOt23XHxXrqv4RyQRxnF0UgLdWIfoiWu1EOV5QlDuCmJpBynuAIAUrz6tjRXAgnzXAZPpPpBH29Ra8Tr7AWMwM7jXMCs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589708; c=relaxed/simple; bh=m7S2I9rKVjRdEaxnrkwb0vV70J5VBV4oktpUOB7SmH4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kGylYpxYr2KDQ8/50H2c/YDzescBRgieM/eObfiWIg+MTUp5+85JknB6UCmnlUq51AJDCXdqvbFe5fSJt8sjEYwF8AKFrxYNiTe5UdbWLKXWgPMlEu85qemAXm8kHMBZH6OK8Y5SLjyB+ze7KSqwCilNSsI+05Q5TQnEon9sZus= 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=tB9Y+mbV; arc=none smtp.client-ip=148.163.158.5 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="tB9Y+mbV" Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637EY9e72325939; Tue, 7 Apr 2026 19:21:31 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=dkN8iedzNu44DV9+2 K0uvztl6e//Dv31TD4FOwHFi5Y=; b=tB9Y+mbV5GNFKIRT8rYrYvSdcFxDNDmNl U2XSGlex0qak93W/gG9QAIK/cpcuGLUK/yhjn+4koHhgETpAVI9sh7WYi/SGlX+O GWcDocL9n0ibN3zv08KjeJXz49SUxdAZ1LsNWy+m8a7BjO9ubyUyrkmuUXmoGmPC MF0E2Dy8viFbhbrD28RsIN8ok+N+N0yL6T3KlJEDEETm3Dkqqj8ih1zMjCchTIMN ympJbcdNIvLcJFg+QiP2KPv8DhTD4YzWcIzBwjBtc4FAg89Xt9QM0HdU0ZlRWTHz DVGotcSn8En2zVtCMbPHxJtQeQU552HLgITZmpvxFeD8Y7cNBJvPg== 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 4dcn2kccv6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:21:30 +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 637Itgn9018946; Tue, 7 Apr 2026 19:21:29 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dcme9cjy0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:21:29 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay03.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 637JLPRK54264154 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 7 Apr 2026 19:21:25 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7C32A20043; Tue, 7 Apr 2026 19:21:25 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 27AAA20040; Tue, 7 Apr 2026 19:21:21 +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:21:20 +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 15/17] sched/core: Handle steal values and mark CPUs as preferred Date: Wed, 8 Apr 2026 00:49:48 +0530 Message-ID: <20260407191950.643549-16-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: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDE3NSBTYWx0ZWRfXyn67EzmtPpjD LnLTH7o59MQh+ickx7ZM3iGWHRWNwAJM3L4Vz3nmcjiH1OOSCiGdCqAA6o5VYNvHcVh/DYzUApH gNiAm5VG/tcSSXyUwO3rnHrWclURBuuywoHe74/e4FFPH1rkCNqwLSYe7dMZrz2EITCMPOUs3d/ jQ1BI6h9QKgaKAxOfWZMyuLhyj/6ixO8VAgqW/m8Tgln6rSNoEUe3vasr8LwPi/qOQFhmZth6kM LsLnaAEP76ByInsgHF0Bak5LEJBU+BTFTqt6jVup5hPv94mzC6Vq4sVyCzLuHPpAy0lsYW6uyRJ vuwfpMTDiOUuXYbPZHopHpXRFrNRR/m2bSntD7WIllL2P3Cz9A/T021rhrHyo5sUd7K6g/LwPwK L97//0u6yuoFKUSk/d1yshhoPRACtCNgJAe5NZvZfWUH1KrNRx/mM/fNCWGgYE1oJQC3X8YJW2k NwFLtiBW54TR0MPQroA== X-Proofpoint-ORIG-GUID: 3_L5be_2DOcgE0SDwjhnGpp8Drfd3Eef X-Authority-Analysis: v=2.4 cv=e9k2j6p/ c=1 sm=1 tr=0 ts=69d5593a cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=Y2IxJ9c9Rs8Kov3niI8_:22 a=VnNF1IyMAAAA:8 a=_P_wQ3gu65oW4jFxmyEA:9 X-Proofpoint-GUID: 3ahv-g3OOHnV_5CYACRba9p2pxpCDHOZ 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 clxscore=1015 impostorscore=0 malwarescore=0 suspectscore=0 spamscore=0 bulkscore=0 adultscore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604070175 Content-Type: text/plain; charset="utf-8" This is the main periodic work which handles the steal time values. - Compute the steal time by looking CPUTIME_STEAL across all online CPUs - Compute steal ratio. It is multiplied by 100 to handle the fractional values. - If the steal time higher than threshold, reduce the number of preferred CPUs by 1 core. The last core in the intersection of online and=20 preferred CPUs will be marked as non-preferred. Ensure at least one core is left as preferred always. - If the steal time lower than threshold, increase the number of preferred CPUs by 1 core. First online core which is not in cpu_preferred_mask will be marked as preferred. If all cores are aleady set to preferred, bail out. Increase/Decrease may need to modify the splicing across NUMA nodes. It is being kept simple for now. Signed-off-by: Shrikanth Hegde --- kernel/sched/core.c | 52 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 1c6fcf1ae4fe..6e2b733adf45 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -11349,15 +11349,65 @@ void sched_init_steal_monitor(void) steal_mon.sampling_period_ms =3D 1000; /* once per second */ } =20 -/* This is only a skeleton. Subsequent patches introduce more of it */ void sched_steal_detection_work(struct work_struct *work) { struct steal_monitor_t *sm =3D container_of(work, struct steal_monitor_t,= work); + int this_cpu =3D raw_smp_processor_id(); + u64 delta_steal, delta_ns, steal =3D 0; + u64 steal_ratio; ktime_t now; + int tmp_cpu; + + for_each_cpu(tmp_cpu, cpu_online_mask) + steal +=3D kcpustat_cpu(tmp_cpu).cpustat[CPUTIME_STEAL]; =20 /* Update the prev_time for next iteration*/ now =3D ktime_get(); + delta_steal =3D steal > sm->prev_steal ? steal - sm->prev_steal : 0; + delta_ns =3D max_t(u64, ktime_to_ns(ktime_sub(now, sm->prev_time)), 1); + sm->prev_time =3D now; + sm->prev_steal =3D steal; + +#ifdef CONFIG_SCHED_SMT + /* Multiply by 100 to consider the fractional values of steal time */ + steal_ratio =3D (delta_steal * 100 * 100) / (delta_ns * num_online_cpus()= ); + + /* If the steal time values are high, reduce one core from preferred CPUs= */ + if (steal_ratio > sm->high_threshold) { + int last_cpu; + + cpumask_and(sm->tmp_mask, cpu_online_mask, cpu_preferred_mask); + last_cpu =3D cpumask_last(sm->tmp_mask); + + /* + * If the core belongs to the housekeeping CPUs, no action is + * taken. This leaves at least one core preferred always. + * This ensures at least some CPUs are available to run + */ + if (cpumask_equal(cpu_smt_mask(last_cpu), cpu_smt_mask(this_cpu))) + return; + + for_each_cpu(tmp_cpu, cpu_smt_mask(last_cpu)) { + set_cpu_preferred(tmp_cpu, false); + if (tick_nohz_full_cpu(tmp_cpu)) + tick_nohz_dep_set_cpu(tmp_cpu, TICK_DEP_BIT_SCHED); + } + } + + /* If the steal time values are low, increase one core as preferred CPUs = */ + if (steal_ratio < sm->low_threshold) { + int first_cpu; + + first_cpu =3D cpumask_first_andnot(cpu_online_mask, cpu_preferred_mask); + /* All CPUs are preferred. Nothing to increase further */ + if (first_cpu >=3D nr_cpu_ids) + return; + + for_each_cpu(tmp_cpu, cpu_smt_mask(first_cpu)) + set_cpu_preferred(tmp_cpu, true); + } +#endif } =20 void sched_trigger_steal_computation(int cpu) --=20 2.47.3 From nobody Mon Jun 15 03:52:32 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (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 3440436D9F9 for ; Tue, 7 Apr 2026 19:21:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589713; cv=none; b=uDe2gXwWOitDmCaJw6OV3kYEQpDQVQFM+GeBK0BHjgVWI87sx5kyUgPaHXpKtuv1c2tQudijv/0T3tYyZyew3KYPpCDsnqqa0N1kla1khhUhFDrorzJ11AxEhuZah9PDDMxIEQGdFEHHW9U/TyXgcvYLFblGpUORLdh5K9/KaG4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589713; c=relaxed/simple; bh=EscY/gwtxQGqMwhdFpYE+obuKTjC3AgeqgSrZoJZBC0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MhqprWYsrH8bLyOgCqQxOQl3wOr2d33Yz/JEXTKBwraRjONOufYYRpHgoYjQ0sMeXESOVoNqNApTIQPHPUfX0K6/Rl2oFeimzfWNQS36mQZUP8GYKMyeRH5xPQk4vbwq45TR97M5ZqCOIbBugZQQDeKooNjJAb891crA8yzg9VQ= 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=oVlqRL3l; arc=none smtp.client-ip=148.163.158.5 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="oVlqRL3l" Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637DXolE2210925; Tue, 7 Apr 2026 19:21:36 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=+c8WCMj+yjeCHw9hu VAgkKvDXHrEcmNqIQ01Z6i+2R4=; b=oVlqRL3l6aUNNZylfoNTFq6TTh5c9NhzL BHrs0KYJkX9hAoIndUCtlL94zy4mWVOdPB5vFL4Pv9nyHH86q2d+8jeFyTr9jzOd ll40s8LlK/Ut5pCzLpZ1RthwViBb7nMIV9trY8SkZhrCeKXSU6Q0n6IXR63mksGF BfJ1hn/6V9wuby7sMndEqUMB0n9BI74OdQJy36j7V1kDqdx/BXY/ZTzmkkfGwCd5 /Ztn48vee2oab/4FKU+UsXuf8glBA4oJvbdOMEJdvbn8u5KZbxVYbI8dKyMw/uIU VpW+kAT4wJYkX8f/q19ImT6jMbBmavGXr6PfjDUui0hS/NC9W8Rrw== Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dcn2hccgs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:21:35 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 637IXkCA030058; Tue, 7 Apr 2026 19:21:34 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4dcme7cjpn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:21:34 +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 637JLUrT59965910 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 7 Apr 2026 19:21:30 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 927CE20043; Tue, 7 Apr 2026 19:21:30 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C6E1E20040; Tue, 7 Apr 2026 19:21:25 +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:21:25 +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 16/17] sched/core: Mark the direction of steal values to avoid oscillations Date: Wed, 8 Apr 2026 00:49:49 +0530 Message-ID: <20260407191950.643549-17-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: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDE3NSBTYWx0ZWRfX/mNrmKdcZzjc sP3xVxswId1zbqQxq7pmDzlecqI20l6u6NI0g80kg6xSJr5ne0LrNwbgBZUl2C48XWFaECJss/E pha3fPdKibwRYxGxVlvMrweBdj6nkQMQ/NK2EhxphjwaaVi//KEocwRUmcRiluGMaed06f8gMAD XkpAxm159FUwju+zcUlriF8x8Cd8xnRAp7Cq/WdR8KyaBiyS/ZlrV8NEPRByIySpnL6OaxoGlH9 vjjROIMyYutQ0SLrJCmGTGOpWjqraXA+GHV5psNPYCNoe2j3SfXmrkro/ctpU+sqC4LrW9s0/QN PCAxsfTrrMFzEkxhxxiB8okfJGpGxZdUgw1LgJK7eyZ8fmFbub5UC8qhVSmK9TLjkCkyWtThfL/ JOzqAa9VuPH0BNU6Qaovq49x9/pwOndI1kuUve+ldap76n8UOMyG4MDTNfz5jIjODBpLO5idwgG qS0l4FqjsD7ei+mChNw== X-Proofpoint-GUID: pNDiS4HV3w36aUIesUVNM57KMbGjfEPs X-Authority-Analysis: v=2.4 cv=a/wAM0SF c=1 sm=1 tr=0 ts=69d5593f cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=NVR8b6ZH4u3ztrVwBTQA:9 X-Proofpoint-ORIG-GUID: IftFx8kLcBlbywHXlocQMyKqsKpdO0is 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 clxscore=1015 spamscore=0 impostorscore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0 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 Content-Type: text/plain; charset="utf-8" Cache the previous decision on steal time. So consecutive values of high values or low values are taken for increase/decrease of preferred CPUs. Signed-off-by: Shrikanth Hegde --- kernel/sched/core.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 6e2b733adf45..cb9110f95ebf 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -11374,7 +11374,7 @@ void sched_steal_detection_work(struct work_struct = *work) steal_ratio =3D (delta_steal * 100 * 100) / (delta_ns * num_online_cpus()= ); =20 /* If the steal time values are high, reduce one core from preferred CPUs= */ - if (steal_ratio > sm->high_threshold) { + if (sm->previous_decision =3D=3D 1 && steal_ratio > sm->high_threshold) { int last_cpu; =20 cpumask_and(sm->tmp_mask, cpu_online_mask, cpu_preferred_mask); @@ -11396,7 +11396,7 @@ void sched_steal_detection_work(struct work_struct = *work) } =20 /* If the steal time values are low, increase one core as preferred CPUs = */ - if (steal_ratio < sm->low_threshold) { + if (sm->previous_decision =3D=3D -1 && steal_ratio < sm->low_threshold) { int first_cpu; =20 first_cpu =3D cpumask_first_andnot(cpu_online_mask, cpu_preferred_mask); @@ -11407,6 +11407,14 @@ void sched_steal_detection_work(struct work_struct= *work) for_each_cpu(tmp_cpu, cpu_smt_mask(first_cpu)) set_cpu_preferred(tmp_cpu, true); } + + /* mark the direction. This helps to avoid ping-pongs */ + if (steal_ratio > sm->high_threshold) + sm->previous_decision =3D 1; + else if (steal_ratio < sm->low_threshold) + sm->previous_decision =3D -1; + else + sm->previous_decision =3D 0; #endif } =20 --=20 2.47.3 From nobody Mon Jun 15 03:52:32 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (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 3166D24503B for ; Tue, 7 Apr 2026 19:23:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589836; cv=none; b=lcszy27rDSiJ9vAd3KJXgSq2SvKBHfmbSB4EOa/QUeuZL/SQDRH1zroKiXtp3zAc2pRTyAqHE5hKqUfCKTrkJhiiAqrv7kujDY/gHBXcEQvEhPRhAld7n+foOPylr7CoDBiPf7/6i59maFZgCYNto8Ww2YzUrM3EK9dSB5Vf350= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775589836; c=relaxed/simple; bh=3SSdEmZCO4ts0gQEEB0IzzevgJ7cF1m3FOdCBxzvQhY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GX2ZqRmx+dYAq1FInJiM8+ye3irCgyDYjSMN8q4QMPkU5za4OKEDzIMnddIlTqPb6XDJAW+kzuGuWSxH4wss3hYtNCGuliYHs2JpYG/qUbCSJNpHGh8zE7iLxxBciNgL88N16rTxgW1bmeW3Zz3xXR6BHF3hy+3gtVJ1k7LxDNo= 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=FhigagFf; arc=none smtp.client-ip=148.163.158.5 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="FhigagFf" Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637EEK1u2212446; Tue, 7 Apr 2026 19:21:40 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=V5hQT/69n97KiIh0z k/d7u+CGmBeXGPSFMpglBfjPGI=; b=FhigagFfGTnEWlUYqWQ9ZeIAma/qleBnd 8arFwhMTCzW7+29GMPpq1DNq+wxtgnoRRLrReX3i9Dg7ZLopPeaqFKjU22gcYJQK qA8ea1OmZ0hVTmy8t/2mSMAKLTDdBMqTDg2FqnKLArjkFBHLQBL9ijH7ZN6bh5dJ icJcw1+wmfaudojt1wbtYUQzutG9qHC64t5maMdZuTaBnok8iIKDJRmAIp5eYAzl XUW/yVJXjANx7GmVl+k9FLVFt0ymWNLnSsabrK88GpOs0DXw4Gc8Yuuoe7EdL4oC sfKGxIkQtD1yB0lUc5hggMQ5XRT9dl/vOEb4qY14NebS2+oZVydsQ== 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 4dcn2hcch5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:21:40 +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 637IYtOu019008; Tue, 7 Apr 2026 19:21:39 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dcme9cjyb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Apr 2026 19:21:39 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 637JLZ7H30474556 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 7 Apr 2026 19:21:35 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 787F52004D; Tue, 7 Apr 2026 19:21:35 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E2EC320043; Tue, 7 Apr 2026 19:21:30 +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:21:30 +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 17/17] sched/debug: Add debug knobs for steal monitor Date: Wed, 8 Apr 2026 00:49:50 +0530 Message-ID: <20260407191950.643549-18-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: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDE3NSBTYWx0ZWRfX1sWGBDwrEeZE vAYQDy42KX84ZYrjmUr6GkWrt2yZi1dUtLUZGFGgFFM5lB7bp1BCjFR0XhpNsx+VtSrO7sVyioP e4PX1w1DbnSODE96Ngrp8pi/+oxloHI470Ndk0V0OzksFP+kX4EsaiSi4pi/owgDx6cnjOZgGpz XRlqjMZwe5ylIk9SfJth5xwEPXdeYxJb0YpsZNYSxp4BDQjK4W+YDCexca3N8UQsWiH08lc6koK QIeE7UjAu6MrBRitaBxrDEaZziKy5a9Q0YUGSGq0NzNK5IMTOqQvjA2lLHBQteC3C7mdn1sy/PY e5dTw++qAciQizAc0P/7uxPZwf+GmiBis/EGiF4XsQHBczj+lP9RmBNLf55wQl/o5+NA2h4SUY3 EXfRMCy6MPpOZeDmsup3l+doizJ+4p6eO5mr/OHUccn4IYHIQev9JF7WIGbxl/v1Bm7hpcp6/Wq Nn/dEmhdBj7vwLgRm/Q== X-Proofpoint-GUID: chtxJZwdkrOMRAPyOlgHWTJC3EUT_bxS X-Authority-Analysis: v=2.4 cv=a/wAM0SF c=1 sm=1 tr=0 ts=69d55944 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=UD3wv6VuSr2BVd-_4AcA:9 X-Proofpoint-ORIG-GUID: xuf9VrGGha8q8Gm99YSbz2eN7zxa_E5_ 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 clxscore=1015 spamscore=0 impostorscore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0 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 Content-Type: text/plain; charset="utf-8" Add three debug knobs: steal_mon_period - sampling frequency in milliseconds. steal_mon_low - lower threshold value (specify percentage * 100) steal_mon_high - higher threshold value (specify percentage * 100) Refer to Documentation/scheduler/sched-debug.rst for detailed info. Signed-off-by: Shrikanth Hegde --- Documentation/scheduler/sched-debug.rst | 27 +++++++++++++++++++++++++ kernel/sched/debug.c | 6 ++++++ kernel/sched/sched.h | 2 ++ 3 files changed, 35 insertions(+) diff --git a/Documentation/scheduler/sched-debug.rst b/Documentation/schedu= ler/sched-debug.rst index b5a92a39eccd..288cd2c63224 100644 --- a/Documentation/scheduler/sched-debug.rst +++ b/Documentation/scheduler/sched-debug.rst @@ -52,3 +52,30 @@ rate for each task. =20 ``scan_size_mb`` is how many megabytes worth of pages are scanned for a given scan. + +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +Tunables for generic steal monitor +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +Generic Steal time monitor can be enabled by selecting STEAL_MONITOR in +sched features. It is disabled by default. + +steal_mon_period - sampling frequency in milliseconds. +How often sampling for steal values happen. This controls how fast schedul= er +acts on detecting the changes to steal time values. +Default value is 1000 milliseconds. + +steal_mon_low - lower threshold value in percentage * 100 +This determines what values should be considered as nil/no steal values. +When scheduler see steal times below this value, it will try to increase +the preferred CPUs by 1 core. Having value as zero causes too much oscilla= tions. +Default value is 200, i.e 2% steal is considered as low threshold. + +steal_mon_high - higher threshold value in percentage * 100 +This determines what values should be considered as high steal values. +When scheduler see steal times higher than this value, it will reduce +the preferred CPUs by 1 core. +Default value is 500, i.e 5% steal is considered as high threshold. + +Note: When the steal values in between high and low threshold no action is= taken +by scheduler. This is to avoid too much oscillations. diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c index 482c86a0ff80..9a6c1ada2cec 100644 --- a/kernel/sched/debug.c +++ b/kernel/sched/debug.c @@ -612,6 +612,12 @@ static __init int sched_init_debug(void) debugfs_create_u32("migration_cost_ns", 0644, debugfs_sched, &sysctl_sche= d_migration_cost); debugfs_create_u32("nr_migrate", 0644, debugfs_sched, &sysctl_sched_nr_mi= grate); =20 +#ifdef CONFIG_PARAVIRT + debugfs_create_u32("steal_mon_low", 0644, debugfs_sched, &steal_mon.low_t= hreshold); + debugfs_create_u32("steal_mon_high", 0644, debugfs_sched, &steal_mon.high= _threshold); + debugfs_create_u32("steal_mon_period", 0644, debugfs_sched, &steal_mon.sa= mpling_period_ms); +#endif + sched_domains_mutex_lock(); update_sched_domain_debugfs(); sched_domains_mutex_unlock(); diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index 337357e48a83..850d944b22f4 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -4149,6 +4149,8 @@ struct steal_monitor_t { unsigned int sampling_period_ms; }; =20 +extern struct steal_monitor_t steal_mon; + static inline bool task_can_run_on_preferred_cpu(struct task_struct *p) { return cpumask_intersects(p->cpus_ptr, cpu_preferred_mask); --=20 2.47.3