[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <3ae07476-27b5-4d59-90ff-cb0bd70a491c@os.amperecomputing.com>
Date: Fri, 14 Mar 2025 10:53:40 +0800
From: Adam Li <adamli@...amperecomputing.com>
To: Madadi Vineeth Reddy <vineethr@...ux.ibm.com>
Cc: peterz@...radead.org, mingo@...hat.com, juri.lelli@...hat.com,
vincent.guittot@...aro.org, dietmar.eggemann@....com, rostedt@...dmis.org,
bsegall@...gle.com, mgorman@...e.de, vschneid@...hat.com,
linux-kernel@...r.kernel.org, patches@...erecomputing.com, cl@...ux.com,
christian.loehle@....com
Subject: Re: [PATCH v2 3/3] sched/fair: Update comments regarding last and
skip buddy
Reviewed-by: Adam Li <adamli@...amperecomputing.com>
Thanks,
-adam
On 3/13/2025 4:30 PM, Madadi Vineeth Reddy wrote:
> Hi Adam,
>
> On 27/11/24 11:26, Adam Li wrote:
>> Commit 5e963f2bd465 ("sched/fair: Commit to EEVDF") removed the "last"
>> and "skip" buddy. Update comments in pick_next_entity().
>>
>> Signed-off-by: Adam Li <adamli@...amperecomputing.com>
>> Reviewed-by: Madadi Vineeth Reddy <vineethr@...ux.ibm.com>
>> ---
>> kernel/sched/fair.c | 8 +-------
>> 1 file changed, 1 insertion(+), 7 deletions(-)
>>
>> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
>> index d5a3b5589e4e..259c56dcdff6 100644
>> --- a/kernel/sched/fair.c
>> +++ b/kernel/sched/fair.c
>> @@ -5602,17 +5602,11 @@ set_next_entity(struct cfs_rq *cfs_rq, struct sched_entity *se)
>>
>> static int dequeue_entities(struct rq *rq, struct sched_entity *se, int flags);
>>
>> -/*
>> - * Pick the next process, keeping these things in mind, in this order:
>> - * 1) keep things fair between processes/task groups
>> - * 2) pick the "next" process, since someone really wants that to run
>> - * 3) pick the "last" process, for cache locality
>> - * 4) do not run the "skip" process, if something else is available
>> - */
>> static struct sched_entity *
>> pick_next_entity(struct rq *rq, struct cfs_rq *cfs_rq)
>> {
>> /*
>> + * Pick the "next" buddy, since someone really wants that to run.
>> * Enabling NEXT_BUDDY will affect latency but not fairness.
>> */
>> if (sched_feat(NEXT_BUDDY) &&
>
> There is one more reference to LAST_BUDDY in check_preempt_wakeup_fair.
>
> Regarding pick_next_entity, the first two points are still valid, so only
> points 3 and 4 could be removed?
>
> Something like below
>
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index 9dafb374d76d..379dbcbb24e9 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -5578,8 +5578,6 @@ static int dequeue_entities(struct rq *rq, struct sched_entity *se, int flags);
> * Pick the next process, keeping these things in mind, in this order:
> * 1) keep things fair between processes/task groups
> * 2) pick the "next" process, since someone really wants that to run
> - * 3) pick the "last" process, for cache locality
> - * 4) do not run the "skip" process, if something else is available
> */
> static struct sched_entity *
> pick_next_entity(struct rq *rq, struct cfs_rq *cfs_rq)
> @@ -8780,9 +8778,7 @@ static void check_preempt_wakeup_fair(struct rq *rq, struct task_struct *p, int
> *
> * Note: this also catches the edge-case of curr being in a throttled
> * group (e.g. via set_curr_task), since update_curr() (in the
> - * enqueue of curr) will have resulted in resched being set. This
> - * prevents us from potentially nominating it as a false LAST_BUDDY
> - * below.
> + * enqueue of curr) will have resulted in resched being set.
> */
> if (test_tsk_need_resched(rq->curr))
> return;
>
> Thanks,
> Madadi Vineeth Reddy
Powered by blists - more mailing lists