From: Yury Norov <ynorov@nvidia.com>
To: Shrikanth Hegde <sshegde@linux.ibm.com>
Cc: linux-kernel@vger.kernel.org, mingo@kernel.org,
peterz@infradead.org, juri.lelli@redhat.com,
vincent.guittot@linaro.org, yury.norov@gmail.com,
kprateek.nayak@amd.com, iii@linux.ibm.com, corbet@lwn.net,
tglx@kernel.org, gregkh@linuxfoundation.org, pbonzini@redhat.com,
seanjc@google.com, vschneid@redhat.com, huschle@linux.ibm.com,
rostedt@goodmis.org, dietmar.eggemann@arm.com,
maddy@linux.ibm.com, srikar@linux.ibm.com, hdanton@sina.com,
chleroy@kernel.org, vineeth@bitbyteword.org, frederic@kernel.org,
arighi@nvidia.com, pauld@redhat.com, christian.loehle@arm.com,
tj@kernel.org, tommaso.cucinotta@gmail.com, maz@kernel.org,
rafael@kernel.org, rdunlap@infradead.org, kernellwp@gmail.com,
linux-doc@vger.kernel.org
Subject: Re: [PATCH v6 17/23] virt/steal_monitor: Provide default method to get systemwide steal time
Date: Mon, 6 Jul 2026 15:04:48 -0400 [thread overview]
Message-ID: <akv8UNpSfrrkH2aU@yury> (raw)
In-Reply-To: <8efa7a72-18c1-44b8-aaaf-80006a7c8fff@linux.ibm.com>
On Mon, Jul 06, 2026 at 02:17:15PM +0530, Shrikanth Hegde wrote:
>
>
> On 7/4/26 12:46 AM, Yury Norov wrote:
> > On Wed, Jul 01, 2026 at 07:46:48PM +0530, Shrikanth Hegde wrote:
> > > steal monitor takes global view of steal time instead of individual
> > > vCPU. For this collect overall steal values across all the vCPUs or
> > > vCPUs of interest.
> > >
> > > Default implementation chooses steal time across all active CPUs.
> > >
> > > Signed-off-by: Shrikanth Hegde <sshegde@linux.ibm.com>
> > > ---
> > > v5->v6:
> > > - Add cpus_read_lock() for hotplug safety
> > >
> > > drivers/virt/steal_monitor/Makefile | 2 +-
> > > drivers/virt/steal_monitor/defaults.c | 28 +++++++++++++++++++++++++++
> > > drivers/virt/steal_monitor/sm_core.h | 3 +++
> > > 3 files changed, 32 insertions(+), 1 deletion(-)
> > > create mode 100644 drivers/virt/steal_monitor/defaults.c
> > >
> > > diff --git a/drivers/virt/steal_monitor/Makefile b/drivers/virt/steal_monitor/Makefile
> > > index 24cee55342ce..7c16f8cf9583 100644
> > > --- a/drivers/virt/steal_monitor/Makefile
> > > +++ b/drivers/virt/steal_monitor/Makefile
> > > @@ -11,4 +11,4 @@
> > > #
> > > obj-$(subst y,m,$(CONFIG_PREFERRED_CPU)) += steal_monitor.o
> > > -steal_monitor-y := sm_core.o
> > > +steal_monitor-y := sm_core.o defaults.o
> > > diff --git a/drivers/virt/steal_monitor/defaults.c b/drivers/virt/steal_monitor/defaults.c
> > > new file mode 100644
> > > index 000000000000..6681f9938f6a
> > > --- /dev/null
> > > +++ b/drivers/virt/steal_monitor/defaults.c
> > > @@ -0,0 +1,28 @@
> > > +// SPDX-License-Identifier: GPL-2.0-only
> > > +/*
> > > + * Base file contains the default implementations.
> > > + * These are defined as __weak so that arch may define
> > > + * strong symbols to override.
> >
> > But there's no arch doing that, right? It looks like overcomplication
> > with no benefit.
> >
> > There's just ~50 drivers defining weak symbols, so this is not a
> > common practice. I think it would be much simpler for the arch people
> > to simply write their own driver controlling cpu_preferred_mask,
> > rather than tweaking your code.
> >
>
> s390 folks asked for explicit hooks since they have some of the info
> coming from HW w.r.t to vertical high/vertical low etc. So i have designed it that way.
> (I know code is not there yet)
>
> If each arch writes its own driver, wouldn't that lead to
> - code duplication as each arch more or less may have to do same.
> - each arch has to catch up any improvements that happens to default monitor.
> - each arch has to honor design construct and not violate it.
> - kconfig puzzles, to choose generic or arch specific ones etc.
That sounds reasonable and logically correct. But wait...
Why only 50 drivers play nasty __weak games? How all others handle
that? Maybe callbacks? Maybe hooks or function tables? Something else?
You started this as a small demonstration, now it more reminds
a framework enterprise solution. Which it isn't
> If it makes sense,
> - I can make it as strong symbols for now.
> - when the arch specific implementations arrive, can make it as
> __weak to accommodate that.
Please make the symbols all strong unless you actually have arch
implementation. If you think that weak functions is the best approach
for s390, feel free to provide such a patch as the very last in the
series, mentioning it's for those s390 people reference, not for
immediate imclusion.
Thanks,
Yury
next prev parent reply other threads:[~2026-07-06 19:04 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-01 14:16 [PATCH v6 00/23] sched: Introduce cpu_preferred_mask and steal-driven vCPU backoff Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 01/23] sched/docs: Document cpu_preferred_mask and Preferred CPU concept Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 02/23] kconfig: Provide PREFERRED_CPU option Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 03/23] cpumask: Introduce cpu_preferred_mask Shrikanth Hegde
2026-07-01 15:35 ` Yury Norov
2026-07-01 16:40 ` Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 04/23] sysfs: Add preferred CPU file Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 05/23] sched/core: Try to use a preferred CPU in is_cpu_allowed Shrikanth Hegde
2026-07-01 16:09 ` Yury Norov
2026-07-01 16:49 ` Shrikanth Hegde
2026-07-02 6:30 ` Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 06/23] sched/fair: Load balance only among preferred CPUs Shrikanth Hegde
2026-07-01 16:19 ` Yury Norov
2026-07-01 16:41 ` Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 07/23] sched/fair: Pull the load on preferred CPU Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 08/23] sched/core: Keep tick on non-preferred CPUs until tasks are out Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 09/23] sched/core: Push current task from non preferred CPU Shrikanth Hegde
2026-07-01 16:50 ` Yury Norov
2026-07-01 17:03 ` Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 10/23] sched/debug: Add migration stats due to non preferred CPUs Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 11/23] virt/steal_monitor: Add documentation Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 12/23] virt: Introduce steal monitor driver Shrikanth Hegde
2026-07-03 18:20 ` Yury Norov
2026-07-03 18:27 ` Yury Norov
2026-07-06 8:24 ` Shrikanth Hegde
2026-07-06 18:49 ` Yury Norov
2026-07-07 6:47 ` Shrikanth Hegde
2026-07-06 8:09 ` Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 13/23] virt/steal_monitor: Restore to active on module disable Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 14/23] virt/steal_monitor: Define steal_monitor structure Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 15/23] virt/steal_monitor: Add control knobs for handling steal values Shrikanth Hegde
2026-07-02 7:16 ` Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 16/23] virt/steal_monitor: Compute work at regular intervals Shrikanth Hegde
2026-07-03 18:14 ` Yury Norov
2026-07-06 8:38 ` Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 17/23] virt/steal_monitor: Provide default method to get systemwide steal time Shrikanth Hegde
2026-07-03 19:16 ` Yury Norov
2026-07-06 8:47 ` Shrikanth Hegde
2026-07-06 19:04 ` Yury Norov [this message]
2026-07-07 6:50 ` Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 18/23] virt/steal_monitor: Provide default method to inc/dec preferred CPUs Shrikanth Hegde
2026-07-03 21:11 ` Yury Norov
2026-07-06 9:20 ` Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 19/23] virt/steal_monitor: Provide default method to get num of CPUs for steal ratio Shrikanth Hegde
2026-07-06 19:26 ` Yury Norov
2026-07-07 6:55 ` Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 20/23] virt/steal_monitor: Act on steal values at regular intervals Shrikanth Hegde
2026-07-02 7:18 ` Shrikanth Hegde
2026-07-06 20:33 ` Yury Norov
2026-07-07 7:16 ` Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 21/23] virt/steal_monitor: Add direction control Shrikanth Hegde
2026-07-06 20:36 ` Yury Norov
2026-07-07 7:16 ` Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 22/23] virt/steal_monitor: Add design check of preferred subset of active Shrikanth Hegde
2026-07-01 14:16 ` [PATCH v6 23/23] virt/steal_monitor: Optimise decrease_preferred_cpus when all CPUs are housekeeping 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=akv8UNpSfrrkH2aU@yury \
--to=ynorov@nvidia.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=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=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=srikar@linux.ibm.com \
--cc=sshegde@linux.ibm.com \
--cc=tglx@kernel.org \
--cc=tj@kernel.org \
--cc=tommaso.cucinotta@gmail.com \
--cc=vincent.guittot@linaro.org \
--cc=vineeth@bitbyteword.org \
--cc=vschneid@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.