2024-04-09 20:14:14

by Hongyan Xia

[permalink] [raw]
Subject: [PATCH] sched/fair: Fix wrong flag passed to set_rd_overutilized()

In update_sd_lb_stats(), sg_overloaded is passed to
set_rd_overutilized(). This seems to be a typo during refactoring, which
breaks many of my local EAS tests because overutilization is mistakenly
triggered.

This fix makes those EAS tests work again.

Signed-off-by: Hongyan Xia <[email protected]>

---
Hi Ingo,

Could you double check if this is the correct fix? Thank you.

---
kernel/sched/fair.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 1dd37168da50..bb1ae4ed0d91 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -10661,7 +10661,7 @@ static inline void update_sd_lb_stats(struct lb_env *env, struct sd_lb_stats *sd
set_rd_overloaded(env->dst_rq->rd, sg_overloaded);

/* Update over-utilization (tipping point, U >= 0) indicator */
- set_rd_overutilized(env->dst_rq->rd, sg_overloaded);
+ set_rd_overutilized(env->dst_rq->rd, sg_overutilized);
} else if (sg_overutilized) {
set_rd_overutilized(env->dst_rq->rd, sg_overutilized);
}
--
2.34.1



2024-04-10 06:12:31

by Shrikanth Hegde

[permalink] [raw]
Subject: Re: [PATCH] sched/fair: Fix wrong flag passed to set_rd_overutilized()



On 4/10/24 1:43 AM, Hongyan Xia wrote:
> In update_sd_lb_stats(), sg_overloaded is passed to
> set_rd_overutilized(). This seems to be a typo during refactoring, which
> breaks many of my local EAS tests because overutilization is mistakenly
> triggered.
>
> This fix makes those EAS tests work again.
>

Yes. This is a needed fix.

> Signed-off-by: Hongyan Xia <[email protected]>


FYI, Same patch has been posted by Vincent a week ago.
https://lore.kernel.org/all/[email protected]/


> ---
> Hi Ingo,
>
> Could you double check if this is the correct fix? Thank you.
>
> ---
> kernel/sched/fair.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index 1dd37168da50..bb1ae4ed0d91 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -10661,7 +10661,7 @@ static inline void update_sd_lb_stats(struct lb_env *env, struct sd_lb_stats *sd
> set_rd_overloaded(env->dst_rq->rd, sg_overloaded);
>
> /* Update over-utilization (tipping point, U >= 0) indicator */
> - set_rd_overutilized(env->dst_rq->rd, sg_overloaded);
> + set_rd_overutilized(env->dst_rq->rd, sg_overutilized);
> } else if (sg_overutilized) {
> set_rd_overutilized(env->dst_rq->rd, sg_overutilized);
> }

2024-04-10 08:01:32

by Hongyan Xia

[permalink] [raw]
Subject: Re: [PATCH] sched/fair: Fix wrong flag passed to set_rd_overutilized()

On 10/04/2024 07:11, Shrikanth Hegde wrote:
>
>
> On 4/10/24 1:43 AM, Hongyan Xia wrote:
>> In update_sd_lb_stats(), sg_overloaded is passed to
>> set_rd_overutilized(). This seems to be a typo during refactoring, which
>> breaks many of my local EAS tests because overutilization is mistakenly
>> triggered.
>>
>> This fix makes those EAS tests work again.
>>
>
> Yes. This is a needed fix.
>
>> Signed-off-by: Hongyan Xia <[email protected]>
>
>
> FYI, Same patch has been posted by Vincent a week ago.
> https://lore.kernel.org/all/[email protected]/

Thank you. Somehow I missed it in my inbox.