From: K Prateek Nayak <kprateek.nayak@amd.com>
To: John Stultz <jstultz@google.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
Joel Fernandes <joelagnelf@nvidia.com>,
Qais Yousef <qyousef@layalina.io>, Ingo Molnar <mingo@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
Juri Lelli <juri.lelli@redhat.com>,
Vincent Guittot <vincent.guittot@linaro.org>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Valentin Schneider <vschneid@redhat.com>,
Steven Rostedt <rostedt@goodmis.org>,
Ben Segall <bsegall@google.com>,
Zimuzo Ezeozue <zezeozue@google.com>,
Mel Gorman <mgorman@suse.de>, Will Deacon <will@kernel.org>,
Waiman Long <longman@redhat.com>,
Boqun Feng <boqun.feng@gmail.com>,
"Paul E. McKenney" <paulmck@kernel.org>,
Metin Kaya <Metin.Kaya@arm.com>,
Xuewen Yan <xuewen.yan94@gmail.com>,
Thomas Gleixner <tglx@linutronix.de>,
"Daniel Lezcano" <daniel.lezcano@linaro.org>,
Suleiman Souhlal <suleiman@google.com>,
kuyo chang <kuyo.chang@mediatek.com>, hupu <hupu.gm@gmail.com>,
<kernel-team@android.com>
Subject: Re: [PATCH v23 6/9] sched: Handle blocked-waiter migration (and return migration)
Date: Thu, 20 Nov 2025 12:46:16 +0530 [thread overview]
Message-ID: <a9bed98e-0526-4f1b-908c-19ca1663f72f@amd.com> (raw)
In-Reply-To: <CANDhNCoOYLwwL8c6DRdKo6A39gZDv+bZ=+PdHADsV81Dda=diA@mail.gmail.com>
Hello John,
On 11/20/2025 12:03 PM, John Stultz wrote:
> On Wed, Nov 19, 2025 at 6:55 PM K Prateek Nayak <kprateek.nayak@amd.com> wrote:
>> On 11/20/2025 7:30 AM, John Stultz wrote:
>>>> Ok, so you're suggesting maybe putting the
>>>> if (task_on_rq_migrating(owner))
>>>> case ahead of the
>>>> if (owner_cpu != this_cpu)
>>>> check?
>>>>
>>>> Let me give that a whirl and see how it does.
>>>
>>> That said, thinking another second on it, I also realize once we
>>> decide to proxy_migrate, there is always the chance the owner gets
>>> migrated somewhere else. So we can check task_on_rq_migrating() but
>>> then right after we check that it might be migrated, and we can't
>>> really prevent this. And in that case, doing the proxy-migration to
>>> the wrong place will be ok, as that cpu will then bounce the tasks to
>>> the owner's new cpu.
>>>
>>> Hopefully this would be rare though. :)
>>
>> Ack! I was just thinking of some extreme scenarios. We can probably
>> think about it if and when we run into a problem with it :)
>>
>> That said, once we decide to move the first donors to owner's CPU
>> should we task some care to retain the owner on the same CPU as much
>> as possible - take it out of the purview of load balancing and only
>> move it if the owner is no long runnable on that CPU as a result of
>> affinity changes?
>
> Eh, I'm hesitant to muck with the balancing effects on the lock
> owners. If it's better for them to move around, then the donor chain
> should follow along (which will happen naturally).
So assume the case where you have the owner and a bunch of blocked
donor on the same rq. This rq appears the busiest to the load balancer.
Load balancer go thorough the task list and find that almost
everything is blocked on the owner. Then it arrives at the owner in a
preempted state (queued; not running) and thinks this is a good enough
task to move to reduce imbalance.
Now, this triggers a whole chain migration at pick for all the blocked
donors to the new CPU. Seems wasteful (although again this is a very
unlikely scenario to not be on_cpu with so many donors on the CPU)
>
> Now, the donors (or really any blocked tasks on the rq) we avoid
> adding to any movable lists, since we only want proxy-migrations to
> move those tasks (so they stick to the owner).
--
Thanks and Regards,
Prateek
next prev parent reply other threads:[~2025-11-20 7:16 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-30 0:18 [PATCH v23 0/9] Donor Migration for Proxy Execution (v23) John Stultz
2025-10-30 0:18 ` [PATCH v23 1/9] locking: Add task::blocked_lock to serialize blocked_on state John Stultz
2025-10-30 0:18 ` [PATCH v23 2/9] sched: Fix modifying donor->blocked on without proper locking John Stultz
2025-10-30 4:51 ` K Prateek Nayak
2025-10-30 23:42 ` John Stultz
2025-10-30 0:18 ` [PATCH v23 3/9] sched/locking: Add special p->blocked_on==PROXY_WAKING value for proxy return-migration John Stultz
2025-10-30 7:32 ` K Prateek Nayak
2025-10-30 23:53 ` John Stultz
2025-10-30 0:18 ` [PATCH v23 4/9] sched: Add assert_balance_callbacks_empty helper John Stultz
2025-10-30 7:38 ` K Prateek Nayak
2025-10-30 0:18 ` [PATCH v23 5/9] sched: Add logic to zap balance callbacks if we pick again John Stultz
2025-10-30 8:08 ` K Prateek Nayak
2025-10-31 3:15 ` John Stultz
2025-10-31 3:50 ` K Prateek Nayak
2025-10-30 0:18 ` [PATCH v23 6/9] sched: Handle blocked-waiter migration (and return migration) John Stultz
2025-10-30 9:32 ` K Prateek Nayak
2025-11-07 23:18 ` John Stultz
2025-11-10 4:47 ` K Prateek Nayak
2025-11-20 1:53 ` John Stultz
2025-11-20 2:00 ` John Stultz
2025-11-20 2:55 ` K Prateek Nayak
2025-11-20 6:33 ` John Stultz
2025-11-20 7:16 ` K Prateek Nayak [this message]
2025-11-20 7:27 ` John Stultz
2025-11-07 15:19 ` Juri Lelli
2025-11-07 17:24 ` John Stultz
2025-10-30 0:18 ` [PATCH v23 7/9] sched: Have try_to_wake_up() handle return-migration for PROXY_WAKING case John Stultz
2025-10-31 4:27 ` K Prateek Nayak
2025-11-20 1:05 ` John Stultz
2025-11-20 3:15 ` K Prateek Nayak
2025-11-20 7:34 ` John Stultz
2025-10-30 0:18 ` [PATCH v23 8/9] sched: Add blocked_donor link to task for smarter mutex handoffs John Stultz
2025-10-31 5:01 ` K Prateek Nayak
2025-11-11 7:50 ` John Stultz
2025-11-11 8:35 ` K Prateek Nayak
2025-10-30 0:18 ` [PATCH v23 9/9] sched: Migrate whole chain in proxy_migrate_task() John Stultz
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=a9bed98e-0526-4f1b-908c-19ca1663f72f@amd.com \
--to=kprateek.nayak@amd.com \
--cc=Metin.Kaya@arm.com \
--cc=boqun.feng@gmail.com \
--cc=bsegall@google.com \
--cc=daniel.lezcano@linaro.org \
--cc=dietmar.eggemann@arm.com \
--cc=hupu.gm@gmail.com \
--cc=joelagnelf@nvidia.com \
--cc=jstultz@google.com \
--cc=juri.lelli@redhat.com \
--cc=kernel-team@android.com \
--cc=kuyo.chang@mediatek.com \
--cc=linux-kernel@vger.kernel.org \
--cc=longman@redhat.com \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=paulmck@kernel.org \
--cc=peterz@infradead.org \
--cc=qyousef@layalina.io \
--cc=rostedt@goodmis.org \
--cc=suleiman@google.com \
--cc=tglx@linutronix.de \
--cc=vincent.guittot@linaro.org \
--cc=vschneid@redhat.com \
--cc=will@kernel.org \
--cc=xuewen.yan94@gmail.com \
--cc=zezeozue@google.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