Linux Documentation
 help / color / mirror / Atom feed
From: Shrikanth Hegde <sshegde@linux.ibm.com>
To: Mete Durlu <meted@linux.ibm.com>, Yury Norov <ynorov@nvidia.com>,
	"Ionut Nechita (Sunlight Linux)" <sunlightlinux@gmail.com>
Cc: arighi@nvidia.com, chleroy@kernel.org, christian.loehle@arm.com,
	corbet@lwn.net, dietmar.eggemann@arm.com,
	gregkh@linuxfoundation.org, hdanton@sina.com,
	huschle@linux.ibm.com, iii@linux.ibm.com, jgross@suse.com,
	juri.lelli@redhat.com, kernellwp@gmail.com,
	kprateek.nayak@amd.com, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, maddy@linux.ibm.com,
	maz@kernel.org, mingo@kernel.org, pauld@redhat.com,
	pbonzini@redhat.com, peterz@infradead.org, rafael@kernel.org,
	rdunlap@infradead.org, rostedt@goodmis.org, seanjc@google.com,
	tglx@kernel.org, tj@kernel.org, tommaso.cucinotta@gmail.com,
	vincent.guittot@linaro.org, vineeth@bitbyteword.org,
	virtualization@lists.linux.dev, vschneid@redhat.com,
	yury.norov@gmail.com, frederic@kernel.org
Subject: Re: [PATCH] Re: [PATCH v10 00/12] sched, steal_governor: Introduce preferred CPUs and steal-driven vCPU backoff
Date: Fri, 14 Aug 2026 16:38:58 +0530	[thread overview]
Message-ID: <78ded4e9-d771-40a0-b28c-3ec984f6b5d0@linux.ibm.com> (raw)
In-Reply-To: <3668e964-4605-43e6-b528-07aa74dc231e@linux.ibm.com>

Hi Mete,

On 8/14/26 2:52 PM, Mete Durlu wrote:
> On 13/08/2026 13:12, Shrikanth Hegde wrote:
>> Hi Mete, Thanks for going through the patches/discussions.
>>
>> On 8/13/26 12:20 PM, Mete Durlu wrote:
> 
> ...
> 
>>>
>>> I think all of these points can be addressed better if
>>> Xen used said framework and implemented their own governor
>>> module. That way we wouldn't see an overinflated single
>>> steal_governor but instead nicely separated arch/platform
>>> specific ones, that are tailored best for their needs.
>>> The current implementation could be the fallback option
>>> if platform does not implement their own and would also
>>> serve as an example.
>>
>> For now, I prefer adding a defensive check for dom0
>> and keep the driver simple.
> 
> Fair enough.
> 
> ...
>> I prefer we defer the arch specific hooks for now, until there is a 
>> need for one. If you guys insist it should be done, then i can start 
>> looking at cpuidle framework. But it will be a bigger rework.
> 
> s390 plans to adopt and start using the preferred CPU approach along

That's nice. I am happy to hear that it will come in soon.

> with the governor. The concern is that there are some enhancements
> planned which would not really fit into the current governor.
> 

> Later on, s390 will probably introduce its own governor module and
> for that I was hoping that there would be a framework similar to
> cpuidle drivers.
> 


I was skimming through cpuidle logic. The problem with steal_governor is that,
it is not a built in module. For loadable modules, core_initcall and
device_initcall will evaluate to the same thing,
which makes a direct cpuidle-like approach tricky.

However, as you mentioned, we just need a common infrastructure for the
init/exit/methods leaving the decision-making to the arch.
I've thought of a few ways we can cleanly pull this off post-merge:

1. ifdefs and ops function pointers:
   We define a struct of function pointers and a bit ifdefs for init etc.
   The core initializes ops to default or s390 depending on the config.

2. __weak Functions:
   We define the main routines as __weak and let s390 simply override them.
   This is the lowest boilerplate, though its usage is not preferred.

3. Multiple Modules (The cpuidle module approach):
   We split it into steal_governor_core.ko and steal_governor_s390.ko.
   The core exports a steal_governor_register_driver() symbol, and the
   s390 module registers its specific ops when loaded.
   However, this would still need elements of the first approach to
   handle Dom0-like cases natively.

Depending on users and adoption of the feature by different archs,
we can go about it which is more appropriate.


> What I mean essentially is a common infrastructure to initialize
> the basics required for the preferred CPUs management and maybe
> the update loop mechanism. That should ideally leave just the
> decision making part to the individual arch/platform to implement.
> I imagine the whole thing being much more simpler than cpuidle
> drivers as it had a lot more moving parts involved.
> 
> ...
> 
>> If the driver eventually outgrows a single file, we can work on a 
>> modular framework post-merge. But for now, let's keep it simple and 
>> get the simple version upstream.
> 
> I understand the concern and I think it's the right approach to keep
> it simple initially.

Thanks. Yes. Lets keep it simple for now.

Once this series is merged, We can work out the
framework for s390-specific enhancements.

> 
> Thank you!
> 

PS: I will wait for few days to hear from Ionut/Yury on the patch addressing
all the comments. If i don't hear anything back, i will post v11 next week.

  reply	other threads:[~2026-08-14 11:09 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-12  5:40 [PATCH v10 00/12] sched, steal_governor: Introduce preferred CPUs and steal-driven vCPU backoff Shrikanth Hegde
2026-08-12  5:40 ` [PATCH v10 01/12] sched/cputime: Add kcpustat_field_total helper Shrikanth Hegde
2026-08-12 18:44   ` Yury Norov
2026-08-14  9:04   ` Mete Durlu
2026-08-12  5:40 ` [PATCH v10 02/12] sched/docs: Document cpu_preferred_mask and Preferred CPU concept Shrikanth Hegde
2026-08-12  5:40 ` [PATCH v10 03/12] cpumask: Introduce cpu_preferred_mask Shrikanth Hegde
2026-08-12  5:40 ` [PATCH v10 04/12] sysfs: Add preferred CPU file Shrikanth Hegde
2026-08-12  5:40 ` [PATCH v10 05/12] sched/core: Try to use a preferred CPU in is_cpu_allowed Shrikanth Hegde
2026-08-12  5:40 ` [PATCH v10 06/12] sched/fair: Load balance only among preferred CPUs Shrikanth Hegde
2026-08-12  5:40 ` [PATCH v10 07/12] sched/core: Push current task from non preferred CPU Shrikanth Hegde
2026-08-12  5:40 ` [PATCH v10 08/12] sched/debug: Add migration stats due to non preferred CPUs Shrikanth Hegde
2026-08-12  5:40 ` [PATCH v10 09/12] virt: Introduce steal governor driver Shrikanth Hegde
2026-08-12  5:40 ` [PATCH v10 10/12] virt/steal_governor: Add control knobs for handling steal values Shrikanth Hegde
2026-08-12  5:40 ` [PATCH v10 11/12] virt/steal_governor: Implement steal_governor policy loop Shrikanth Hegde
2026-08-12  5:40 ` [PATCH v10 12/12] virt/steal_governor: Enable the driver Shrikanth Hegde
2026-08-12 19:45 ` [PATCH] Re: [PATCH v10 00/12] sched, steal_governor: Introduce preferred CPUs and steal-driven vCPU backoff Ionut Nechita (Sunlight Linux)
2026-08-13  0:13   ` Yury Norov
2026-08-13  6:50     ` Mete Durlu
2026-08-13 11:12       ` Shrikanth Hegde
2026-08-14  9:22         ` Mete Durlu
2026-08-14 11:08           ` Shrikanth Hegde [this message]
2026-08-13 10:56     ` Shrikanth Hegde

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=78ded4e9-d771-40a0-b28c-3ec984f6b5d0@linux.ibm.com \
    --to=sshegde@linux.ibm.com \
    --cc=arighi@nvidia.com \
    --cc=chleroy@kernel.org \
    --cc=christian.loehle@arm.com \
    --cc=corbet@lwn.net \
    --cc=dietmar.eggemann@arm.com \
    --cc=frederic@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hdanton@sina.com \
    --cc=huschle@linux.ibm.com \
    --cc=iii@linux.ibm.com \
    --cc=jgross@suse.com \
    --cc=juri.lelli@redhat.com \
    --cc=kernellwp@gmail.com \
    --cc=kprateek.nayak@amd.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maddy@linux.ibm.com \
    --cc=maz@kernel.org \
    --cc=meted@linux.ibm.com \
    --cc=mingo@kernel.org \
    --cc=pauld@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rafael@kernel.org \
    --cc=rdunlap@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=seanjc@google.com \
    --cc=sunlightlinux@gmail.com \
    --cc=tglx@kernel.org \
    --cc=tj@kernel.org \
    --cc=tommaso.cucinotta@gmail.com \
    --cc=vincent.guittot@linaro.org \
    --cc=vineeth@bitbyteword.org \
    --cc=virtualization@lists.linux.dev \
    --cc=vschneid@redhat.com \
    --cc=ynorov@nvidia.com \
    --cc=yury.norov@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox