Re: [PATCH v2 1/3] sched/core: Accounting forceidle time for all tasks except idle task

From: Josh Don
Date: Tue Jan 11 2022 - 18:52:28 EST


On Tue, Jan 11, 2022 at 1:56 AM Cruz Zhao <CruzZhao@xxxxxxxxxxxxxxxxx> wrote:
>
> There are two types of forced idle time: forced idle time from cookie'd
> task and forced idle time form uncookie'd task. The forced idle time from
> uncookie'd task is actually caused by the cookie'd task in runqueue
> indirectly, and it's more accurate to measure the capacity loss with the
> sum of both.
>
> Assuming cpu x and cpu y are a pair of SMT siblings, consider the
> following scenarios:
> 1.There's a cookie'd task running on cpu x, and there're 4 uncookie'd
> tasks running on cpu y. For cpu x, there will be 80% forced idle time
> (from uncookie'd task); for cpu y, there will be 20% forced idle time
> (from cookie'd task).
> 2.There's a uncookie'd task running on cpu x, and there're 4 cookie'd
> tasks running on cpu y. For cpu x, there will be 80% forced idle time
> (from cookie'd task); for cpu y, there will be 20% forced idle time
> (from uncookie'd task).
>
> The scenario1 can recurrent by stress-ng(scenario2 can recurrent similary):
> (cookie'd)taskset -c x stress-ng -c 1 -l 100
> (uncookie'd)taskset -c y stress-ng -c 4 -l 100
>
> In the above two scenarios, the total capacity loss is 1 cpu, but in
> scenario1, the cookie'd forced idle time tells us 20% cpu capacity loss, in
> scenario2, the cookie'd forced idle time tells us 80% cpu capacity loss,
> which are not accurate. It'll be more accurate to measure with cookie'd
> forced idle time and uncookie'd forced idle time.
>
> Signed-off-by: Cruz Zhao <CruzZhao@xxxxxxxxxxxxxxxxx>
> ---

Thanks,

Reviewed-by: Josh Don <joshdon@xxxxxxxxxx>