mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: wanglu15 <wanglu.priv@gmail.com>
To: tim.c.chen@linux.intel.com
Cc: yu.c.chen@intel.com, peterz@infradead.org, mingo@redhat.com,
	juri.lelli@redhat.com, vincent.guittot@linaro.org,
	dietmar.eggemann@arm.com, rostedt@goodmis.org,
	bsegall@google.com, mgorman@suse.de, vschneid@redhat.com,
	kprateek.nayak@amd.com, linux-kernel@vger.kernel.org,
	chen.yu@linux.dev, Lu Wang <wanglu.priv@gmail.com>
Subject: Re: [PATCH] sched/cache: honor migrate_llc_task semantics in active load balance
Date: Wed,  5 Aug 2026 10:38:45 +0800	[thread overview]
Message-ID: <20260805023845.4040148-1-wanglu15@lixiang.com> (raw)
In-Reply-To: <2b23308912135b92e8f10e1b8909c89d8b46f41b.camel@linux.intel.com>

From: Lu Wang <wanglu.priv@gmail.com>

Thanks, Tim.

On Tue, 2026-08-04 at 12:42 -0700, Tim Chen wrote:
> On Tue, 2026-08-04 at 23:07 +0800, Lu Wang wrote:
> > Thanks, Chenyu.
> >
> > On Tue, 2026-08-04 at 16:17 +0800, Chen, Yu C wrote:
> > > Yes. Besides, if I understand correctly, I suppose Lu Wang was
> > > referring to the following scenario:
> > >
> > > src_rq has 2 runnable tasks, p1 and p2. p1 prefers dst_rq (dst_llc),
> > > while p2 prefers src_rq (src_llc). In this case, migrate_llc_task is
> > > set because src_rq has at least one task, p1, that wants to migrate
> > > to dst_rq. In ALB, can_migrate_task() found p2 and returns true for p2
> > > thus moves p2 out of its preferred LLC.
> >
> > That's exactly the scenario I had in mind.
> >
> > > Firstly, before ALB is triggered, the generic (passive) load balance is
> > > triggered. It iterates over p1 and p2 on src_rq to see if it can move any
> > > one of them to dst_rq, and in most cases it succeeds in moving p1 to
> > > dst_cpu. As a result, ALB will not be triggered.
> >
> > My question is whether p1 is guaranteed to be moved out in passive
> > LB. can_migrate_task()/migrate_degrades_llc() can reject p1 for
> > several independent reasons — p1 pinned by cpus_ptr, p1 cache-hot
> > with nr_balance_failed still below cache_nice_tries, or
> > can_migrate_llc_task() returning something other than mig_forbid due
> > to capacity constraints on dst_llc at that instant. If passive LB
> > rejects p1 for any of these, ALB is still triggered with p1 and p2
> > both present on src_rq.
> >
> > Can we conclude that p1 and p2 never end up on src_rq together when
> > ALB fires? Or would it help to set up a simple experiment and trace
> > this path to see whether it actually occurs in practice?
>
> With 2 tasks on rq with different preference, active load balance could
> pick the wrong task as can_migrate_task() checked in active load balance
> will not consult migrate_degrades_llc().  How about the following patch
> to fix this issue.
>
> [...]
>
> + if (env->migration_type == migrate_llc_task &&
> +     env->src_rq->cfs.h_nr_runnable > 1)
> +         return true;
> +
>   return false;
> }

Your approach is simpler than mine — it avoids threading
migration_type across the CPU stopper boundary and doesn't need any
new rq field.

One thing I'd like to flag, IMO: this approach skips the ALB path
entirely for migrate_llc_task whenever more than one task is
runnable, deferring the fix to the next passive LB pass. So it
trades "delay" for a simpler implementation.

Wang

  reply	other threads:[~2026-08-05  2:38 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-01 12:22 Lu Wang
2026-08-03  4:20 ` Chen, Yu C
2026-08-03 10:02   ` Lu Wang
2026-08-04  0:10     ` Tim Chen
2026-08-04  8:17       ` Chen, Yu C
2026-08-04 15:07         ` Lu Wang
2026-08-04 19:42           ` Tim Chen
2026-08-05  2:38             ` wanglu15 [this message]
2026-08-05 16:04               ` Tim Chen
2026-08-05 16:43                 ` Chen, Yu C
2026-08-06 16:21                   ` Tim Chen
2026-08-04  8:30       ` Lu Wang
2026-08-06 15:35 ` Chen, Yu C
2026-08-06 17:22   ` Tim Chen
2026-08-07  6:48     ` Chen, Yu C
2026-08-07  9:58       ` Lu Wang
2026-08-09 10:53 ` [PATCH v2] " Lu Wang
2026-08-10 20:56   ` Tim Chen
2026-08-11 10:23   ` Chen, Yu C
2026-08-11 16:10     ` Lu Wang
  -- strict thread matches above, loose matches on Subject: below --
2026-08-01 12:17 [PATCH] " Lu Wang

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=20260805023845.4040148-1-wanglu15@lixiang.com \
    --to=wanglu.priv@gmail.com \
    --cc=bsegall@google.com \
    --cc=chen.yu@linux.dev \
    --cc=dietmar.eggemann@arm.com \
    --cc=juri.lelli@redhat.com \
    --cc=kprateek.nayak@amd.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mgorman@suse.de \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=tim.c.chen@linux.intel.com \
    --cc=vincent.guittot@linaro.org \
    --cc=vschneid@redhat.com \
    --cc=yu.c.chen@intel.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

all inboxes | Powered by JetHome®