From nobody Tue Dec 2 02:18:52 2025 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 90978352926 for ; Wed, 19 Nov 2025 12:45:26 +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=1763556328; cv=none; b=HF9O0vF3yFGlfqB3dob7SYqi1vpCY+flaiIAl7n2f7fy9DMQ9nCz1emk2wAPm9MeuFM1h9YwtiyGUwZ3HqA044cSLplLxjINogb5tnOU488IUKuOBj+qZ5vuOTSgDy3nfvPr6oLreM2DUAPLWPzrf1HYLL91AwWjh1aXl4ZTAdU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763556328; c=relaxed/simple; bh=cREaxyAp48cBSBXBPdHAukNZY7yUA9uAauUwUXgG0OE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZxMm+mzbinkCRfQ1Qgrlc0SEiTJ9ze0Kk90ODZIqStG0CNUNPO3RpnGxTTgrZ7t08vayAU+ygqcTznp4InP6P2VFPyhyRJYjymiw+k60Ukf38w4HVtgqn05GqePspa4xDQo5F0xXaqToXh0g8ZmiVstGhSSykcQz4fuRnhjR5nM= 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=rzTLRziw; 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="rzTLRziw" Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5AJ8QU5G022737; Wed, 19 Nov 2025 12:45:09 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=EMglGUXjxWB1AjAp9 b8xSMYJfDhPqEOirHFXTgrKt0g=; b=rzTLRziwI+yhqDejYviufCfQVLBqDJXl+ q0+m7+6H6IbmGvqfEMHv+xRZW+lBZEO8Z9mC2IuZzjTd5Vp+RjwA8Bd4m3so2IU2 BCASkoN99uIA5fFrJ/qaA06s0IJs1YhMMJXaR9jG52Jo4fc+qPDQTY1AdUUAK7kH VW++UA1AEePyzr8SNZA6aIPdXFzLU6bL3gKPSej3FTExyQTci4DBCteXtUP+pkRY 6d22BUTY70BDDvbWDBEOS6T/CBFvR2niYs9AeuA+ffpAdH9ZOClUJ11Pg62GAMqF 8YbxetUMS+7H8zb+CcD2J5VXk8FQPwpbu4iPV5A8McfI9cOpHN62g== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aejjtykdq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:08 +0000 (GMT) Received: from m0353725.ppops.net (m0353725.ppops.net [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5AJCg5r0019331; Wed, 19 Nov 2025 12:45:08 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aejjtykdm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:08 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5AJAwIHE030795; Wed, 19 Nov 2025 12:45:07 GMT Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4af47y0rkc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:07 +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 5AJCj30S52953400 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Nov 2025 12:45:03 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 34B0120043; Wed, 19 Nov 2025 12:45:03 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 1E8C720040; Wed, 19 Nov 2025 12:44:59 +0000 (GMT) Received: from li-7bb28a4c-2dab-11b2-a85c-887b5c60d769.ibm.com.com (unknown [9.39.25.220]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 19 Nov 2025 12:44:58 +0000 (GMT) From: Shrikanth Hegde To: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: sshegde@linux.ibm.com, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, tglx@linutronix.de, yury.norov@gmail.com, maddy@linux.ibm.com, srikar@linux.ibm.com, gregkh@linuxfoundation.org, 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, christophe.leroy@csgroup.eu Subject: [PATCH 01/17] sched/docs: Document cpu_paravirt_mask and Paravirt CPU concept Date: Wed, 19 Nov 2025 18:14:33 +0530 Message-ID: <20251119124449.1149616-2-sshegde@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251119124449.1149616-1-sshegde@linux.ibm.com> References: <20251119124449.1149616-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-GUID: Bwe00pfcTtIZHxJTF01ltZiLY_X8wHlP X-Proofpoint-ORIG-GUID: EaFCTdmCdSwH1owybEo2RDLQ8-n0dzO2 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE1MDAzMiBTYWx0ZWRfX/uCqO/hfeEIY LVNqqrV1DEtwSHo2nc2yurGrKHrF8faEiE8n1129GOCPAYKWM+F+jli0xqzaevNKuPuCKla+Kiu nk/CSwibVtWNQhTmUH/CLZOL5oEdKat7kqREBEcxymulhtwQnI6xRLJocmdWhFccBh7tfY31skU G1AIGxVa8DtLt6oRKO2vWueEOI3IUW9tVVn+/tRy6W+jFs2MmEwUzfiA7nbvpgOTYogpPliqAVL brKUoS6y1Tx5UIMGpPkXbVcaY+9C6D/8MRv/Co9XF1VxyVXZ7LOD8QrUJRetOx0aKHvZrsL2f0r OPnO0VWQHct3BsSgEk4jFyKSYHsz/yUFWQWVx1/+VW3QUIultPncD6aYtajze4WkARGRCeJjBcO lM16YMpJqbmaEA/YjCx3fR4wLGOj7w== X-Authority-Analysis: v=2.4 cv=SvOdKfO0 c=1 sm=1 tr=0 ts=691dbbd4 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=UMqL1o26Aa61VnK-UhoA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-19_03,2025-11-18_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 spamscore=0 clxscore=1015 suspectscore=0 phishscore=0 adultscore=0 bulkscore=0 impostorscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511150032 Content-Type: text/plain; charset="utf-8" Add documentation for new cpumask called cpu_paravirt_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 | 37 ++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/Documentation/scheduler/sched-arch.rst b/Documentation/schedul= er/sched-arch.rst index ed07efea7d02..6972c295013d 100644 --- a/Documentation/scheduler/sched-arch.rst +++ b/Documentation/scheduler/sched-arch.rst @@ -62,6 +62,43 @@ 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 +Paravirt CPUs +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +Under 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. Such vCPUs where workload can be +avoided at the moment for less vCPU preemption are called as "Paravirt CPU= s". +Note that when the pCPU contention goes away, these vCPUs can be used again +by the workload. + +Arch need to set/unset the specific vCPU in cpu_paravirt_mask. When set, a= void +that vCPU and when unset, use it as usual. + +Scheduler will try to avoid paravirt vCPUs as much as it can. +This is achieved by +1. Not selecting paravirt CPU at wakeup. +2. Push the task away from paravirt CPU at tick. +3. Not selecting paravirt CPU at load balance. + +This works only for SCHED_RT and SCHED_NORMAL. SCHED_EXT and userspace can= make +choices accordingly using cpu_paravirt_mask. + +/sys/devices/system/cpu/paravirt prints the current cpu_paravirt_mask in +cpulist format. + +Notes: +1. A task pinned only on paravirt CPUs will continue to run there. +2. This feature is available under CONFIG_PARAVIRT +3. Refer to PowerPC for architecure implementation side. +4. Doesn't push out any task running on isolated CPUs. =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 Tue Dec 2 02:18:53 2025 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 54EF126A1B9 for ; Wed, 19 Nov 2025 12:45:30 +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=1763556333; cv=none; b=rew86vcTwZ/yGpE4jeG/c2883KjOsfJTMmuV/Wk8sATXiPo+PvMP0hRS0PXJ+6Dm7GIoP/OlEt+2eWPtFanIcuB8XuYNaZkCMtQN7gCRU498qLtk69egf8JZBTZw5z2IkANLzcfQ+J9DPz2i4LLp2i1fZpmDvBkhCLJCe5ZTHhg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763556333; c=relaxed/simple; bh=Ly/3ShfsF40dDJDuiiyr1kPzfEiDiH4vBFLWkTyHsyM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DglQ+K0+662TlYS8u0mTGCEPcBMKgV3XhAWPn59Ee1djyyi8fEBIS12H2+b7VLTkODITUlbWLNNCIEdX+pBdbjSkiy7xVVaXPFpBC5fprx/lrOxUA+MyxQ6rxoyMQK+/7qacnTP1kGZIiuq4TmQNxX7+AzxvNzNDizZER7Mu59k= 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=YSluk9rF; 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="YSluk9rF" Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5AJ9wdM8019708; Wed, 19 Nov 2025 12:45:13 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=SsxUtQuljbB31H4Vb 1A8/PH/i69O3OULsuRsxx0vaAs=; b=YSluk9rFqcOa+A1A7G273GtHp4Q5SiAkG shKm+DwU3EoPtQisnrTywQ5V6PgYU2LEYvVGVYwYvUXp9y7APzCZDRLObUWhnWQ+ PHy1tb7X9MIKjRdq2UksHiUAkuVwouAS6gcjNBIx6L0ygju5hcMOwj6+l3OBOetR bCKc8XZtzqomcrYIJxRIsgILktlpUj/xJXWxAoig3ci3mYf97J379qNcXU1t0hP6 q9tHw0EcvFP++lc0HQ+cdtWeGDFKZOxDpbjcAqe+qLitcXnOznrkzlMoIdLF83Gc x0lCwvuhKzKp5BEjYpmrDtjxDpHbyDIw5XGVeVQdefMSNoD7ghPyQ== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aejgwym99-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:12 +0000 (GMT) Received: from m0356516.ppops.net (m0356516.ppops.net [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5AJCjC1v032011; Wed, 19 Nov 2025 12:45:12 GMT 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 4aejgwym96-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:12 +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 5AJBiPhr022311; Wed, 19 Nov 2025 12:45:11 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4af4un0n15-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:11 +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 5AJCj7d156951046 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Nov 2025 12:45:07 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7DF1F20043; Wed, 19 Nov 2025 12:45:07 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8DA7F20040; Wed, 19 Nov 2025 12:45:03 +0000 (GMT) Received: from li-7bb28a4c-2dab-11b2-a85c-887b5c60d769.ibm.com.com (unknown [9.39.25.220]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 19 Nov 2025 12:45:03 +0000 (GMT) From: Shrikanth Hegde To: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: sshegde@linux.ibm.com, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, tglx@linutronix.de, yury.norov@gmail.com, maddy@linux.ibm.com, srikar@linux.ibm.com, gregkh@linuxfoundation.org, 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, christophe.leroy@csgroup.eu Subject: [PATCH 02/17] cpumask: Introduce cpu_paravirt_mask Date: Wed, 19 Nov 2025 18:14:34 +0530 Message-ID: <20251119124449.1149616-3-sshegde@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251119124449.1149616-1-sshegde@linux.ibm.com> References: <20251119124449.1149616-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-GUID: MtzTJCe4lQpT_P7m9pyhjr-5a8YqBN_W X-Authority-Analysis: v=2.4 cv=YqwChoYX c=1 sm=1 tr=0 ts=691dbbd9 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=PotXWsJoChvkt9Z01ZEA:9 X-Proofpoint-ORIG-GUID: lZnDUJjFBBriO7zlrR7s22hKBPnaPJag X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE1MDAzMiBTYWx0ZWRfX7fDfPyhBOSJU iR7amjyJmckyUrUwRe20L3rkj+I3sDPhy1ipz+v8wyQOG53PhiPf5cM7WPY1jHXip0c9eGWicB2 RyOEnOcSqJ19ourib02haMBg+MYsKsqhcOCssD2G++h4ohRDqo7i+0HoWTVHV8cSfas66/n3W2/ m+tckKMvQCGccbaufnpBcBjwPp44u3EGYvFdPpJ44DrE70di1K19Hd45br6tF6BMDSb4Y4gQ8+U UfYOU2xjqCWOuORN1btWyLVw8t+9p3smxnZs5JYQM7auLYv3OsC0BcIqs5dR6AlnYPQlWgOsbCC e/fF/2VOYs6MCvqKdf/7/7Cly3/Vj/LUj5afeqmoiwogNF6Ze948/lX9LxnukMSosCglVUDynkR HNx3Q2YIAhXR79A9V6K6qsS0Sxru2w== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-19_03,2025-11-18_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 malwarescore=0 clxscore=1015 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511150032 Content-Type: text/plain; charset="utf-8" This patch does - Declare and Define cpu_paravirt_mask. - Get/Set helpers for it. Values are set by arch code and consumed by the scheduler. Signed-off-by: Shrikanth Hegde --- include/linux/cpumask.h | 20 ++++++++++++++++++++ kernel/sched/core.c | 5 +++++ 2 files changed, 25 insertions(+) diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h index ff8f41ab7ce6..079903851341 100644 --- a/include/linux/cpumask.h +++ b/include/linux/cpumask.h @@ -1270,6 +1270,26 @@ 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_paravirt_mask; +#define cpu_paravirt_mask ((const struct cpumask *)&__cpu_paravirt_mask) +#define set_cpu_paravirt(cpu, paravirt) assign_cpu((cpu), &__cpu_paravirt_= mask, (paravirt)) + +static __always_inline bool cpu_paravirt(unsigned int cpu) +{ + return cpumask_test_cpu(cpu, cpu_paravirt_mask); +} +#else +static __always_inline bool cpu_paravirt(unsigned int cpu) +{ + return false; +} +#endif + #define cpu_is_offline(cpu) unlikely(!cpu_online(cpu)) =20 #if NR_CPUS <=3D BITS_PER_LONG diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 9f10cfbdc228..40db5e659994 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -10852,3 +10852,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_paravirt_mask __read_mostly; +EXPORT_SYMBOL(__cpu_paravirt_mask); +#endif --=20 2.47.3 From nobody Tue Dec 2 02:18:53 2025 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 ABCA93590B9 for ; Wed, 19 Nov 2025 12:45:41 +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=1763556343; cv=none; b=F5sN633vsmGJL9MaLcFurew1hraSbYSu6pBPOlX3pRH7HjuV5EIcoTyKTt41w+VpdutKdUhjsM26/M5E4+GpqkvSOgPv9CEfrA1Hvwbi8dXxy0TswP2WNJar4BW3DH4/jt6I3rfGyTHHSypMrDJMo7q0SKJub+k4YMGBdWKlW8A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763556343; c=relaxed/simple; bh=E4micB/J5xTSofGt9ek6OzCe0jqmSqCCio1+PRf/xhY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qh/oVPF6AUXOvj01815hdJuEni/LZdYsw6VJvGjDhdKBAyKn7ReewaU62zW5JjGcXjP29OmKlv8wj6+UGmwEnNmt4mgg5+Q0LwAgXnx+xW7wh21L2gxPZTo7f4HPz5+ehnxJNKCixzuaz5AA/eGtN1qxlfTwlpEnT7ktL6gfCTA= 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=Zm0w65hJ; 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="Zm0w65hJ" Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5AJ8KJAR030703; Wed, 19 Nov 2025 12:45:17 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=TdgnQQqw3dse0Fr7r tbUgEkaeZgAUCl9B4/S5gvCyY4=; b=Zm0w65hJyWnfp24pjU+L5sZA1cgYHTCnL YLxt893lt9VCQQ5dFvzU2Rq3r8/7uuDgbuKjsl8c2/WI95PoBPyVG+X8KTXwyCb/ YdttqdrZlWRtgvnsRv7PU8rcP9qqokQjcV4RhxnQaknUb8UMRSyOPCno3U8oVO5j TPAtvwHnt20iLgBFxSA+OkUbjS68wlwcEZdUBahoJOrsoBsqIawLM813Rk1bH0k6 bhhELc8kmkbr/NrpZrepCDWrPr7TZRKEo24vQTv0k5KOLbUNlEB1Jzy/Dkd01GUC Y3x/oEtqSAPt3tJx7UlVg5t8bBpRDTsNZ8KTRiN7bylhRihAlLb0Q== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aejjw8fbs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:17 +0000 (GMT) Received: from m0356517.ppops.net (m0356517.ppops.net [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5AJCjGr7015003; Wed, 19 Nov 2025 12:45:16 GMT 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 4aejjw8fbn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:16 +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 5AJCHdw2017319; Wed, 19 Nov 2025 12:45:15 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4af6j1rcaw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:15 +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 5AJCjBSB58327408 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Nov 2025 12:45:12 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D64AB20043; Wed, 19 Nov 2025 12:45:11 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CAEDA20040; Wed, 19 Nov 2025 12:45:07 +0000 (GMT) Received: from li-7bb28a4c-2dab-11b2-a85c-887b5c60d769.ibm.com.com (unknown [9.39.25.220]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 19 Nov 2025 12:45:07 +0000 (GMT) From: Shrikanth Hegde To: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: sshegde@linux.ibm.com, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, tglx@linutronix.de, yury.norov@gmail.com, maddy@linux.ibm.com, srikar@linux.ibm.com, gregkh@linuxfoundation.org, 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, christophe.leroy@csgroup.eu Subject: [PATCH 03/17] sched/core: Dont allow to use CPU marked as paravirt Date: Wed, 19 Nov 2025 18:14:35 +0530 Message-ID: <20251119124449.1149616-4-sshegde@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251119124449.1149616-1-sshegde@linux.ibm.com> References: <20251119124449.1149616-1-sshegde@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=BanVE7t2 c=1 sm=1 tr=0 ts=691dbbdd cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=uXBPIk7YWzXHA4pK:21 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=P8M16rivtmrVeddd8boA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE1MDAzMiBTYWx0ZWRfX+88NmJCzFF+z p2JgKeRuT2UBw1Xc1tb7C/0+13+AvFKoOXdKQJcMtGx8PykUFeiLR5/GEbuLNvZSgHLrs4cXjj4 NaUS7Vno6/S40RlHA1nCO7OsHWcWRUYL4uHw+/OyCSqpoIagkNgNQfIJpoEMISkSrPMKLnlJYa7 SZuFwv+ikdXm6dlH7jIhfYnExkSWlWasxjjgnCXgYFN4kFGrHxmR8yg3gO4DOko929tQi2VbhBb tpoF57Q3t2QVHqs4xn+EKHtzlCVKmOXQy9irjxc7XvC1r/ITFTAnIi/qADwUpDXl9Awrge2bgEY go8m/882ZsOzy7+bmFvfNZQvA+xlEYbhjfGAhW7WcAbP5d5h5RnBXMODOYmyXJ3/z713s1P+JdZ u4wjDfwEhEVoXViVrYUEN2R/P+05bg== X-Proofpoint-GUID: vw7_NsIAk2cZqNBvjGxQNDHy46UTcYUr X-Proofpoint-ORIG-GUID: qdSjYMpwCHZoj85jCh5fosZgVY_O6JZp X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-19_03,2025-11-18_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 spamscore=0 impostorscore=0 priorityscore=1501 clxscore=1015 phishscore=0 bulkscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511150032 Content-Type: text/plain; charset="utf-8" Don't allow a paravirt CPU to be used while looking for a CPU to use. Push task mechanism uses stopper thread which going to call select_fallback_rq and use this mechanism to avoid picking a paravirt CPU. Signed-off-by: Shrikanth Hegde --- kernel/sched/core.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 40db5e659994..90fc04d84b74 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2397,8 +2397,13 @@ static inline bool is_cpu_allowed(struct task_struct= *p, int cpu) 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); + if (!(p->flags & PF_KTHREAD)) { + /* A user thread shouldn't be allowed on a paravirt cpu */ + if (cpu_paravirt(cpu)) + return false; + else + return cpu_active(cpu); + } =20 /* KTHREAD_IS_PER_CPU is always allowed. */ if (kthread_is_per_cpu(p)) @@ -2408,6 +2413,10 @@ static inline bool is_cpu_allowed(struct task_struct= *p, int cpu) if (cpu_dying(cpu)) return false; =20 + /* Non percpu kthreads should stay away from paravirt cpu*/ + if (cpu_paravirt(cpu)) + return false; + /* But are allowed during online. */ return cpu_online(cpu); } --=20 2.47.3 From nobody Tue Dec 2 02:18:53 2025 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 92CDF35BDC9 for ; Wed, 19 Nov 2025 12:45:52 +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=1763556354; cv=none; b=amp2kGHc1tYTyVIpII4ETMdLVfU7oGV//u2xcJgQYMIm7/knsEUM+MS2MlRx267kts5xfFNux3RYOn9DtfrYgu2Pfs829kU6Bz8hwldrAsGmUqGO+J5AHHy12TiPxNXSuTEg0idBITCyKeT95yMncYRtgzZqVUJ0CaZZtt5UMwk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763556354; c=relaxed/simple; bh=hd/E9EdJJcowkNXkcSWdG6p8g+kOhU8T+3KumglHcL0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oUS8soVxbZSpvynnzp9xKb78ZzwG4wNa6dgnrGksot2GqMPiJYbS1Gr12Y3Foyvhm5UaOcEN3ZaGrU6CBAczxRpZGonzAm/DofFV8u8ce+YckrAIfEYy1tRtqSwcH/2AO/4iR2x/yj43bJ51nKTZrQtDlpR+ByGhQ/cXT4EnjyQ= 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=nRzUu16c; 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="nRzUu16c" Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5AJ8uEuP012148; Wed, 19 Nov 2025 12:45: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=HxE5Y/NhETIWfkiAb Vp/6cxgMGUkpgRZbFo/1XFKrpI=; b=nRzUu16cD5XQPUody+rscj6Rf+z2Bm/a7 q6GSTBTNgITsukgJ8h0Z4jbprRYvV7wKv41BG3FyoRAiZ03AW8/CrSa3q5IpO/g2 8OMQMdLBVcmhGMymZK8LHHy0UQWaa/8RlN+ln1YZ9QHyt65Dr5cwPq811d4bKm6N QwXm9YLyuhvyk76GM5kn5YHPMai+PsxzqI8+YYaScGaKZmUIUhuP141lW9NYQZpZ l/EHIAEVCUOkAv7vGhZwWuaFM8IM//iRMIPJW2+FsjjEDslTGhChW4GiVQA+Mz0m V0AIi3Po0DEUOMHejkh2qjhmuAB70sXSg8FXZqJsKKLon6kC7UEkA== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aejk1gf57-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:21 +0000 (GMT) Received: from m0360083.ppops.net (m0360083.ppops.net [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5AJCfK6t007731; Wed, 19 Nov 2025 12:45:21 GMT 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 4aejk1gf53-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:21 +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 5AJBjYrV022370; Wed, 19 Nov 2025 12:45:19 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4af4un0n20-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:19 +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 5AJCjFbn14811644 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Nov 2025 12:45:16 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id DED7320043; Wed, 19 Nov 2025 12:45:15 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 29FF820040; Wed, 19 Nov 2025 12:45:12 +0000 (GMT) Received: from li-7bb28a4c-2dab-11b2-a85c-887b5c60d769.ibm.com.com (unknown [9.39.25.220]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 19 Nov 2025 12:45:11 +0000 (GMT) From: Shrikanth Hegde To: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: sshegde@linux.ibm.com, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, tglx@linutronix.de, yury.norov@gmail.com, maddy@linux.ibm.com, srikar@linux.ibm.com, gregkh@linuxfoundation.org, 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, christophe.leroy@csgroup.eu Subject: [PATCH 04/17] sched/debug: Remove unused schedstats Date: Wed, 19 Nov 2025 18:14:36 +0530 Message-ID: <20251119124449.1149616-5-sshegde@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251119124449.1149616-1-sshegde@linux.ibm.com> References: <20251119124449.1149616-1-sshegde@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=C/nkCAP+ c=1 sm=1 tr=0 ts=691dbbe1 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=NlpiSR-wqh4DhfsiYFIA:9 X-Proofpoint-GUID: GS15w3IsHKlPhS80nLJkMsiaDxnPHcCx X-Proofpoint-ORIG-GUID: U4eK9f_QfEqz6Ymk2Egk1IWUhUWuDWqI X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE1MDAzMiBTYWx0ZWRfX9zALhofRGVy2 aQN+SCevlFiT8233I8w9dXKXTFTJhxvl0b11/jkuXwbPzD1AKyrXzck9lVIOZrAIpBMPXW+T3fp 9zuRDfx+8TcAx9FHx0z9X37tCeHeTE1rRDVzusgIsGESSOeoxu9KbxyVvTVL9RONAOhFSBBP1Ej YqthjfGnkhNawbq/+cMtvI44r/MDRAXR6HN/kxsz1vV7GSWcPfssMcCuvRP8f+vCctEtc+fz9bP S7CmDYA4yB7IXjVg7G8HxpGp9BRiFMOkYpX+rot5WWyEpw7UQiR6tyzFnV5IbAKcb5z6j/kV9Eg wnVDOCCzTuxnNvebpmrKv9cGqsKu2y6uDLKmcXgStiHIto6UZO/+sMaFsbiQRmHKZMFVK+amLr3 gH0hTa9zwWaJ7ppcabmfLnlLeGkEQg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-19_03,2025-11-18_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 spamscore=0 impostorscore=0 bulkscore=0 malwarescore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511150032 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. This will help to add couple more stats in the next patch without bloating the size. 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 bb436ee1942d..f802bfd7120f 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -545,7 +545,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; @@ -558,8 +557,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 41caa22e0680..2cb3ffc653df 100644 --- a/kernel/sched/debug.c +++ b/kernel/sched/debug.c @@ -1182,7 +1182,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); @@ -1194,8 +1193,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 Tue Dec 2 02:18:53 2025 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 27AAD3570C6 for ; Wed, 19 Nov 2025 12:45:52 +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=1763556355; cv=none; b=uaOQ7+FDFlB0BKpxjlhySRhi2IV1kHMAwNz3C22b1xFCfDnHVg2El5QWKikdgT30/f7hoJIMd3nPP3RnwEpZKWcm1yn35ZTzh+R+OOpPgRJAnfabeOvWsIKSXz5vTdvQajxrUSA5ut2eYXoTNGmUoHcegOuzsoa30rfr4DYZQp8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763556355; c=relaxed/simple; bh=g3zkaSY0lUwOBTqxJMScmXJZlMxWP78MJbH58L3nWcU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tIKu3MkpjgXJTPiUpDo5nnJPYMO/pok9a8ZB4FR28XRB7h8zE0ABwy28fPmkPzBD8+Qk/56tQQJ01J6/6sYHcHfTJdEMVJ+BiCt62g+3tyAsfonoZCQRRvFIbWyeSE+iFxDt4H0yuagADWQq/eLk2RwgY8sH7bQJ/f8v0KBPMyI= 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=R3OdR8Os; 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="R3OdR8Os" Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5AJ7b0Pg015871; Wed, 19 Nov 2025 12:45: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=e9PKSvTNtFv/4W4IX WXMrf1DJR2Kcd3CXGr8S+uJ/h0=; b=R3OdR8OsUUqiD2YfNpXBjCXTnmzt6nNh1 n3ewi+fUqf+fMRTyYD7n/w3Xkbi/wAtrx4wZuozKtl07427thphcVAeACDl9FnaJ z6IByp6qY0ASr5WzhMrvnySzfm344vhvXR8k7nngb/7IoMGcvmXJCo3uuiRTPwv4 LojOytpRuz1I4WnldoFil37QeKo+czPbn9fX7bbwB9hQY0sPi0lcCvevG8y1YlYk qCIYZM2I8TZ6lpU5ythYmb+MJ33h1VdcjIbLFtmcJ00epB4S+8actxUjiIIfogUu TmNfLCo1DwQWxLwXn+ycvbZtPgBkpdKi8Bf9cjcnmAs/B2VUizDOA== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aejk1gf5j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:26 +0000 (GMT) Received: from m0360083.ppops.net (m0360083.ppops.net [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5AJCjPQW016888; Wed, 19 Nov 2025 12:45:25 GMT 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 4aejk1gf5c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:25 +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 5AJBM8Ga022042; Wed, 19 Nov 2025 12:45:24 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4af4un0n28-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:24 +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 5AJCjK1r28442956 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Nov 2025 12:45:20 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5BF6B20043; Wed, 19 Nov 2025 12:45:20 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3F44C20040; Wed, 19 Nov 2025 12:45:16 +0000 (GMT) Received: from li-7bb28a4c-2dab-11b2-a85c-887b5c60d769.ibm.com.com (unknown [9.39.25.220]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 19 Nov 2025 12:45:16 +0000 (GMT) From: Shrikanth Hegde To: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: sshegde@linux.ibm.com, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, tglx@linutronix.de, yury.norov@gmail.com, maddy@linux.ibm.com, srikar@linux.ibm.com, gregkh@linuxfoundation.org, 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, christophe.leroy@csgroup.eu Subject: [PATCH 05/17] sched/fair: Add paravirt movements for proc sched file Date: Wed, 19 Nov 2025 18:14:37 +0530 Message-ID: <20251119124449.1149616-6-sshegde@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251119124449.1149616-1-sshegde@linux.ibm.com> References: <20251119124449.1149616-1-sshegde@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=C/nkCAP+ c=1 sm=1 tr=0 ts=691dbbe6 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=FUalwe2TsurscZgBbnMA:9 X-Proofpoint-GUID: gaWUoPw4S5KTptjxqjoaS2lWiB8Tx4uz X-Proofpoint-ORIG-GUID: N_DZVbVWQSsFWy0hr8Cgb8L1Uvo87vgg X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE1MDAzMiBTYWx0ZWRfX7Bwj74U1hBc9 TGDdDs6Dattv9XxEeKJOeeTRit/p/04ccUw7OGWtmBTzxz7q76iGT1bAhyMQgDnyzQdlJ6MfrSz i6+695XdTmDafUO9rcIHPEtwu1nKo/BJ1lncHsSkn+795EOQuvD0uS4STKhi4DpITFzn/Ibkk7a cQV6hyc8Ok5rgUadL0EBX0JoH2Dm3VVTFTExlklf10dMWUClWRnR3AytjanIqDumUg1Juk5mWku 8dDZBqVCYxFhYLOyxTLIyhLRMCTwdzO9Wdnk05Br3M0Gcl1e5jScjD+Xg6W7rzIJkembayYk43g LoFRhY6UJRWY6P2ywov1OZVlCYKOxAzwrt6aVJJPMViIfcGAJ570rbgdH7evgp5xyjHj4cHwp65 swvg3LKW5OAJI147CPWHUojbT5DEiA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-19_03,2025-11-18_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 spamscore=0 impostorscore=0 bulkscore=0 malwarescore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511150032 Content-Type: text/plain; charset="utf-8" Add couple of new stats. - nr_migrations_paravirt: number of migrations due to current task being moved out of paravirt CPU. - nr_wakeups_paravirt - number of wakeups where previous CPU was marked as paravirt and hence task is being woken up on current CPU. Signed-off-by: Shrikanth Hegde --- include/linux/sched.h | 2 ++ kernel/sched/debug.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/include/linux/sched.h b/include/linux/sched.h index f802bfd7120f..3628edd1468b 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -549,6 +549,7 @@ struct sched_statistics { u64 nr_failed_migrations_running; u64 nr_failed_migrations_hot; u64 nr_forced_migrations; + u64 nr_migrations_paravirt; =20 u64 nr_wakeups; u64 nr_wakeups_sync; @@ -557,6 +558,7 @@ struct sched_statistics { u64 nr_wakeups_remote; u64 nr_wakeups_affine; u64 nr_wakeups_affine_attempts; + u64 nr_wakeups_paravirt; =20 #ifdef CONFIG_SCHED_CORE u64 core_forceidle_sum; diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c index 2cb3ffc653df..0e7d08514148 100644 --- a/kernel/sched/debug.c +++ b/kernel/sched/debug.c @@ -1186,6 +1186,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_paravirt); P_SCHEDSTAT(nr_wakeups); P_SCHEDSTAT(nr_wakeups_sync); P_SCHEDSTAT(nr_wakeups_migrate); @@ -1193,6 +1194,7 @@ 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_paravirt); =20 avg_atom =3D p->se.sum_exec_runtime; if (nr_switches) --=20 2.47.3 From nobody Tue Dec 2 02:18:53 2025 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 C9F8435BDB5 for ; Wed, 19 Nov 2025 12:45: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=1763556351; cv=none; b=JPkREGdHe1N+ruUlbOGJy//3ecdR9Vui/4WdmqD89SiDOQyLlyyieBpql1lLHX1Jh8S7l7QGiZc3a6laRPeEVgePHqLNy9E1obpuw5KuTBUdIeSGzQwecoxQKZ7O21cDHJvZKsXA2xA9n76J586XcijxRfIdLESgSD+Lv3e8WQI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763556351; c=relaxed/simple; bh=5pg8FXk9AUO27t5++d0kJpKvZPSgzngRzpsBOTqx4bI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=F97iG9msECql1EsaPemhuhzn34hGiAKAp4qKZXPSXQGfZQ5T4Dv+FuIgmJFg0gNN534Sz/VZGsPe/AA4kYTlBamxnAo00LycLNDMbRsOz1WyE8QpvyZuRGsEWYaR3qCj+sMaqUstagkohHyEP1I9z32f/4EtqlbmVOv3p+rYaA8= 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=S7i/hO6e; 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="S7i/hO6e" Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5AJ7HIxu019349; Wed, 19 Nov 2025 12:45:30 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=f8yijGd0trpyn0GQZ dp9BNJ2l8xqlvD2qF4ywKOsS40=; b=S7i/hO6eJtGFtRilYEFG7LlCTzdMZryGQ 5TzemsU8f1A5ZXaRWbt38ph4Vb3mCUgVc4KB5iCpSR/MwjopVFLFRLCmDyLaY8oY 55WUt7ZKk6Dxy7VHwBn1oAMwtermaRIHSIthBLRZGB8IPxY1lAYpMrie0KOyyyIk hO9WVkKW16DTAc5LlFS1gKgsvU8wMGWIWt4oHwyFy6iAie+4dCMbZt1mSke7mlqh SP4i1JYJviAxMfPak0IGPmdad7hdtO8tGCTCb9c23+ep6XkY5LkIWth36kOcc7vn KeVySuRMI+B6VHnaXouIOoomrJgSOanWkedVC13vj5FYs1BRrnKvQ== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aejmsqntj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:30 +0000 (GMT) Received: from m0360072.ppops.net (m0360072.ppops.net [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5AJCdmaZ018424; Wed, 19 Nov 2025 12:45:29 GMT 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 4aejmsqnte-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:29 +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 5AJCHdw8017319; Wed, 19 Nov 2025 12:45:28 GMT Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4af6j1rcc2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:28 +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 5AJCjOmu52953530 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Nov 2025 12:45:25 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D780E20043; Wed, 19 Nov 2025 12:45:24 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B23E420040; Wed, 19 Nov 2025 12:45:20 +0000 (GMT) Received: from li-7bb28a4c-2dab-11b2-a85c-887b5c60d769.ibm.com.com (unknown [9.39.25.220]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 19 Nov 2025 12:45:20 +0000 (GMT) From: Shrikanth Hegde To: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: sshegde@linux.ibm.com, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, tglx@linutronix.de, yury.norov@gmail.com, maddy@linux.ibm.com, srikar@linux.ibm.com, gregkh@linuxfoundation.org, 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, christophe.leroy@csgroup.eu Subject: [PATCH 06/17] sched/fair: Pass current cpu in select_idle_sibling Date: Wed, 19 Nov 2025 18:14:38 +0530 Message-ID: <20251119124449.1149616-7-sshegde@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251119124449.1149616-1-sshegde@linux.ibm.com> References: <20251119124449.1149616-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-ORIG-GUID: HAkR2ikVxu5ppvG9Ed_Za4Od8QKMpVeP X-Authority-Analysis: v=2.4 cv=Rv3I7SmK c=1 sm=1 tr=0 ts=691dbbea cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=LR1EqIGjcEKtFJDgD-kA:9 X-Proofpoint-GUID: pARDVr-xXswqWRaIiOxPaFZZUMaQYkp4 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE1MDAzMiBTYWx0ZWRfX0Qm17IMWwbLJ v8hZM/dV4NL8xBKpRBtWnHBFe6Zn3ob4/BKPmlEe0EuI6FgDFdX2xAAeroIBBdeJ29mfAMxv0AA sVCHtHVeSs1oC8n1Qim0kYNwLy1AQR6V0F3Ern8BSFv+Zjy0sMDtrd2HWH4HDnq55QV5nXX8jYt M4UR7IY/d1k3Pf0bEhTY+/ExQTlKZXRYeVbNQwr9fgRItEAoRXBMCht+PVFtbZAyrMOBPatcGaI RcPMH3rdQHiXKZjeI2AF0CgbA5cdNsQdYB9R3TQHqf0fiRQo1MFhmJ+lFcK+JZk1BvBn0YehOtu 19oxSJDrpvb9HDtikueMLajv2+Lj3MFfk0zh3POZa9xWlQwcGDDmUt8qvSkDREfeV0INTPgWL/4 N69X83IJ/LvRrWrvZyu+GfgivX37Hg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-19_03,2025-11-18_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 clxscore=1015 phishscore=0 priorityscore=1501 spamscore=0 lowpriorityscore=0 impostorscore=0 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511150032 Content-Type: text/plain; charset="utf-8" Pattern in select_task_rq_fair: cpu =3D smp_processor_id(); new_cpu =3D prev_cpu; //May change new_cpu due to wake_affine, otherwise it remains prev_cpu new_cpu =3D select_idle_sibling(p, prev_cpu, new_cpu); Due to this often prev_cpu =3D=3D new_cpu. If the task was sleeping when the prev_cpu was marked as paravirt, it would be beneficial to choose curre= nt cpu instead. If the current cpu is paravirt too, then wakeup will happen th= ere and at next tick task will move out. So pass current CPU as well in the select_idle_sibling. Signed-off-by: Shrikanth Hegde --- kernel/sched/fair.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 1855975b8248..015e00b370c9 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -1048,7 +1048,7 @@ static bool update_deadline(struct cfs_rq *cfs_rq, st= ruct sched_entity *se) =20 #include "pelt.h" =20 -static int select_idle_sibling(struct task_struct *p, int prev_cpu, int cp= u); +static int select_idle_sibling(struct task_struct *p, int this_cpu, int pr= ev, int target); static unsigned long task_h_load(struct task_struct *p); static unsigned long capacity_of(int cpu); =20 @@ -7770,7 +7770,7 @@ static inline bool asym_fits_cpu(unsigned long util, /* * Try and locate an idle core/thread in the LLC cache domain. */ -static int select_idle_sibling(struct task_struct *p, int prev, int target) +static int select_idle_sibling(struct task_struct *p, int this_cpu, int pr= ev, int target) { bool has_idle_core =3D false; struct sched_domain *sd; @@ -8578,7 +8578,7 @@ select_task_rq_fair(struct task_struct *p, int prev_c= pu, int wake_flags) new_cpu =3D sched_balance_find_dst_cpu(sd, p, cpu, prev_cpu, sd_flag); } else if (wake_flags & WF_TTWU) { /* XXX always ? */ /* Fast path */ - new_cpu =3D select_idle_sibling(p, prev_cpu, new_cpu); + new_cpu =3D select_idle_sibling(p, cpu, prev_cpu, new_cpu); } rcu_read_unlock(); =20 --=20 2.47.3 From nobody Tue Dec 2 02:18:53 2025 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 191DC35C18B for ; Wed, 19 Nov 2025 12:45: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=1763556357; cv=none; b=WIcJJ5LXPIS5eHEKAb8d81e0jCWoFvwtePph/UM/tTVqaXQgd01kBvKuvvGz7ou+H0yVXF71aDzabvDehDNZpkoOIIQm2VCFtoQ6YbI99lEkWH5GVj/yyb7GiJE9qjahMs+c6t56OAGX2HIcZs6e7GnEcW5nErG6HWxxvYiK8f0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763556357; c=relaxed/simple; bh=SS2Vd7EFiHgpHjr34NwbQQQIwGHsFIymNFNAfiPrOeQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aSERH5FOuGz74ySQEqrUOm5HDRK4OhtsN3JiLNnGvCpRAXQsDtiQzAPZPhnv6KT4S+sSOdOMCGEq1CLGtDLFhRygt9veOTRriHsy4h/VxwDMc0wJFhSGZDTAclooOdbcK1pGKXnEm8kHdRttFhhETkff+025X2ue/ffu2zPZwX8= 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=aTvocoys; 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="aTvocoys" Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5AJ6MKO4022349; Wed, 19 Nov 2025 12:45:35 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=q6alubEg5FFRdzA8k nogoUcxkGqjuD5s+4s7T3Fi5SI=; b=aTvocoyshYnOqcVsc66DzfhmzeDO4jG64 Lp2Min0JC5jmxpgwGVFQzlzhXt7Tb+iyrxVx13RmZBj36PYRgGH8fcZdw8QekiBQ C5glrfE+7Iljf0mmGVLQWR5UvB+C+yCrw+iPVqv4FagLsxwEZaxl941FS4/7KUK7 poOmll6uYj3PZwHD+0wbvem10hoy98tEcE+zY/cQYgrUkQmuBCueMYJI1kcxDqvB jMlBrW17V9FATfcvlZZzhv4jpF4+BObhlgvu7Qcb8Zz25NJyPDjCV8KdsFrpIFhB V+CZrqDvKvOwB5/ELhIaQ/ZK9TQCkJygfZHJ7PIlDolD+pAhPwFSw== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aejgwymb5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:34 +0000 (GMT) Received: from m0356516.ppops.net (m0356516.ppops.net [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5AJCeO9v021061; Wed, 19 Nov 2025 12:45:34 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aejgwymb1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:34 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5AJAwIHI030795; Wed, 19 Nov 2025 12:45:33 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4af47y0rnq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:33 +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 5AJCjTSW25494154 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Nov 2025 12:45:29 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5EA5420043; Wed, 19 Nov 2025 12:45:29 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2E28120040; Wed, 19 Nov 2025 12:45:25 +0000 (GMT) Received: from li-7bb28a4c-2dab-11b2-a85c-887b5c60d769.ibm.com.com (unknown [9.39.25.220]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 19 Nov 2025 12:45:24 +0000 (GMT) From: Shrikanth Hegde To: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: sshegde@linux.ibm.com, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, tglx@linutronix.de, yury.norov@gmail.com, maddy@linux.ibm.com, srikar@linux.ibm.com, gregkh@linuxfoundation.org, 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, christophe.leroy@csgroup.eu Subject: [PATCH 07/17] sched/fair: Don't consider paravirt CPUs for wakeup and load balance Date: Wed, 19 Nov 2025 18:14:39 +0530 Message-ID: <20251119124449.1149616-8-sshegde@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251119124449.1149616-1-sshegde@linux.ibm.com> References: <20251119124449.1149616-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-GUID: fZSzzI_BnME7a9KEmWYLlcAmJ9tKBc-G X-Authority-Analysis: v=2.4 cv=YqwChoYX c=1 sm=1 tr=0 ts=691dbbee cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=zGSZXhnX_8tdEcBSxkwA:9 X-Proofpoint-ORIG-GUID: P9go1sgTFOV9d9mFhD6E5KAFZTLYQFZP X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE1MDAzMiBTYWx0ZWRfXze4pwxp4ycs3 8s7NHNcqDvPPV3lQnjqILTiFE5xdb6EfpMyeN3iyl6MG6dTJBrnXAWqeBbYnGsJX09FgvPwKSeU oNc7X4aw6ls4gVC2+97Hn8otdcGfdAjewMGBnBNxhMSXVPLjkXkLWGW70PRYb8fLkEGOhK5qIGM OGkSYGTq+U+yNR69+JVjvxus7JyTpzsFPnM/djNNiK4Yw/PM+MWspePsC9qqa/Rop2U1A+kXm7l 0Xe3ARAoy7DiY/GfHjT2FasY8+L8u8Q0J/oPFSoUZ0s5bjgP9wWCJ2pDaV5vm4rdl0J8vW2T3CR +Xq0coKm8GGQFz++0hfQH/Rf5anUf0QYc5mpCuWJ2T637N0pyyAhbwPz5znMooRaCpWVuSSwb77 zn+DRQSxXK1AegcKRKPbsz4RqUWapA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-19_03,2025-11-18_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 malwarescore=0 clxscore=1015 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511150032 Content-Type: text/plain; charset="utf-8" For CFS load balancer, - mask out paravirt CPUs from list of cpus to balance. - This helps to restrict/expand the workload depending on the mask. At wakeup, - If prev_cpu is paravirt, see if recent_used_cpu can be chosen. If not choose current cpu. - For EAS system, put a warning if wake up happens on paravirt CPU. At this point, not expecting any EAS system will have a overcommit of CPUs. Signed-off-by: Shrikanth Hegde --- kernel/sched/fair.c | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 015e00b370c9..760813802cb9 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -7358,6 +7358,9 @@ static int wake_affine(struct sched_domain *sd, struc= t task_struct *p, { int target =3D nr_cpumask_bits; =20 + if (cpu_paravirt(prev_cpu)) + return this_cpu; + if (sched_feat(WA_IDLE)) target =3D wake_affine_idle(this_cpu, prev_cpu, sync); =20 @@ -7441,6 +7444,11 @@ static inline int sched_balance_find_dst_cpu(struct = sched_domain *sd, struct tas { int new_cpu =3D cpu; =20 + if (cpu_paravirt(prev_cpu)) { + schedstat_inc(p->stats.nr_wakeups_paravirt); + return cpu; + } + if (!cpumask_intersects(sched_domain_span(sd), p->cpus_ptr)) return prev_cpu; =20 @@ -7777,10 +7785,25 @@ static int select_idle_sibling(struct task_struct *= p, int this_cpu, int prev, in unsigned long task_util, util_min, util_max; int i, recent_used_cpu, prev_aff =3D -1; =20 + /* Likely prev,target belong to same LLC, it is better at wakeup + * to move away from them. at best return recent_used_cpu if it + * is usable + */ + if (cpu_paravirt(prev) || cpu_paravirt(target)) { + schedstat_inc(p->stats.nr_wakeups_paravirt); + + recent_used_cpu =3D p->recent_used_cpu; + if (!cpu_paravirt(recent_used_cpu)) + return recent_used_cpu; + else + return this_cpu; + } + /* * On asymmetric system, update task utilization because we will check * that the task fits with CPU's capacity. */ + if (sched_asym_cpucap_active()) { sync_entity_load_avg(&p->se); task_util =3D task_util_est(p); @@ -8539,8 +8562,14 @@ select_task_rq_fair(struct task_struct *p, int prev_= cpu, int wake_flags) =20 if (!is_rd_overutilized(this_rq()->rd)) { new_cpu =3D find_energy_efficient_cpu(p, prev_cpu); - if (new_cpu >=3D 0) + + /* System supporting Energy model isn't expected + * have a CPU marked as paravirt + */ + if (new_cpu >=3D 0) { + WARN_ON_ONCE(cpu_paravirt(new_cpu)); return new_cpu; + } new_cpu =3D prev_cpu; } =20 @@ -11832,6 +11861,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 + /* Don't spread load to paravirt CPUs */ + cpumask_andnot(cpus, cpus, cpu_paravirt_mask); +#endif + schedstat_inc(sd->lb_count[idle]); =20 redo: --=20 2.47.3 From nobody Tue Dec 2 02:18:53 2025 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 337D235B157 for ; Wed, 19 Nov 2025 12:46:03 +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=1763556364; cv=none; b=kLlLur8xhQPKW74YdNgK5dz2I3zUQjNG4QdOz7dOp2OnUMGjgdjGqZgF1+DgrVI7GozcWcdqOGGlykADYBNlGyDr4iwpj0NWVQLiFpI2nXq8ScmhTiSVLpS9CwxTJR5rrSEttMkzzsHUp9IeJC75e/HI/8NW3stgTE9qlSO1SgQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763556364; c=relaxed/simple; bh=ZXFB1xKIhB+9dHdX/jYmhOkcwfZBmgnnUS4keAZm4Gw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IsrX3PO14MBHNME72NAe/9xwm1csB0pnGTjJCLPVUakurekp5w13WXLMkhlHWIJMzjznbipL60fl4dPt6IioHpICILXG8dCDsYSSP0k0yn/eVnUEBvK1QBKyZ10tLx4OiIIaT1A/4Hc9N9Wg4XfLpOioZkJIYctvWMQOo4KaUJ4= 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=SgxI7BLk; 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="SgxI7BLk" Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5AJ97F3r020218; Wed, 19 Nov 2025 12:45: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=lB+cbVN4Fmg5YKNDf NdeBco/d5wz2KyzZ0je1NFddos=; b=SgxI7BLkkqfnxHFgJV/qTY+HskXCzJmkl PjgefPAOF+J/J96dhlsNnIY9NeJisjGp4s5FGZVzKIuV8+FXuhnTkUDh4caMT+Wk gAvFX89M4meCN1rkmnRamr6TEr5O5juwo8TI374TpSDPvqdR9Esv7pC5ozDy+QbF hSZNB21AiMsD3rGeb7sv8aRn8fc+0iMk2K0Id4NeXVbAqcUe1GCkZd+jFaunlN0y 6DJ+AfKAjR9aBfC2vDckzFl2uWl2uJE6f03nbu8BLQ2KgqtfdvL19oiw8qsDI0+j w0aNSSY5dDkkgbSs30gSeUEm+/IX0Oyni2lbLacg0HuP8WTLhpwzg== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aejka0d0u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:40 +0000 (GMT) Received: from m0353729.ppops.net (m0353729.ppops.net [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5AJCjdBU023064; Wed, 19 Nov 2025 12:45:39 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aejka0d0n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:39 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5AJBUmS8030805; Wed, 19 Nov 2025 12:45:38 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4af47y0rp7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:38 +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 5AJCjYXf43057628 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Nov 2025 12:45:34 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 17D9720043; Wed, 19 Nov 2025 12:45:34 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C1DD820040; Wed, 19 Nov 2025 12:45:29 +0000 (GMT) Received: from li-7bb28a4c-2dab-11b2-a85c-887b5c60d769.ibm.com.com (unknown [9.39.25.220]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 19 Nov 2025 12:45:29 +0000 (GMT) From: Shrikanth Hegde To: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: sshegde@linux.ibm.com, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, tglx@linutronix.de, yury.norov@gmail.com, maddy@linux.ibm.com, srikar@linux.ibm.com, gregkh@linuxfoundation.org, 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, christophe.leroy@csgroup.eu Subject: [PATCH 08/17] sched/rt: Don't select paravirt CPU for wakeup and push/pull rt task Date: Wed, 19 Nov 2025 18:14:40 +0530 Message-ID: <20251119124449.1149616-9-sshegde@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251119124449.1149616-1-sshegde@linux.ibm.com> References: <20251119124449.1149616-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-GUID: CjgZiGh28N3kLz-6H1TCKptKIClCh7le X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE1MDAzMiBTYWx0ZWRfX2StIe5jMcjrU 8JkCEOWL2uH8yPhf2yn4ECYNmiZjfX2oO9GF7KN9I0Fb3qCQAVRAl+6thihvMPPOBrO5k7fdQNx iVNJPfvXGDcVkcM+Cq0l7NsLcmNtC22qW2j/q0KQnDHK9ndbWjqqKadbVgyGdwWdHLpvQ6Fp5F9 SUE0wNXMAsSHGQ8UQ3XQrjilnFVYjoxn4nVvjpAhTEzN85dqzy4zrCqIfW7LlrWnyu365A0LlMe oR4YCMoNwwsRFAiRfe6DM7hp3XI3y+k3yNksuUN+KbNR5BKt+l0kGSV1b6ImdW2FbY/Gv26eYV5 SE/MjKbi9IE+Esg6TOepj87QjjV+j8LV0NrnOw7N8wFsc+a0YpGYPnowUIH7CuqcZ+GSMBvG42N /9qGg1aQ9aGN/bs8hWIKx6z9u9M2yw== X-Proofpoint-ORIG-GUID: Jb856YEj9Bv6Xl77X6GJsQ1ASlrjgxNV X-Authority-Analysis: v=2.4 cv=XtL3+FF9 c=1 sm=1 tr=0 ts=691dbbf4 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=2Scwftyo7L3m9cOp47sA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-19_03,2025-11-18_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 bulkscore=0 priorityscore=1501 impostorscore=0 adultscore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511150032 Content-Type: text/plain; charset="utf-8" For RT class, - During wakeup don't select a paravirt CPU. - Don't pull a task towards a paravirt CPU. - Don't push a task to a paravirt CPU. Signed-off-by: Shrikanth Hegde --- kernel/sched/rt.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index f1867fe8e5c5..0b78c74dbbe3 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1552,6 +1552,9 @@ select_task_rq_rt(struct task_struct *p, int cpu, int= flags) if (!test && target !=3D -1 && !rt_task_fits_capacity(p, target)) goto out_unlock; =20 + /* Avoid moving to a paravirt CPU */ + if (cpu_paravirt(target)) + goto out_unlock; /* * Don't bother moving it if the destination CPU is * not running a lower priority task. @@ -1876,7 +1879,7 @@ static struct rq *find_lock_lowest_rq(struct task_str= uct *task, struct rq *rq) for (tries =3D 0; tries < RT_MAX_TRIES; tries++) { cpu =3D find_lowest_rq(task); =20 - if ((cpu =3D=3D -1) || (cpu =3D=3D rq->cpu)) + if ((cpu =3D=3D -1) || (cpu =3D=3D rq->cpu) || cpu_paravirt(cpu)) break; =20 lowest_rq =3D cpu_rq(cpu); @@ -1974,7 +1977,7 @@ static int push_rt_task(struct rq *rq, bool pull) return 0; =20 cpu =3D find_lowest_rq(rq->curr); - if (cpu =3D=3D -1 || cpu =3D=3D rq->cpu) + if (cpu =3D=3D -1 || cpu =3D=3D rq->cpu || cpu_paravirt(cpu)) return 0; =20 /* @@ -2237,6 +2240,10 @@ static void pull_rt_task(struct rq *this_rq) if (likely(!rt_overload_count)) return; =20 + /* There is no point in pulling the task towards a paravirt cpu */ + if (cpu_paravirt(this_rq->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 Tue Dec 2 02:18:53 2025 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 9441E35A12C for ; Wed, 19 Nov 2025 12:46:03 +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=1763556366; cv=none; b=ONyhnqDkaEyXo03HjdsppAg5+/Lm3v54isQk4awh1VIxxCBTjB/tY2YwPdPSeg4tRQMXqwHwbAuF3LnAe0PJsuX4IEOnIe5kphllUi8fIGwwRKZ366ry0Ra8KdrqSoBfhg406F6Quym7o5RVf00GcZuwSp9ChISIlwIihLFYsoQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763556366; c=relaxed/simple; bh=8IR6RB0tk5Rrxcw+l7bnSItjxtOeXoa+CBzf0EocUbc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rHLZxHXOKUV325gknarKQ+bZghraAgkXWV3SQ1LYvVcVqwa7de1TpdvhrzSlETuH1VlrcPRAWBx1vKTm4+r+PguSEvamJMPlrTgpYziB7qzqcbY1edFUW0Ys83F2UmmUu7sVejGj2V6fe0qNzplJeLQmxNJAo1ZPac9hXhu97mI= 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=Da/4q8np; 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="Da/4q8np" Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5AJ8xfGc025626; Wed, 19 Nov 2025 12:45:44 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=mPIndhoKntrrXXiCD nHt7L0fUnUzEzKwQIeLPuD1cKw=; b=Da/4q8npz1cxwKwfKJwfFlaH2k+HC4Da1 M8V8UGSv5BTOJkhxqrUMuAYMHVgS7mihz2cild4Y/xk5zA0n5T+p3r1I8G4RAAWE 43TRB0OKhAMqPBgy9DrqbY1kg/ZSRtVDQhFOnDp4VpGL7B5U+dTlI9J5mBkTc2rS zbvaMqpvkfBk8YPAL3eDORbYS6I8Y/z1hX25hKPnAcZlnsWG5p238zdNhY06xNoO Eb4CO8a1Igq2v30sumuHNuJ1IfLU/NVDAQVrhwDvLl5RyRMbQqXbY0cu2W+B/Yfc ot3Q7aErctUNp8YBdeO7uUZxS7/30Q4j/sMnM+/72v10GjrHRMnrw== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aejgwymbt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:43 +0000 (GMT) Received: from m0356516.ppops.net (m0356516.ppops.net [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5AJCeO9x021061; Wed, 19 Nov 2025 12:45:43 GMT 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 4aejgwymbn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:43 +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 5AJCgYZc017335; Wed, 19 Nov 2025 12:45:42 GMT Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4af6j1rcdm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:42 +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 5AJCjcBu53608830 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Nov 2025 12:45:38 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8DC5F2004B; Wed, 19 Nov 2025 12:45:38 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7B51D20040; Wed, 19 Nov 2025 12:45:34 +0000 (GMT) Received: from li-7bb28a4c-2dab-11b2-a85c-887b5c60d769.ibm.com.com (unknown [9.39.25.220]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 19 Nov 2025 12:45:34 +0000 (GMT) From: Shrikanth Hegde To: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: sshegde@linux.ibm.com, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, tglx@linutronix.de, yury.norov@gmail.com, maddy@linux.ibm.com, srikar@linux.ibm.com, gregkh@linuxfoundation.org, 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, christophe.leroy@csgroup.eu Subject: [PATCH 09/17] sched/core: Add support for nohz_full CPUs Date: Wed, 19 Nov 2025 18:14:41 +0530 Message-ID: <20251119124449.1149616-10-sshegde@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251119124449.1149616-1-sshegde@linux.ibm.com> References: <20251119124449.1149616-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-GUID: gEV9WUOGYNoPn8RAgcsHxvienCJu6HMn X-Authority-Analysis: v=2.4 cv=YqwChoYX c=1 sm=1 tr=0 ts=691dbbf7 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=DM4i4QW9asp9I1uLgD8A:9 X-Proofpoint-ORIG-GUID: CSzAXauVsHcLvQOjvxnXp_n6NZ7uUj5Q X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE1MDAzMiBTYWx0ZWRfX521ha1Tv2Lfg +yEUSRqod5e7az0B6hHeGgMiLj5lRGJl/cwqY5VTvbanvheKHkCrDueIJmCW7PbmzKMdeIWivb7 gnlO29h+zSg5i5nkuJdvBhLycVpBijABWEO9WU7TesT/m7kXHdrT/EsD1fazrrGxVN3SrDtX8Cv RPAiweuTl5l/B2lf3+NJLnkqQFyDcR4ksgd8iRnLO6JoSIW7mjC6687cc9pmjkb1vTGoJPOsj5u 29Myz/UKlKmCf5d2YH/nMFd78EGAMAjjRLIq3rlZO54z4e7AIDn/RrClqU+OAXTCwWd0Ae+N2Gh DHCSLT1EZihA0x0HmjaVQWl71cbwNo78GiIAQO4WC2MPqeyGcc6n0K4a/yg4i9x7TQP1m0/xYxz 3OkalJS6JlQ8caJfqTHVcpDGfT+VDA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-19_03,2025-11-18_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 malwarescore=0 clxscore=1015 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511150032 Content-Type: text/plain; charset="utf-8" Enable tick on nohz full CPU when it is marked as paravirt. If there in no CFS/RT running there, disable the tick to save the power. In addition to this, arch specific code which enables the paravirt CPU should 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 90fc04d84b74..73d1d49a3c72 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1336,6 +1336,10 @@ bool sched_can_stop_tick(struct rq *rq) { int fifo_nr_running; =20 + /* Keep the tick running until both RT and CFS are pushed out*/ + if (cpu_paravirt(rq->cpu) && (rq->rt.rt_nr_running || rq->cfs.h_nr_queued= )) + return false; + /* Deadline tasks, even if single, need the tick */ if (rq->dl.dl_nr_running) return false; --=20 2.47.3 From nobody Tue Dec 2 02:18:53 2025 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 93DBC363C6A for ; Wed, 19 Nov 2025 12:46:08 +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=1763556370; cv=none; b=b2shY1tAuQVUhKxqxxXQUxC/njYt7iEh+jR5kG3Lh6ISANYctwCd8ZCaLY7rJjDzO9HsM2Ste0mt2sUOWPOMUAz1OCFXpvy7LOaCmnvnvS8/OEqoKHd8mlrHSFLj1V/jTSCWHOGE/ulaFh123lahaDzEL0HGUCAjWk26ycocA8Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763556370; c=relaxed/simple; bh=2OnYc9S+5b4qWmwxV42F1EDz7enhb6lsaJA7pUGsDcw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CO8o2Y2tb7qbEHncDDk2bSXMgw+sK3xI+qhMV0BGcHeoyc7CpcvCba+8xuDLR8qUJ1lIcT52WKfPtE94aLhTfapiiJ7wZEv5ANbU236W2uS0Nn0N//rPpGtNDl+MtgJTx1cdn/VCj56EF7IfLCu6N/gL9Kf3H7fwF1Nbl1kTY/k= 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=AQ6hPHaG; 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="AQ6hPHaG" Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5AJAbAx9004368; Wed, 19 Nov 2025 12:45:50 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=h3OXVS2Kj4+f+CFex 5Qr0RvHWtEzS+b6opbzkrxYqlU=; b=AQ6hPHaGY8LXJrvPlZvmdg1jMez0Jmgx5 OCfFbOXw/maPyunBXxilxTKL/HzGfQK7pmkKxv14s9MzAcCXZzNLNMLnhwVMwleg xG+5Lik1R02dgtLtwDqWqpggBPlv1jsjOVqdYRPB0qP950cYvgHsGkHB4YtFVBb8 +SoV0YkaZw5CMV4GcN02kDX9fMQiCJBgsug7m/BD1UJChCfvmOeJRtdfBbhcZht0 5EfjZekzeda3Afy3nqGhxz9nH6L5/gDy3FvAed4eXk+vgLD04eoE/g/5YPelalzP AHYLt36QqCHSIoofDuwmVcLBlPRU/EOT17leP9BClptO5gzeNTaLg== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aejjw8fdv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:49 +0000 (GMT) Received: from m0356517.ppops.net (m0356517.ppops.net [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5AJCgfDH007736; Wed, 19 Nov 2025 12:45:48 GMT 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 4aejjw8fds-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:48 +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 5AJBV30G005118; Wed, 19 Nov 2025 12:45:47 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4af5bk8mkd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:47 +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 5AJCjhBq27787826 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Nov 2025 12:45:43 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0266920043; Wed, 19 Nov 2025 12:45:43 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0240D20040; Wed, 19 Nov 2025 12:45:39 +0000 (GMT) Received: from li-7bb28a4c-2dab-11b2-a85c-887b5c60d769.ibm.com.com (unknown [9.39.25.220]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 19 Nov 2025 12:45:38 +0000 (GMT) From: Shrikanth Hegde To: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: sshegde@linux.ibm.com, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, tglx@linutronix.de, yury.norov@gmail.com, maddy@linux.ibm.com, srikar@linux.ibm.com, gregkh@linuxfoundation.org, 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, christophe.leroy@csgroup.eu Subject: [PATCH 10/17] sched/core: Push current task from paravirt CPU Date: Wed, 19 Nov 2025 18:14:42 +0530 Message-ID: <20251119124449.1149616-11-sshegde@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251119124449.1149616-1-sshegde@linux.ibm.com> References: <20251119124449.1149616-1-sshegde@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=BanVE7t2 c=1 sm=1 tr=0 ts=691dbbfd cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=wsXCBACog4-lb1GD2tQA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE1MDAzMiBTYWx0ZWRfX1vSJx3eeGgza PWRvAYsu5WG+amo38IyG8Rg8JkP0dtnW1QEgNrh56hrQ+HliCt00W5hDUINaMFV76CsllhUVOi1 I9jxwc5oRwp17/kTwjVQjlNa4lCnabTzuLrBCzcsdGNHGJ92ed2+vgtLxK9rBPcuCOvCOXb5zpY mUlj7abl9JzoYoj2DsZqt7BZp9A9UynipYwSXmSqAg05XSD2ZtfYB9Vtqb9UVVHphNHd1f6enq7 qy9yshOmK/DBSafMg0kJN3ZwkuWlo22DCu6id3FPMAD9pRk1EYaKdvDx//7KgYsKYui29rWUP+4 FeKT36PIqOWJ2hQ0hgJCcf1nUfFExCkvQlb9ulvX+qnrX1eJ/FA0mrqHkEtQG1tkkYF7CI+Lugv XiXYT9l5JxhS1Fdt0IUV8L06oR7ung== X-Proofpoint-GUID: zxdjMTHSYMi08NSJODlWOoyordflGmsQ X-Proofpoint-ORIG-GUID: TTLZnAZf-SZOJeJGuWzf3mpam8NCTSr6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-19_03,2025-11-18_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 spamscore=0 impostorscore=0 priorityscore=1501 clxscore=1015 phishscore=0 bulkscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511150032 Content-Type: text/plain; charset="utf-8" Actively push out RT/CFS running on a paravirt 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 paravirt CPUs, it will continue running there. Though code is almost same as __balance_push_cpu_stop and quite close to push_cpu_stop, it provides a cleaner implementation w.r.t to PARAVIRT confi= g. Add push_task_work_done flag to protect pv_push_task_work buffer. This currently works only FAIR and RT. Signed-off-by: Shrikanth Hegde --- kernel/sched/core.c | 83 ++++++++++++++++++++++++++++++++++++++++++++ kernel/sched/sched.h | 9 +++++ 2 files changed, 92 insertions(+) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 73d1d49a3c72..65c247c24191 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -5521,6 +5521,10 @@ void sched_tick(void) unsigned long hw_pressure; u64 resched_latency; =20 + /* push the current task out if a paravirt CPU */ + if (cpu_paravirt(cpu)) + push_current_from_paravirt_cpu(rq); + if (housekeeping_cpu(cpu, HK_TYPE_KERNEL_NOISE)) arch_scale_freq_tick(); =20 @@ -10869,4 +10873,83 @@ void sched_change_end(struct sched_change_ctx *ctx) #ifdef CONFIG_PARAVIRT struct cpumask __cpu_paravirt_mask __read_mostly; EXPORT_SYMBOL(__cpu_paravirt_mask); + +static DEFINE_PER_CPU(struct cpu_stop_work, pv_push_task_work); + +static int paravirt_push_cpu_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; +} + +/* A CPU is marked as Paravirt when there is contention for underlying + * physical CPU and using this CPU will lead to 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 non paravirt CPU will be chosen and henceforth + * task shouldn't come back to this CPU + */ +void push_current_from_paravirt_cpu(struct rq *rq) +{ + struct task_struct *push_task =3D rq->curr; + unsigned long flags; + struct rq_flags rf; + + if (!cpu_paravirt(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 it affine to only paravirt cpus? */ + if (cpumask_subset(push_task->cpus_ptr, cpu_paravirt_mask)) + 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); + schedstat_inc(push_task->stats.nr_migrations_paravirt); + + rq_lock(rq, &rf); + rq->push_task_work_done =3D 1; + rq_unlock(rq, &rf); + + stop_one_cpu_nowait(rq->cpu, paravirt_push_cpu_stop, push_task, + this_cpu_ptr(&pv_push_task_work)); + local_irq_restore(flags); +} #endif diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index b419a4d98461..42984a65384c 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1214,6 +1214,9 @@ 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 */ @@ -4017,6 +4020,12 @@ extern bool dequeue_task(struct rq *rq, struct task_= struct *p, int flags); extern struct balance_callback *splice_balance_callbacks(struct rq *rq); extern void balance_callbacks(struct rq *rq, struct balance_callback *head= ); =20 +#ifdef CONFIG_PARAVIRT +void push_current_from_paravirt_cpu(struct rq *rq); +#else +static inline void push_current_from_paravirt_cpu(struct rq *rq) { } +#endif + /* * The 'sched_change' pattern is the safe, easy and slow way of changing a * task's scheduling properties. It dequeues a task, such that the schedul= er --=20 2.47.3 From nobody Tue Dec 2 02:18:53 2025 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 B8DD435CB79 for ; Wed, 19 Nov 2025 12:46: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=1763556377; cv=none; b=r45vlBREm1Owr15+M/PY/hv5aV9grOOnKXGYJdBFT90VvkoX3Mnd7G4VyjKDmmpGq/dANuWmrhZXhMSRnN5LZhihaboCzm1cfKfw7yEsz5dnSPpeYoN96JHiVxWyQ6JfA9DJBOcE/V0c/tuHYAa0cT9RQYv0db+e0IMBVl2EPCc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763556377; c=relaxed/simple; bh=cyh5EBdhKqgFtA024Eq/Hr1I6DHNl0yhXV12vOJRcYc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bpu3jFDNRotGL9c7FVj1DvwTzeTtfAJn35INCLRe9p8Na6vQcqPo3FSwH6yDNJHPFQAT+f0udevtchUhIv8lNx7Akzp5wlQDsX7YbY8zcN4LqM4KYi01uxxkNlRuUzT9L3N5uVxjmalXAmfUZg7ZtQ0XgYdmMPKEHyM5vptoOMs= 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=QDlUn/AC; 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="QDlUn/AC" Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5AJ9NBJO001887; Wed, 19 Nov 2025 12:45:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=fp3wEgZfbEs1a3AHu EOaiMge68Gvr+SKIXwf3P50Lb0=; b=QDlUn/ACkoAELvNooK2U7ORln6QGSAtCb cOfeNLy3eCotDcjSi6/usfs3dVhZMfc88a8dUvAj/WhJn6Yn2jhVwvBkQmVe9XlM JW5RZmCMnrXHLXn7U1v01qswzH20UquPQoxoaLxdZD60v6g0mIrWNXIVhZCgI5+F Lk98XqbZyn7eimUxHU+uDJgivi8JkwyPgGM0vJ1nuG9L+FQcZgdEzgIDioRcozgY GGYEdPx6GmnX7UD4zaC52LIXRaVy1HWZBP/Fq6sAXZ/1FQP6TMFol807JUGm5Hyk f3FaI9m1amlO3uIRU0/NOem8jJSEv/NYXhOcsMSWBADUjheKZl6vA== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aejjtykgq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:52 +0000 (GMT) Received: from m0353725.ppops.net (m0353725.ppops.net [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5AJCZSlx006801; Wed, 19 Nov 2025 12:45:52 GMT 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 4aejjtykgn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:52 +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 5AJCHdwJ017319; Wed, 19 Nov 2025 12:45:51 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4af6j1rce6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:51 +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 5AJCjlLi30474632 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Nov 2025 12:45:47 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 6E4822004B; Wed, 19 Nov 2025 12:45:47 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 651D020040; Wed, 19 Nov 2025 12:45:43 +0000 (GMT) Received: from li-7bb28a4c-2dab-11b2-a85c-887b5c60d769.ibm.com.com (unknown [9.39.25.220]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 19 Nov 2025 12:45:43 +0000 (GMT) From: Shrikanth Hegde To: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: sshegde@linux.ibm.com, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, tglx@linutronix.de, yury.norov@gmail.com, maddy@linux.ibm.com, srikar@linux.ibm.com, gregkh@linuxfoundation.org, 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, christophe.leroy@csgroup.eu Subject: [PATCH 11/17] sysfs: Add paravirt CPU file Date: Wed, 19 Nov 2025 18:14:43 +0530 Message-ID: <20251119124449.1149616-12-sshegde@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251119124449.1149616-1-sshegde@linux.ibm.com> References: <20251119124449.1149616-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-GUID: kM-SW_RB9CwHTwYPtFJ878yGr_bcFusT X-Proofpoint-ORIG-GUID: 3MWNP3_-6wVPt9-O81QW7CGYUTXwBK0K X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE1MDAzMiBTYWx0ZWRfX5KetOKyTsGUB t9Wx0kbWKTnK6dq7yGh3y8/JxaEunYW7rMgYnf3ul90tWv2UpJICUrOrcLBi0xHKVspLYFyrV4D 31DgmEdE6qqoGfddK8xNOgN65SbvY5tw8YB++P/Rm4cqp9gY9i1MNmNx0gOLU5RejZc5PjckoNO tW3pIuxvkxGg3Q3+HRdOxMhrq9XK6DmH3hA05pss9a2Uretong9w3/OIVf4l+bjPbVl91cmyBAO m6XHLiU74urshg/hydcrwvGWm/WeD4y2RZVaR+/1UP2Z1AZB9SHRfsb4dlZU+/Rqqe+wzNf/kps 2Lprknqv2OLGV8r+OoTo1p+OfHxQ1ppPyfWElvzOxdaTqxWgfzPZM1afUI8u+XN0cN/MNISN3gg TN0jdCJNf7gFwioeXwrvy0CFyeCbkQ== X-Authority-Analysis: v=2.4 cv=SvOdKfO0 c=1 sm=1 tr=0 ts=691dbc00 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=VwQbUJbxAAAA:8 a=a_zpyIc2HxMjbloCHkAA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-19_03,2025-11-18_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 spamscore=0 clxscore=1015 suspectscore=0 phishscore=0 adultscore=0 bulkscore=0 impostorscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511150032 Content-Type: text/plain; charset="utf-8" Add paravirt file in /sys/devices/system/cpu. This offers - User can quickly check which CPUs are marked as paravirt. - Userspace algorithm such as sched_ext or with isolcpus could use the mask and make decision. - daemon such as irqbalance could use this mask and don't spread irq's into paravirt CPUs. For example: cat /sys/devices/system/cpu/paravirt 600-719 <<< arch marked these are paravirt. cat /sys/devices/system/cpu/paravirt <<< No paravirt CPUs at the moment. Signed-off-by: Shrikanth Hegde --- Documentation/ABI/testing/sysfs-devices-system-cpu | 9 +++++++++ drivers/base/cpu.c | 12 ++++++++++++ 2 files changed, 21 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documenta= tion/ABI/testing/sysfs-devices-system-cpu index 8aed6d94c4cd..1da77430b776 100644 --- a/Documentation/ABI/testing/sysfs-devices-system-cpu +++ b/Documentation/ABI/testing/sysfs-devices-system-cpu @@ -777,3 +777,12 @@ Date: Nov 2022 Contact: Linux kernel mailing list Description: (RO) the list of CPUs that can be brought online. + +What: /sys/devices/system/cpu/paravirt +Date: Sep 2025 +Contact: Linux kernel mailing list +Description: + (RO) the list of CPUs that are current marked as paravirt CPUs. + These CPUs are not meant to be used at the moment due to + contention of underlying physical CPU resource. Dynamically + changes to reflect the current situation. diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c index fa0a2eef93ac..c216e13c4e2d 100644 --- a/drivers/base/cpu.c +++ b/drivers/base/cpu.c @@ -374,6 +374,15 @@ static int cpu_uevent(const struct device *dev, struct= kobj_uevent_env *env) } #endif =20 +#ifdef CONFIG_PARAVIRT +static ssize_t paravirt_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return sysfs_emit(buf, "%*pbl\n", cpumask_pr_args(cpu_paravirt_mask)); +} +static DEVICE_ATTR_RO(paravirt); +#endif + const struct bus_type cpu_subsys =3D { .name =3D "cpu", .dev_name =3D "cpu", @@ -513,6 +522,9 @@ static struct attribute *cpu_root_attrs[] =3D { #endif #ifdef CONFIG_GENERIC_CPU_AUTOPROBE &dev_attr_modalias.attr, +#endif +#ifdef CONFIG_PARAVIRT + &dev_attr_paravirt.attr, #endif NULL }; --=20 2.47.3 From nobody Tue Dec 2 02:18:53 2025 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 6D4DC363C6E for ; Wed, 19 Nov 2025 12:46:15 +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=1763556378; cv=none; b=snj6GnZh5hgKAqCnzS8kzrZMBKzzELB7em8PK9SCQQMR0szu0uKkEx2PnP4n46BdK0/eesDtO1DcT6JsuKa/5iNRssUtuw502LzwtE8g1nfAauAJy3KtF9z0OhgPbjMh+Ld347Roq8c1yjkGhHEJ0wtojR8IkzdveV8+L3PxdUc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763556378; c=relaxed/simple; bh=ZWFiw1WkjitXmooiWdi6xgpQBNIjAv38fadGk/gbT6Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AH3RWuy6xfrnhjclG5uz8nqx6TRdQRyAKvUuyBVO1BKqwWV+AeDyu8pyrRzgzgDaxIXnNCe/IZHYHoUUjwulW7/X699/rnIxpLBLp8douTZlP4ByeUrVsv5vv6tc+1MpHKHNWfxyvGZ7kkKmn2qqj+KXTzBivXnm8DDiOUKrVSw= 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=GKJNJrro; 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="GKJNJrro" Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5AJ8KJAS030703; Wed, 19 Nov 2025 12:45: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=wOwoUo4qjbz//wAJI 96uYffqcZQY/DCaFaTR3O887dM=; b=GKJNJrro4Z751pmBsy+oWNAw/xjoVwRST te4M1xAVtHWf/3P5E9+sBwc3bA0jXDEXmTsIVSlGjb01lPvwLmGrFIQIKkCS91RI WhkR6MT9LlzDSyN663Va3w0D3BKd5lsQ7OHF5ReNunKUjZs02NGVp1ntHNJyJ47f H6pt02YWt4niWhYQ2LUuJCxC5YpIFnKva3/rpXCIhj4MsMh0K8FBb17+9JZ3QifC yavHznUMyZS9AIwWeshP/7hNSgIv5Z9KwpK9NM4nf4ukLe7o0IeFhFLvexpKW0gT h2+qcau9qRn0WyZaSUDhFirR5V7HV0bBLq9bdlB0q42kCxBoG0mCg== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aejjw8fea-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:57 +0000 (GMT) Received: from m0356517.ppops.net (m0356517.ppops.net [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5AJCRfJO009153; Wed, 19 Nov 2025 12:45:56 GMT 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 4aejjw8fe6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:56 +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 5AJCYSgb007031; Wed, 19 Nov 2025 12:45:55 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4af62jgea2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:45:55 +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 5AJCjqQx33620294 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Nov 2025 12:45:52 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id DFD9E20043; Wed, 19 Nov 2025 12:45:51 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C738D20040; Wed, 19 Nov 2025 12:45:47 +0000 (GMT) Received: from li-7bb28a4c-2dab-11b2-a85c-887b5c60d769.ibm.com.com (unknown [9.39.25.220]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 19 Nov 2025 12:45:47 +0000 (GMT) From: Shrikanth Hegde To: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: sshegde@linux.ibm.com, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, tglx@linutronix.de, yury.norov@gmail.com, maddy@linux.ibm.com, srikar@linux.ibm.com, gregkh@linuxfoundation.org, 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, christophe.leroy@csgroup.eu Subject: [PATCH 12/17] powerpc: method to initialize ec and vp cores Date: Wed, 19 Nov 2025 18:14:44 +0530 Message-ID: <20251119124449.1149616-13-sshegde@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251119124449.1149616-1-sshegde@linux.ibm.com> References: <20251119124449.1149616-1-sshegde@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=BanVE7t2 c=1 sm=1 tr=0 ts=691dbc05 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=hFzEoIDDEV05iifXiegA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE1MDAzMiBTYWx0ZWRfX+GJMTnqKLGzA coTy7docKH4tBCiB2HvYpjD4bSxnaADX5/blRyjFKGDjsO4Kt/CTR0z3NAZvGKu5CGnl7xr15fp 7jdsSdm7QLl51oHfVSs8PQW354c7RmarekwP9QmJc+h3wacIh4bop1vJGHwXDH2ttaV4+UIyHJl 0GOB1cPo52UmS7GqOaOKeszVSNaYJ7ShgE5N6xdLiR39u3oCogaFMhNA9IEnvQC2FXncAITlQ2c vobOMTLFRW2rLWpxM1tDqyve2CCX080NQt6KaW0YVjbQqXMRclnw84xJi5wYZRWBjW0+3fUKYUH nQH5avikRe09YA8OOmcSh6lUL8fj4J0dmdvnUqZc6TRZL3DHisCwSxzwJDy1+HfY4GvHKMlhKZS bhHFDy8lSQShmqM1x/7mVhqEHBjNPw== X-Proofpoint-GUID: AuGDugIJ0Mb3tRw58kt_0IQAl-bdggFu X-Proofpoint-ORIG-GUID: K61qosmFdGtY06M47nbeyG0mlm1oQdDs X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-19_03,2025-11-18_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 spamscore=0 impostorscore=0 priorityscore=1501 clxscore=1015 phishscore=0 bulkscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511150032 Content-Type: text/plain; charset="utf-8" During system init, capture the number of EC and VP cores on Shared Processor LPARs(aka VM). (SPLPAR ) EC - Entitled Cores - Hypervisor(PowerVM) guarantees this many cores worth of cycles. VP - Virtual Processor Cores - Total logical cores present in the LPAR. In SPLPAR's typically there is overcommit of vCPUs. i.e VP > EC. These values will be used in subsequent patches to calculate number of cores to use when there is steal time. Note: DLPAR specific method need to call this again. Yet to be done. Originally-by: Srikar Dronamraju Signed-off-by: Shrikanth Hegde --- arch/powerpc/include/asm/smp.h | 1 + arch/powerpc/kernel/smp.c | 1 + arch/powerpc/platforms/pseries/lpar.c | 30 +++++++++++++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h index e41b9ea42122..5a52c6952195 100644 --- a/arch/powerpc/include/asm/smp.h +++ b/arch/powerpc/include/asm/smp.h @@ -266,6 +266,7 @@ extern char __secondary_hold; extern unsigned int booting_thread_hwid; =20 extern void __early_start(void); +void pseries_init_ec_vp_cores(void); #endif /* __ASSEMBLER__ */ =20 #endif /* __KERNEL__ */ diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c index 68edb66c2964..5a3b52dd625b 100644 --- a/arch/powerpc/kernel/smp.c +++ b/arch/powerpc/kernel/smp.c @@ -1732,6 +1732,7 @@ void __init smp_cpus_done(unsigned int max_cpus) =20 dump_numa_cpu_topology(); build_sched_topology(); + pseries_init_ec_vp_cores(); } =20 /* diff --git a/arch/powerpc/platforms/pseries/lpar.c b/arch/powerpc/platforms= /pseries/lpar.c index 6a415febc53b..935fced6e127 100644 --- a/arch/powerpc/platforms/pseries/lpar.c +++ b/arch/powerpc/platforms/pseries/lpar.c @@ -2029,3 +2029,33 @@ static int __init vpa_debugfs_init(void) } machine_arch_initcall(pseries, vpa_debugfs_init); #endif /* CONFIG_DEBUG_FS */ + +#ifdef CONFIG_PARAVIRT + +static unsigned int virtual_procs __read_mostly; +static unsigned int entitled_cores __read_mostly; +static unsigned int available_cores; + +void pseries_init_ec_vp_cores(void) +{ + unsigned long retbuf[PLPAR_HCALL9_BUFSIZE]; + int ret; + + if (available_cores && virtual_procs =3D=3D num_present_cpus() / threads_= per_core) + return; + + /* Get EC values from hcall */ + ret =3D plpar_hcall9(H_GET_PPP, retbuf); + WARN_ON_ONCE(ret !=3D 0); + if (ret) + return; + + entitled_cores =3D retbuf[0] / 100; + virtual_procs =3D num_present_cpus() / threads_per_core; + + /* Initialize the available cores to all VP initially */ + available_cores =3D max(entitled_cores, virtual_procs); +} +#else +void pseries_init_ec_vp_cores(void) { return; } +#endif --=20 2.47.3 From nobody Tue Dec 2 02:18:53 2025 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 3E7BE357A51 for ; Wed, 19 Nov 2025 12:46:25 +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=1763556386; cv=none; b=sHu32in+vVcv10dbfPVE3IffK+mSpjgbssj6zKME/3gP2npK4stmmIsNMXE8wQn7Vp/ubdeI6VsqdPhyYm6yiOCtxSZ/LOlTR9xTsTY08Rx6uR1PhYDy3ZPQE6Hxs2U8BEBqlaA6w+tqUJqBaoe1xu0lMbFRapb0XW6dYRn8Pyo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763556386; c=relaxed/simple; bh=yxIqHl2ViEZIPEn/mGtdn9SguuLVGdUN4yqbPDpmwrU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=byOgudip+nm9scUD1bndFkdI/XN6SLekzW8iIVRf2aFlgWg4oaJyW92EK/acHP/maj38LkyXm8BAjciF3TUS2b+ZkTs5oO44saHMtLEoSO7730C+LL17sV4H5foKfPsCzq0jm1lBZFK3h1V1DdvBvbVynqf4pTveaPeDAhg6GN0= 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=kNvnXNzN; 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="kNvnXNzN" Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5AJ89VUN026824; Wed, 19 Nov 2025 12:46:02 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=k1P52ymW6kaxc9Fum Uth9OoQ2+0WOk7K41d6063xHqU=; b=kNvnXNzNvvrGOAdxi1CcGVS+fBY5w/PU+ gIZufITYZkSXxCjP2Ol40CExf6RcXt4+ZA1995LR5SibG1ZKtG5CMgZCVZKzFMtj 0em9LWcODd9b6WtKX8Eh2bc3kGBZderUEGHHytAr0adw7oasZ+c1DBBm0DSK6uuO +lttuA5iE01r70qjk+d+WWYUTuNdgOdSgS8psKgkx6jUBGPqmiiX32N0/zK10wPi 3T1s3TNigg2l2e9+ySs9IosT8C78tzc5K4y7GC5PNTqwajhWyvkLMPE1qjZhqljv PJ89vi1S2O70BrZOClz98jaa2EsR4Wu0IAfUQSjxsZuxG7PAPFz+A== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aejka0d22-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:46:02 +0000 (GMT) Received: from m0353729.ppops.net (m0353729.ppops.net [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5AJCWDfM027897; Wed, 19 Nov 2025 12:46:01 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aejka0d1v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:46:01 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5AJB3Atb030851; Wed, 19 Nov 2025 12:46:00 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4af47y0rr9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:46:00 +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 5AJCjuRf56951058 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Nov 2025 12:45:56 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4D96420043; Wed, 19 Nov 2025 12:45:56 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 422DF20040; Wed, 19 Nov 2025 12:45:52 +0000 (GMT) Received: from li-7bb28a4c-2dab-11b2-a85c-887b5c60d769.ibm.com.com (unknown [9.39.25.220]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 19 Nov 2025 12:45:52 +0000 (GMT) From: Shrikanth Hegde To: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: sshegde@linux.ibm.com, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, tglx@linutronix.de, yury.norov@gmail.com, maddy@linux.ibm.com, srikar@linux.ibm.com, gregkh@linuxfoundation.org, 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, christophe.leroy@csgroup.eu Subject: [PATCH 13/17] powerpc: enable/disable paravirt CPUs based on steal time Date: Wed, 19 Nov 2025 18:14:45 +0530 Message-ID: <20251119124449.1149616-14-sshegde@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251119124449.1149616-1-sshegde@linux.ibm.com> References: <20251119124449.1149616-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-GUID: MizLiqhS08QOdJAksgIXv1X_4BEsEoh6 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE1MDAzMiBTYWx0ZWRfX78MeoHp8dtkB L9J9hugshqdbYLG8cu8rPW3IID+mH4xwF1GrepvXxm7dnPEtaasmmiTlFyqH9MUqO4IOJpdHs97 m1ovNQi4yd3/hLpDyJGqubAsg5ZS/MUwHlU3A3pltYWxQkdJQ1Uahf2Pe8MY+A42o/scmWJK+oh qgDb6Q/GwIkKjXHwBYcm6zmd1Gg8xlrNoHzEqQ0VxTBq8Nc/gXu+ZoI0lfTcoGVyQEj762PQ8cp Wn9wZEOBOx6k6G5N4s3Iipw057IeVXdPSeY83MhWUhhtWEvrt+wNY5euOQjp//rnSPbiIJ0yfnC FPZ/VxcntsmOMjhzHCAq7oIrTXeaQKmG41cNplsejUusohZcx4HJVhMEEQcrM9d0eqdsE14axdK SjqQvt/U9GqkNvkljsMQcvGhqu109w== X-Proofpoint-ORIG-GUID: AQgkYdCtibiJzz9AEQYjshn9oa5s2sQ7 X-Authority-Analysis: v=2.4 cv=XtL3+FF9 c=1 sm=1 tr=0 ts=691dbc0a cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=xVd_9023M5FCHxFdF00A:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-19_03,2025-11-18_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 bulkscore=0 priorityscore=1501 impostorscore=0 adultscore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511150032 Content-Type: text/plain; charset="utf-8" available_cores - Number of cores LPAR(VM) can use at this moment. remaining cores will have CPUs marked as paravirt. This follow stepwise approach for reducing/increasing the number of available_cores. Very simple Logic. if (steal_time > high_threshold) available_cores-- if (steal_time < low_threshould) available_cores++ It also check previous direction taken to avoid un-necessary ping-pongs. Note: It works well only when CPUs are spread out equal numbered across NUMA nodes. Originally-by: Srikar Dronamraju Signed-off-by: Shrikanth Hegde --- arch/powerpc/platforms/pseries/lpar.c | 53 ++++++++++++++++++++++++ arch/powerpc/platforms/pseries/pseries.h | 1 + 2 files changed, 54 insertions(+) diff --git a/arch/powerpc/platforms/pseries/lpar.c b/arch/powerpc/platforms= /pseries/lpar.c index 935fced6e127..825b5b4e2b43 100644 --- a/arch/powerpc/platforms/pseries/lpar.c +++ b/arch/powerpc/platforms/pseries/lpar.c @@ -43,6 +43,7 @@ #include #include #include +#include =20 #include "pseries.h" =20 @@ -2056,6 +2057,58 @@ void pseries_init_ec_vp_cores(void) /* Initialize the available cores to all VP initially */ available_cores =3D max(entitled_cores, virtual_procs); } + +#define STEAL_RATIO_HIGH 400 +#define STEAL_RATIO_LOW 150 + +void update_soft_entitlement(unsigned long steal_ratio) +{ + static int prev_direction; + int cpu; + + if (!entitled_cores) + return; + + if (steal_ratio >=3D STEAL_RATIO_HIGH && prev_direction > 0) { + /* + * System entitlement was reduced earlier but we continue to + * see steal time. Reduce entitlement further. + */ + if (available_cores =3D=3D entitled_cores) + return; + + /* Mark them paravirt, enable tick if it is nohz_full */ + for (cpu =3D (available_cores - 1) * threads_per_core; + cpu < available_cores * threads_per_core; cpu++) { + set_cpu_paravirt(cpu, true); + if (tick_nohz_full_cpu(cpu)) + tick_nohz_dep_set_cpu(cpu, TICK_DEP_BIT_SCHED); + } + available_cores--; + + } else if (steal_ratio <=3D STEAL_RATIO_LOW && prev_direction < 0) { + /* + * System entitlement was increased but we continue to see + * less steal time. Increase entitlement further. + */ + if (available_cores =3D=3D virtual_procs) + return; + + /* mark them avaialble */ + for (cpu =3D available_cores * threads_per_core; + cpu < (available_cores + 1) * threads_per_core; cpu++) + set_cpu_paravirt(cpu, false); + + available_cores++; + } + if (steal_ratio >=3D STEAL_RATIO_HIGH) + prev_direction =3D 1; + else if (steal_ratio <=3D STEAL_RATIO_LOW) + prev_direction =3D -1; + else + prev_direction =3D 0; +} #else void pseries_init_ec_vp_cores(void) { return; } +void update_soft_entitlement(unsigned long steal_ratio) { return; } #endif diff --git a/arch/powerpc/platforms/pseries/pseries.h b/arch/powerpc/platfo= rms/pseries/pseries.h index 3968a6970fa8..d1f9ec77ff57 100644 --- a/arch/powerpc/platforms/pseries/pseries.h +++ b/arch/powerpc/platforms/pseries/pseries.h @@ -115,6 +115,7 @@ int dlpar_workqueue_init(void); =20 extern u32 pseries_security_flavor; void pseries_setup_security_mitigations(void); +void update_soft_entitlement(unsigned long steal_ratio); =20 #ifdef CONFIG_PPC_64S_HASH_MMU void pseries_lpar_read_hblkrm_characteristics(void); --=20 2.47.3 From nobody Tue Dec 2 02:18:53 2025 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 1474534AAF7 for ; Wed, 19 Nov 2025 12:46:24 +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=1763556386; cv=none; b=NFcOu6M/byjMToNE362UoTqU0f5vW9Qu7zEnM+HbaNL3sKleWakwXOBvP0k/IaqvdezLtENE1dgKISd+xr/o5nx7sL7Fxae4Jk83aNnhMzolr4gYtIj3GIltUCpyp10DZvbN9B3Vxu7XeBAu0dyF+SL9B7pX5R7R/xNiphq0rzU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763556386; c=relaxed/simple; bh=fUNN1dAvn3XOuiZnW9eCbS8oNCbU1SHdk6VnZXK6mfk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IfKZWDPsWUN//aVqRZes57vE9FtD38Nq4lxsayBA0ztqSqBD11TwqRbyke2ythWd3YtdH+lAAUhpIWsL/6xhYhhEN7JLjV98PeG2Q59H+mYfNg+Nq6EREEj2meLTBlOV0cHbzANZYN3MNe3QIJlOtQh/dxHXqDGcgBwPTpnFK8E= 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=I9kb7l9T; 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="I9kb7l9T" Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5AJ8YP4E018752; Wed, 19 Nov 2025 12:46: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=5J8B5BjCgcW7Mhruz 5B4PQwUqSYdH0D4WBWeJo3om/8=; b=I9kb7l9Tg/JmAzcZlElocub3lYpdK+Ww7 UM8Z87913ZEG15mQ+rnWBxQlS9WhEb6rHFHhHVcS6bH+C74EzaD816fSb/TJp8SQ QgdWG+/pv4n8tkD4WiOaCoeEZD5hM1d3A+kZubFyxo6HI70BMqmDaHeCMrVf85py zs4OTef/lDdJrryt0PaizcGDTHPwqtIDiGodZ0SEYJnAmwnz8kMnrL8TYWVMMtRl rhYIcBek4NakwQTAYHCS9TYjInvNvUJNt1Q1sLgsH9LAAH69Fy4XiwZvjFAVUElb wWeVdrk6WZyGu3xespxhjJlbzrB8THRxmgFl7leOpwBYmFUIk9j+A== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aejjw8fey-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:46:06 +0000 (GMT) Received: from m0356517.ppops.net (m0356517.ppops.net [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5AJCbZF0030455; Wed, 19 Nov 2025 12:46:05 GMT 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 4aejjw8fev-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:46: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 5AJCgYZg017335; Wed, 19 Nov 2025 12:46:04 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4af6j1rcf0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:46:04 +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 5AJCk02Q34734424 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Nov 2025 12:46:00 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C52FB20043; Wed, 19 Nov 2025 12:46:00 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B134120040; Wed, 19 Nov 2025 12:45:56 +0000 (GMT) Received: from li-7bb28a4c-2dab-11b2-a85c-887b5c60d769.ibm.com.com (unknown [9.39.25.220]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 19 Nov 2025 12:45:56 +0000 (GMT) From: Shrikanth Hegde To: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: sshegde@linux.ibm.com, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, tglx@linutronix.de, yury.norov@gmail.com, maddy@linux.ibm.com, srikar@linux.ibm.com, gregkh@linuxfoundation.org, 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, christophe.leroy@csgroup.eu Subject: [PATCH 14/17] powerpc: process steal values at fixed intervals Date: Wed, 19 Nov 2025 18:14:46 +0530 Message-ID: <20251119124449.1149616-15-sshegde@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251119124449.1149616-1-sshegde@linux.ibm.com> References: <20251119124449.1149616-1-sshegde@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=BanVE7t2 c=1 sm=1 tr=0 ts=691dbc0e cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=Mwgd3rNTb8mxO3DA2-gA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE1MDAzMiBTYWx0ZWRfXwPzSTHu6TiY/ LgeWngBu52HSuCY95X6iUZ3qmYNWCsB2cffspEqXjYo20LHFE7t55VfXkP0dD0mmYioqJP49bqd Sjp7Fmq+dQrgQy4bpB2tdxIYTrsKhIsyInRo/LIYY7zvJg3+ND0uazvv4hakf1pDrYnI8gP7U/E Z03uihRlD55kfMhf2O4yLtUcViNcgjfGS8bPQ0U4dvgFSuDrDFeHjdgqfqtZpDbDqvWjEBSQlh+ 5FidER5X0NqQoRdDffVEzilxF9Lyb8os6hk1t+cCbWjahgdHkdp/R2B0bxamiqdQJdHRyuZ5USB aNBmCnq5x3xmOmbEoOjpqKZtRi4QOw9liOu4KO0Sfx9+/MsV1Gf7iTA27A7WZp/4E5+ELO0qqw/ gWBO6L/fBTyqqEQXCna/KoGt2KBlIg== X-Proofpoint-GUID: XOSyeBmPSa3EeIyM6zLJo6jih1qjXWGY X-Proofpoint-ORIG-GUID: KX8JCnf3YAZj9vdKHwR0bK2EjEAyqr_y X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-19_03,2025-11-18_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 spamscore=0 impostorscore=0 priorityscore=1501 clxscore=1015 phishscore=0 bulkscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511150032 Content-Type: text/plain; charset="utf-8" Process steal time at regular intervals. Sum of steal time across the vCPUs is computed against the time to get the steal ratio. Only first online CPU does this work. That reduces the racing issues. This is done only on SPLPAR (non kvm guest). This assumes PowerVM being the hypervisor. Originally-by: Srikar Dronamraju Signed-off-by: Shrikanth Hegde --- arch/powerpc/platforms/pseries/lpar.c | 59 +++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/arch/powerpc/platforms/pseries/lpar.c b/arch/powerpc/platforms= /pseries/lpar.c index 825b5b4e2b43..c16d97e1a1fe 100644 --- a/arch/powerpc/platforms/pseries/lpar.c +++ b/arch/powerpc/platforms/pseries/lpar.c @@ -660,10 +660,58 @@ static int __init vcpudispatch_stats_procfs_init(void) machine_device_initcall(pseries, vcpudispatch_stats_procfs_init); =20 #ifdef CONFIG_PARAVIRT_TIME_ACCOUNTING + +#define STEAL_MULTIPLE 10000 +#define PURR_UPDATE_TB NSEC_PER_SEC + +static bool should_cpu_process_steal(int cpu) +{ + if (cpu =3D=3D cpumask_first(cpu_online_mask)) + return true; + + return false; +} + +static void process_steal(int cpu) +{ + static unsigned long next_tb_ns, prev_steal; + unsigned long steal_ratio, delta_tb; + unsigned long tb_ns =3D tb_to_ns(mftb()); + unsigned long steal =3D 0; + unsigned int i; + + if (!should_cpu_process_steal(cpu)) + return; + + if (tb_ns < next_tb_ns) + return; + + for_each_online_cpu(i) { + struct lppaca *lppaca =3D &lppaca_of(i); + + steal +=3D be64_to_cpu(READ_ONCE(lppaca->ready_enqueue_tb)); + steal +=3D be64_to_cpu(READ_ONCE(lppaca->enqueue_dispatch_tb)); + } + + steal =3D tb_to_ns(steal); + + if (next_tb_ns && prev_steal) { + delta_tb =3D max(tb_ns - (next_tb_ns - PURR_UPDATE_TB), 1); + steal_ratio =3D (steal - prev_steal) * STEAL_MULTIPLE; + steal_ratio /=3D (delta_tb * num_online_cpus()); + update_soft_entitlement(steal_ratio); + } + + next_tb_ns =3D tb_ns + PURR_UPDATE_TB; + prev_steal =3D steal; +} + u64 pseries_paravirt_steal_clock(int cpu) { struct lppaca *lppaca =3D &lppaca_of(cpu); =20 + if (is_shared_processor() && !is_kvm_guest()) + process_steal(cpu); /* * VPA steal time counters are reported at TB frequency. Hence do a * conversion to ns before returning @@ -2061,6 +2109,17 @@ void pseries_init_ec_vp_cores(void) #define STEAL_RATIO_HIGH 400 #define STEAL_RATIO_LOW 150 =20 +/* + * [0]<----------->[EC]---->{AC}-->[VP] + * EC =3D=3D Entitled Cores. Guaranteed number of cores by hypervsior. + * VP =3D=3D Virtual Processors. Total number of cores. When there is over= commit + * this will be higher than EC. + * AC =3D=3D Available Cores Varies between EC <-> VP. + * + * If Steal time is high, then reduce Available Cores. + * If steal time is low, increase Available Cores + */ + void update_soft_entitlement(unsigned long steal_ratio) { static int prev_direction; --=20 2.47.3 From nobody Tue Dec 2 02:18:53 2025 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 A2D8E364038 for ; Wed, 19 Nov 2025 12:46:28 +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=1763556390; cv=none; b=THBi1uMEG9NB3yHY/UVXs+p/tXmB7WmX8EAfeNmkpTArdOHfMLlsTyOz/GetsQJsW/ex72WDvyu7zefadWjYigheJm6kNNmzaS3zutMxqdfpUJaqXxl65z6XwNj9s4qWXzbPYZt9mE46ja/32/1at4BbmgjESwbv0Au1cXmzipg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763556390; c=relaxed/simple; bh=MqiQpjnN49QjL54CkTYwS3pompwMAxCIRnOx7B59kjc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aYFAPBE0clAOXfP8yYLbNjAgzklAweK0GnV69o/zhm9j05Tw9HC/vQFuKENvG+Nho2zFf4DMCDwFKMmaRVxC5fIgEgRFVfq6aSvKlB5ViB1mgVIEYXUuALHwkLruAr5SAgMamb5OY0bUT0sCBMXC6Jwt9NxXIHxvYgaGqxaT7A0= 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=gmHjMfuM; 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="gmHjMfuM" Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5AJ7viZV019885; Wed, 19 Nov 2025 12:46:10 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=AmpKMuL3w7icau4MK INf+cSEFiv6NLC2GZgmKjHG7h8=; b=gmHjMfuMr0sxe3YNw0G3cZim2kl8V4D5y wfTi4Yli/VGu7EbFxdvOMFp5KqnmUnvVzFO3f3GSh96b9yoHh0qRo2v2hEhTWHTd 8YjSNGVJU5kFsKWTFot7pRU8k9nVZG6t1sKMhwq4bW6WiYFjPXngFlfLVTyrRR0m CDJZZEB/yBD2X8X+swFsIBQ7LR5bxTo5M5PNrFX0P1XRFcKUNLQELl9qBWL65B7a sRm+BLNC6pwyGnALXerXoBPBJAFwg9rMRnDObcoELdn9dpJ4q8ryBl1aRaPC2XiO kyaHKL+KscOdM+BWpzO6jko4kdJJfxzI+sloxLCExvjvnIVlRKYsw== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aejgwymdb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:46:10 +0000 (GMT) Received: from m0356516.ppops.net (m0356516.ppops.net [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5AJCilSK029186; Wed, 19 Nov 2025 12:46:10 GMT 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 4aejgwymd9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:46:09 +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 5AJCeBYs017318; Wed, 19 Nov 2025 12:46:09 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4af6j1rcfc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:46:08 +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 5AJCk5Yk38535656 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Nov 2025 12:46:05 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5082A20043; Wed, 19 Nov 2025 12:46:05 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 18ACA20040; Wed, 19 Nov 2025 12:46:01 +0000 (GMT) Received: from li-7bb28a4c-2dab-11b2-a85c-887b5c60d769.ibm.com.com (unknown [9.39.25.220]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 19 Nov 2025 12:46:00 +0000 (GMT) From: Shrikanth Hegde To: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: sshegde@linux.ibm.com, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, tglx@linutronix.de, yury.norov@gmail.com, maddy@linux.ibm.com, srikar@linux.ibm.com, gregkh@linuxfoundation.org, 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, christophe.leroy@csgroup.eu Subject: [PATCH 15/17] powerpc: add debugfs file for controlling handling on steal values Date: Wed, 19 Nov 2025 18:14:47 +0530 Message-ID: <20251119124449.1149616-16-sshegde@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251119124449.1149616-1-sshegde@linux.ibm.com> References: <20251119124449.1149616-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-GUID: GumJZcUnzEqyEvdLHeKkHzJYT6jSGsLt X-Authority-Analysis: v=2.4 cv=YqwChoYX c=1 sm=1 tr=0 ts=691dbc12 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=KSc5eBifJ7cFlDAX9ZYA:9 X-Proofpoint-ORIG-GUID: -0_-Hn2JQa6yuz485H47m9tjBaEzsdtX X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE1MDAzMiBTYWx0ZWRfX8J+nl7YhfEJe DAJD4NyHFryy8UV1JOclKyHxlW+HRspA1uXWPqfJ2BTylZZXyquxNzEgi9eXBTw0by78quT8h/n KD+/hVOOwLzW4WTRbPb8XIGx3zmB13V5CdUoL+C35+xzq9p0jjEiKW8pA/XMAdbrejduAjM9qOe msOpdVlk0kT630Rqddd8xZe75GXIaDEWzePqn/6eO/HEq5fZNX8zD2WadrCtw7uQBjXGbK4ZJJW Z0r1R+hIzs+r9+lOzPW3nhHQWp8w61aIk4UXdaNjiV/Btjsqs4eTlQ3OpI2P5IvAmI4YnQSufYv 7fjyN5lL6eQNjbKgzQ08UytBqIVKosRsgW+mujs6xhgWJcIdLb2vhq+aa8je/R98fqsyYOjaqka 39xKxs8lFVu0C5T1KhzKRF5Zwupr7w== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-19_03,2025-11-18_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 malwarescore=0 clxscore=1015 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511150032 Content-Type: text/plain; charset="utf-8" Since the low,high threshold for steal time can change based on the system, make these values tunable. Values are be to given as expected percentage value * 100. i.e one wants say 8% of steal time is high, then should specify 800 as the high threshold. Similar value computation holds true for low threshold. Provide one more tunable to control how often steal time compution is done. By default it is 1 second. If one thinks thats too aggressive can increase it. Max value is 10 seconds since one should act relatively fast based on steal values. Signed-off-by: Shrikanth Hegde --- arch/powerpc/platforms/pseries/lpar.c | 94 ++++++++++++++++++++++++--- 1 file changed, 86 insertions(+), 8 deletions(-) diff --git a/arch/powerpc/platforms/pseries/lpar.c b/arch/powerpc/platforms= /pseries/lpar.c index c16d97e1a1fe..090e5c48243b 100644 --- a/arch/powerpc/platforms/pseries/lpar.c +++ b/arch/powerpc/platforms/pseries/lpar.c @@ -662,7 +662,8 @@ machine_device_initcall(pseries, vcpudispatch_stats_pro= cfs_init); #ifdef CONFIG_PARAVIRT_TIME_ACCOUNTING =20 #define STEAL_MULTIPLE 10000 -#define PURR_UPDATE_TB NSEC_PER_SEC +static int steal_check_freq =3D 1; +#define PURR_UPDATE_TB (steal_check_freq * NSEC_PER_SEC) =20 static bool should_cpu_process_steal(int cpu) { @@ -2106,9 +2107,6 @@ void pseries_init_ec_vp_cores(void) available_cores =3D max(entitled_cores, virtual_procs); } =20 -#define STEAL_RATIO_HIGH 400 -#define STEAL_RATIO_LOW 150 - /* * [0]<----------->[EC]---->{AC}-->[VP] * EC =3D=3D Entitled Cores. Guaranteed number of cores by hypervsior. @@ -2120,6 +2118,9 @@ void pseries_init_ec_vp_cores(void) * If steal time is low, increase Available Cores */ =20 +static unsigned int steal_ratio_high =3D 400; +static unsigned int steal_ratio_low =3D 150; + void update_soft_entitlement(unsigned long steal_ratio) { static int prev_direction; @@ -2128,7 +2129,7 @@ void update_soft_entitlement(unsigned long steal_rati= o) if (!entitled_cores) return; =20 - if (steal_ratio >=3D STEAL_RATIO_HIGH && prev_direction > 0) { + if (steal_ratio >=3D steal_ratio_high && prev_direction > 0) { /* * System entitlement was reduced earlier but we continue to * see steal time. Reduce entitlement further. @@ -2145,7 +2146,7 @@ void update_soft_entitlement(unsigned long steal_rati= o) } available_cores--; =20 - } else if (steal_ratio <=3D STEAL_RATIO_LOW && prev_direction < 0) { + } else if (steal_ratio <=3D steal_ratio_low && prev_direction < 0) { /* * System entitlement was increased but we continue to see * less steal time. Increase entitlement further. @@ -2160,13 +2161,90 @@ void update_soft_entitlement(unsigned long steal_ra= tio) =20 available_cores++; } - if (steal_ratio >=3D STEAL_RATIO_HIGH) + if (steal_ratio >=3D steal_ratio_high) prev_direction =3D 1; - else if (steal_ratio <=3D STEAL_RATIO_LOW) + else if (steal_ratio <=3D steal_ratio_low) prev_direction =3D -1; else prev_direction =3D 0; } + +/* + * Any value above this set threshold will reduce the available cores + * Value can't be more than 100% and can't be less than low threshould val= ue + * Specifying 500 means 5% steal time + */ + +static int pv_steal_ratio_high_set(void *data, u64 val) +{ + if (val > 10000 || val < steal_ratio_low) + return -EINVAL; + + steal_ratio_high =3D val; + return 0; +} + +static int pv_steal_ratio_high_get(void *data, u64 *val) +{ + *val =3D steal_ratio_high; + return 0; +} + +DEFINE_SIMPLE_ATTRIBUTE(fops_pv_steal_ratio_high, pv_steal_ratio_high_get, + pv_steal_ratio_high_set, "%llu\n"); + +static int pv_steal_ratio_low_set(void *data, u64 val) +{ + if (val < 1 || val > steal_ratio_high) + return -EINVAL; + + steal_ratio_low =3D val; + return 0; +} + +static int pv_steal_ratio_low_get(void *data, u64 *val) +{ + *val =3D steal_ratio_low; + return 0; +} + +DEFINE_SIMPLE_ATTRIBUTE(fops_pv_steal_ratio_low, pv_steal_ratio_low_get, + pv_steal_ratio_low_set, "%llu\n"); + +static int pv_steal_check_freq_set(void *data, u64 val) +{ + if (val < 1 || val > 10) + return -EINVAL; + + steal_check_freq =3D val; + return 0; +} + +static int pv_steal_check_freq_get(void *data, u64 *val) +{ + *val =3D steal_check_freq; + return 0; +} + +DEFINE_SIMPLE_ATTRIBUTE(fops_pv_steal_check_freq, pv_steal_check_freq_get, + pv_steal_check_freq_set, "%llu\n"); + +static int __init steal_debugfs_init(void) +{ + if (!is_shared_processor() || is_kvm_guest()) + return 0; + + debugfs_create_file("steal_ratio_high", 0600, arch_debugfs_dir, + NULL, &fops_pv_steal_ratio_high); + debugfs_create_file("steal_ratio_low", 0600, arch_debugfs_dir, + NULL, &fops_pv_steal_ratio_low); + debugfs_create_file("steal_check_frequency", 0600, arch_debugfs_dir, + NULL, &fops_pv_steal_check_freq); + + return 0; +} + +machine_arch_initcall(pseries, steal_debugfs_init); #else void pseries_init_ec_vp_cores(void) { return; } void update_soft_entitlement(unsigned long steal_ratio) { return; } --=20 2.47.3 From nobody Tue Dec 2 02:18:53 2025 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 C4071364057 for ; Wed, 19 Nov 2025 12:46: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=1763556400; cv=none; b=Alji9RfBtqUVxyMzsWh5TvtE0HbFm5nZlmoHbVwduWQtR7nQGvM/wqXG/YgrvzaNSI3Uvc7rlKPn6QVvZRwGbL1t2pnGEEpvKrLlDnnoRhPdPRzNC9t/XnUKgp9VSvFJtXHdZjWmRPXfZjO24EOvUfkzknOmijVFDJANx/1qjbI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763556400; c=relaxed/simple; bh=3yUueKQq5ZAFaRgE/lbqu1siC23AhOO02xQ0ykjZF0A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Hcy9rmnaq5weKvXNMQMzG/DQzZoxuovw+/iYXXmOnEEEm6HROCKRsWbn7dGMgZaLN325D9FQr7+hIjOY/XHqTFLa4shLpydn+k10l3ibVhvs5Quf4p7JmGsSPuzkEhweP9L9hDdisnASSH4M6aAX4xWipkUIydo1t8RrhTsHx1M= 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=Yrooy7bR; 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="Yrooy7bR" Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5AJ9wcrr002633; Wed, 19 Nov 2025 12:46: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=YMqSwq6KrmjkrGRn/ FphTkipGpgec4bt05KmPFzk9RQ=; b=Yrooy7bRwjoqryL7NTq6fD4/tfewHnf02 6sBifV5wvOkPEsUClysYZmMdT9rzt6Vhppa8PAwD5tASEpsNVS/lXODDBcEQ1/ys +GvInD+b5aepxtMj5d+75c3H6fGBiKW05KDlNgNopsO+ZAxooQJMXUSJDeFOMylC 2+e+UhG47U+OOe0NGk5lO20B2ngkjByNft9bSwrHi0LA7gJJJ/S74XmE8fvbdfg+ goxX1RjGCi+9mPVRKP2m2T8TqbLLan2U6kZdlsE8bmcwP/qlDd0X1AXUlz2kPZTk Ovzv8RVjBzMdfgmPLHLcfYRficDHA2e7gC5OlkLR1t8/r3nXXmfEw== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aejk1gf97-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:46:15 +0000 (GMT) Received: from m0360083.ppops.net (m0360083.ppops.net [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5AJCWZDO022312; Wed, 19 Nov 2025 12:46:15 GMT 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 4aejk1gf95-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:46:15 +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 5AJBUEh1005122; Wed, 19 Nov 2025 12:46:13 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4af5bk8mnm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:46:13 +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 5AJCk9Ye43188588 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Nov 2025 12:46:09 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B36302004B; Wed, 19 Nov 2025 12:46:09 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A705E20040; Wed, 19 Nov 2025 12:46:05 +0000 (GMT) Received: from li-7bb28a4c-2dab-11b2-a85c-887b5c60d769.ibm.com.com (unknown [9.39.25.220]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 19 Nov 2025 12:46:05 +0000 (GMT) From: Shrikanth Hegde To: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: sshegde@linux.ibm.com, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, tglx@linutronix.de, yury.norov@gmail.com, maddy@linux.ibm.com, srikar@linux.ibm.com, gregkh@linuxfoundation.org, 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, christophe.leroy@csgroup.eu Subject: [PATCH 16/17] sysfs: Provide write method for paravirt Date: Wed, 19 Nov 2025 18:14:48 +0530 Message-ID: <20251119124449.1149616-17-sshegde@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251119124449.1149616-1-sshegde@linux.ibm.com> References: <20251119124449.1149616-1-sshegde@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=C/nkCAP+ c=1 sm=1 tr=0 ts=691dbc17 cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=nJnLclp8XjHwtpYBAkoA:9 X-Proofpoint-GUID: canMmW5q6vWH340yCZ5AIBCROflXtUnx X-Proofpoint-ORIG-GUID: wwReSnQNUxJqhaFvKLFRxbfHWod7q3Bx X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE1MDAzMiBTYWx0ZWRfX389yTbPFcJ3Z 2SCOGbGPUPSj7i9ONlwxgsFKfZw7GgWk4DJ7HszhIeGpJSt1V1QcypPjvt9cfeuex7wPIhyHJj4 dJ5Eb1oXremWHsXvGlPGbxvrzC7t28+AuCK+zZ784uvJC/0jOCkRtcW3fjcrTsTglSI32fP7h/N 2e1iyYifEDVqPJ8xX1axiW7ZOb4tBrL+ZgjWYaKr8D1c5zrP8bvx/fR6RHkOlVUOj+XoXLyv01r W6gGalrN1usP7skz9fpqxJY9XSPBnwQeb+AaiPFkx9ww4A+eg0XPwtLlTYexgXMJlgtyfx3vWI3 xjsvIt4deBOliXnqUqlIVB5x/ieDpAd+q8O4/z5lkVbn4r5auuWsvOYi893B87U2LcHajnsr77t cvZMi8HU2ceTb1PWZu85N/V47fJuKQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-19_03,2025-11-18_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 spamscore=0 impostorscore=0 bulkscore=0 malwarescore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511150032 Content-Type: text/plain; charset="utf-8" This is a debug patch which could be used to set the range of CPUs as paravirt.=20 One could make use of this for quick testing of this infra instead of writi= ng arch specific code. This allows checking some corner cases by providing cus= tom cpumasks which isn't possible with arch method. echo 100-200,600-700 > /sys/devices/system/cpu/paravirt cat /sys/devices/system/cpu/paravirt 100-200,600-700 echo > /sys/devices/system/cpu/paravirt cat /sys/devices/system/cpu/paravirt Signed-off-by: Shrikanth Hegde --- This is currently not meant be merged, since paravirt sysfs file is meant to be Read-Only. Hence the documentation hasn't changed. If this method is really helpful, then can consider including it depending on the discussion. drivers/base/cpu.c | 47 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c index c216e13c4e2d..766584c85051 100644 --- a/drivers/base/cpu.c +++ b/drivers/base/cpu.c @@ -375,12 +375,57 @@ static int cpu_uevent(const struct device *dev, struc= t kobj_uevent_env *env) #endif =20 #ifdef CONFIG_PARAVIRT +static ssize_t paravirt_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + cpumask_var_t temp_mask; + int retval =3D 0; + int cpu; + + if (!alloc_cpumask_var(&temp_mask, GFP_KERNEL)) + return -ENOMEM; + + retval =3D cpulist_parse(buf, temp_mask); + if (retval) + goto free_mask; + + /* ALL cpus can't be marked as paravirt */ + if (cpumask_equal(temp_mask, cpu_online_mask)) { + retval =3D -EINVAL; + goto free_mask; + } + if (cpumask_weight(temp_mask) > num_online_cpus()) { + retval =3D -EINVAL; + goto free_mask; + } + + /* No more paravirt cpus */ + if (cpumask_empty(temp_mask)) { + cpumask_copy((struct cpumask *)&__cpu_paravirt_mask, temp_mask); + } else { + cpumask_copy((struct cpumask *)&__cpu_paravirt_mask, temp_mask); + + /* Enable tick on nohz_full cpu */ + for_each_cpu(cpu, temp_mask) { + if (tick_nohz_full_cpu(cpu)) + tick_nohz_dep_set_cpu(cpu, TICK_DEP_BIT_SCHED); + } + } + + retval =3D count; + +free_mask: + free_cpumask_var(temp_mask); + return retval; +} + static ssize_t paravirt_show(struct device *dev, struct device_attribute *attr, char *buf) { return sysfs_emit(buf, "%*pbl\n", cpumask_pr_args(cpu_paravirt_mask)); } -static DEVICE_ATTR_RO(paravirt); +static DEVICE_ATTR_RW(paravirt); #endif =20 const struct bus_type cpu_subsys =3D { --=20 2.47.3 From nobody Tue Dec 2 02:18:53 2025 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 732C62BE04C for ; Wed, 19 Nov 2025 12:46:37 +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=1763556401; cv=none; b=skM6hBW/jaEvUw8zsb0FgBw+vlV4XAkeHm/o+gCDEO60K8dCZRhULzyM5XvrROvzhphGt5fuM0+44smbMBFqRAMGCOoLHE2AtfQ7WSJ3f77SDfnjkkoVh+bkuRkolvk+eSr7+JcO8H/B5xHH3k0fP+KBGElaoYRgwi/JFe9W2b8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763556401; c=relaxed/simple; bh=hWUSnWCezH9mfGrMWx4gYIYBTCcx35gQ7PhGXSkQTQk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nDEct9BDEZ/zkUbh1n8KphxZJN3QIxYH5E2PQCHL/Fv0IJkKqsHX7ENvWbMB1zXZKEvWOPWrgN8Vh/4lVTf0mcX8mr7tjpiiEDzeCh3yJW6Wv058hnt0U8Ble8ULjQPnryrKIIFaSXqrIrDQFwDciAgqOPZ0rh+sFv2Qlffqf0c= 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=OAQ8dMzH; 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="OAQ8dMzH" Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5AJ0lHA0029377; Wed, 19 Nov 2025 12:46:19 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=bC4FT0prtpxQxyi9x Hnp6UaXiHLetQNiv/R773ks3pA=; b=OAQ8dMzHh1WG6JK0R4YRkNAM3xTM4OPLn 9Y/wilICRxQ5795BLFHy2Lqb5Nn7tagppg/d68QmIybPr2hnr/VOCHA/pFZowBBe jhELgCVtXofOzr7R+a5K+zhJi1AmBTFdn1gFny8Z7YHjJe81Dxt0HciJYx7mwmwQ ooCFqaG5QKR3TGm2C10gPdSBT0nPa+oG0a3DVjvT8HYOvM/ax2c3ilx6J0Gp7Go+ oNLSctcQY5cwaYUBhdvT7VFJB724uoGZLcut+FCnEkI4DiqlCgNkc+aBMGmdamWZ veNSqme6X/AbfefnvNi42deRlL20rk8QeqrTZAtPe7IcBCZxDo4sQ== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4aejmsqnwd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:46:19 +0000 (GMT) Received: from m0360072.ppops.net (m0360072.ppops.net [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5AJCSd1U027798; Wed, 19 Nov 2025 12:46:18 GMT 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 4aejmsqnw9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:46:18 +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 5AJB5GMQ010399; Wed, 19 Nov 2025 12:46:17 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4af3us8t4n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Nov 2025 12:46:17 +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 5AJCkEFf53281208 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Nov 2025 12:46:14 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 225FA20043; Wed, 19 Nov 2025 12:46:14 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 090FB20040; Wed, 19 Nov 2025 12:46:10 +0000 (GMT) Received: from li-7bb28a4c-2dab-11b2-a85c-887b5c60d769.ibm.com.com (unknown [9.39.25.220]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 19 Nov 2025 12:46:09 +0000 (GMT) From: Shrikanth Hegde To: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: sshegde@linux.ibm.com, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, tglx@linutronix.de, yury.norov@gmail.com, maddy@linux.ibm.com, srikar@linux.ibm.com, gregkh@linuxfoundation.org, 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, christophe.leroy@csgroup.eu Subject: [PATCH 17/17] sysfs: disable arch handling if paravirt file being written Date: Wed, 19 Nov 2025 18:14:49 +0530 Message-ID: <20251119124449.1149616-18-sshegde@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251119124449.1149616-1-sshegde@linux.ibm.com> References: <20251119124449.1149616-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-ORIG-GUID: x5LJNu6Qbo1I_UYAOc7fPZpkHAYagJJo X-Authority-Analysis: v=2.4 cv=Rv3I7SmK c=1 sm=1 tr=0 ts=691dbc1b cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=HHdVa3RH26sSkSPV0WkA:9 X-Proofpoint-GUID: AfLQ9MzG0B6_JDro4yvaQwjzqXTixpcf X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE1MDAzMiBTYWx0ZWRfX26W1vF/5BC1G U8aD8TDAL37MEiZ1tWo9oyuo0S4RErF44lj/uC6ICo7DtGnsuT5i2ZkJjwjSlAShsVpsZvvpvOd iMZbl0l2fljWCGGM6HRFF/LRExO3vp8Fo2Ga9HdtPM5V3KrqlxXrUVTVYHWmoK2Yn4D3AnPlTux dLiEQy6kXLvfQDgqR6MMSkocCG1rABp0QCuzKXK4jiknyOGZgYSv3vWZWCTKp3VIdmob1jeU4Fp fLmF9QGJk81AJ7Z7ahYlaC52YuTnm9rgna6i5Nggve+3PUu0yfg4vNRC/24twyFnzBjR1qXbr9w aLqKAd8rQHqyDX9hZlfIgORqRQrvVdoX8SEJ5oGendonuBUe4E6Q9YTUvks7oYTYUHWbVraRnQ7 wcEafw+8liXXScGfu1AVpswgA9Ahow== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-19_03,2025-11-18_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 clxscore=1015 phishscore=0 priorityscore=1501 spamscore=0 lowpriorityscore=0 impostorscore=0 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511150032 Content-Type: text/plain; charset="utf-8" Arch specific code can update the mask based on the steal time. For debugging it is desired to overwrite the arch logic. Do that with this debug patch. Signed-off-by: Shrikanth Hegde --- This isn't meant to be merged. It is debug patch helping the previous one for easier debugging. arch/powerpc/platforms/pseries/lpar.c | 3 +++ drivers/base/cpu.c | 2 ++ include/linux/sched.h | 4 ++++ kernel/sched/core.c | 1 + 4 files changed, 10 insertions(+) diff --git a/arch/powerpc/platforms/pseries/lpar.c b/arch/powerpc/platforms= /pseries/lpar.c index 090e5c48243b..04bc75e22e7b 100644 --- a/arch/powerpc/platforms/pseries/lpar.c +++ b/arch/powerpc/platforms/pseries/lpar.c @@ -681,6 +681,9 @@ static void process_steal(int cpu) unsigned long steal =3D 0; unsigned int i; =20 + if (static_branch_unlikely(&disable_arch_paravirt_handling)) + return; + if (!should_cpu_process_steal(cpu)) return; =20 diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c index 766584c85051..06a11a69b7c0 100644 --- a/drivers/base/cpu.c +++ b/drivers/base/cpu.c @@ -403,7 +403,9 @@ static ssize_t paravirt_store(struct device *dev, /* No more paravirt cpus */ if (cpumask_empty(temp_mask)) { cpumask_copy((struct cpumask *)&__cpu_paravirt_mask, temp_mask); + static_branch_disable(&disable_arch_paravirt_handling); } else { + static_branch_enable(&disable_arch_paravirt_handling); cpumask_copy((struct cpumask *)&__cpu_paravirt_mask, temp_mask); =20 /* Enable tick on nohz_full cpu */ diff --git a/include/linux/sched.h b/include/linux/sched.h index 3628edd1468b..1afa5dd5b0ae 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -2427,4 +2427,8 @@ extern void migrate_enable(void); =20 DEFINE_LOCK_GUARD_0(migrate, migrate_disable(), migrate_enable()) =20 +#ifdef CONFIG_PARAVIRT +DECLARE_STATIC_KEY_FALSE(disable_arch_paravirt_handling); +#endif + #endif diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 65c247c24191..b65a9898c694 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -10873,6 +10873,7 @@ void sched_change_end(struct sched_change_ctx *ctx) #ifdef CONFIG_PARAVIRT struct cpumask __cpu_paravirt_mask __read_mostly; EXPORT_SYMBOL(__cpu_paravirt_mask); +DEFINE_STATIC_KEY_FALSE(disable_arch_paravirt_handling); =20 static DEFINE_PER_CPU(struct cpu_stop_work, pv_push_task_work); =20 --=20 2.47.3