From: Dietmar Eggemann <dietmar.eggemann@arm.com>
To: Shijie Huang <shijie@amperemail.onmicrosoft.com>,
Huang Shijie <shijie@os.amperecomputing.com>,
mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com,
vincent.guittot@linaro.org
Cc: patches@amperecomputing.com, cl@linux.com,
Shubhang@os.amperecomputing.com, rostedt@goodmis.org,
bsegall@google.com, mgorman@suse.de,
linux-kernel@vger.kernel.org, vschneid@redhat.com,
vineethr@linux.ibm.com, kprateek.nayak@amd.com
Subject: Re: [PATCH v6 2/2] sched: update the rq->avg_idle when a task is moved to an idle CPU
Date: Wed, 17 Dec 2025 17:15:59 +0100 [thread overview]
Message-ID: <f898a0f0-8b77-4a71-be3b-c74267de0bde@arm.com> (raw)
In-Reply-To: <99c18623-4533-4dde-a765-ea43c85ee02f@amperemail.onmicrosoft.com>
On 15.12.25 10:35, Shijie Huang wrote:
>
> On 12/12/2025 22:22, Dietmar Eggemann wrote:
>>>> So you could move (1) back to (2) avoiding the 'if rq->idle_stamp' for
>>>> the sched_change pattern for instance?
>>> Could you please tell me what is "avoiding the 'if rq->idle_stamp' for
>>> the sched_change pattern" ?
>>>
>>> Sorry, I do not understand your meaning.
>> sched_change uses dequeue_task()/enqueue_task() for a queued task to
>> change prio, policy, sched params, taskgroups, etc.
>
> For sched_change, the dequeue_task()/enqueue_task() only work when
>
> the queued task has TASK_ON_RQ_QUEUED flags. The TASK_ON_RQ_QUEUED
>
> is set in activate_task().
I guess this was a misunderstanding. It works because of 'if
(rq->idle_stamp)' and setting 'rq->idle_stamp = 0' within the condition
but this condition isn't worth checking in certain places where we
actually call enqueue_task(). >
> 1.) For this active task, if the sched_change makes it dequeue_task()/
> enqueue_task() on
>
> current CPU, it's okay. Since current CPU is not in the newidle,
> the "rq->idle_stamp" is 0 at this case.
>
> This patch works fine.
>
>
> 2.) For this active task, if the sched_change makes it dequeue_task()/
> enqueue_task() on an another CPU,
>
> it's okay too.
>
> 2.1) If the another CPU's idle_stamp is 0, the another CPU is
> busy now.
>
> The sched_change works fine with this patch.
>
> 2.2) If the another CPU's idle_stamp is not 0, the sched_change
> also works fine with this patch.
>
> Since the sched_change is breaking the idle state of the
> another CPU by moving an active
>
> task to an idle CPU. It makes sense.
Not sure about this. I thought so far that the sched_change pattern is
doing a task dequeue + enqueue on the same CPU (this CPU or other)? So
you can't come out of idle here. We lock the rq before we call
scoped_guard (sched_change, ...)
I think Vincent is right by saying the update_rq_avg_idle() should be
put into put_prev_task_idle() instead.
Still waiting for the DCPerf Mediawiki test results to see if this
change fixes my 'rq->avg_idle being too big' issue.
next prev parent reply other threads:[~2025-12-17 16:16 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-09 9:45 [PATCH v6 0/2] " Huang Shijie
2025-12-09 9:45 ` [PATCH v6 1/2] sched/fair: set rq->idle_stamp at the end of the sched_balance_newidle Huang Shijie
2025-12-09 9:45 ` [PATCH v6 2/2] sched: update the rq->avg_idle when a task is moved to an idle CPU Huang Shijie
2025-12-11 16:15 ` Dietmar Eggemann
2025-12-12 3:16 ` Shijie Huang
2025-12-12 14:22 ` Dietmar Eggemann
2025-12-15 9:35 ` Shijie Huang
2025-12-17 16:15 ` Dietmar Eggemann [this message]
2026-01-07 15:48 ` Dietmar Eggemann
2026-01-09 13:33 ` Vincent Guittot
2025-12-13 1:36 ` Vincent Guittot
2025-12-16 6:22 ` Shijie Huang
2025-12-16 7:17 ` Vincent Guittot
2025-12-16 7:38 ` Shijie Huang
2025-12-16 8:47 ` Vincent Guittot
2025-12-16 9:49 ` Shijie Huang
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=f898a0f0-8b77-4a71-be3b-c74267de0bde@arm.com \
--to=dietmar.eggemann@arm.com \
--cc=Shubhang@os.amperecomputing.com \
--cc=bsegall@google.com \
--cc=cl@linux.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=patches@amperecomputing.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=shijie@amperemail.onmicrosoft.com \
--cc=shijie@os.amperecomputing.com \
--cc=vincent.guittot@linaro.org \
--cc=vineethr@linux.ibm.com \
--cc=vschneid@redhat.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®