Re: [PATCH 6/6] cgroup/cpuset: Iterate only if DEADLINE tasks are present
From: Qais Yousef
Date: Tue Apr 04 2023 - 16:06:32 EST
On 03/29/23 14:55, Juri Lelli wrote:
> update_tasks_root_domain currently iterates over all tasks even if no
> DEADLINE task is present on the cpuset/root domain for which bandwidth
> accounting is being rebuilt. This has been reported to introduce 10+ ms
> delays on suspend-resume operations.
>
> Skip the costly iteration for cpusets that don't contain DEADLINE tasks.
>
> Reported-by: Qais Yousef <qyousef@xxxxxxxxxxx>
> Link: https://lore.kernel.org/lkml/20230206221428.2125324-1-qyousef@xxxxxxxxxxx/
> Signed-off-by: Juri Lelli <juri.lelli@xxxxxxxxxx>
> ---
Wouldn't this be better placed as patch 4? The two fixes from Dietmar look
orthogonal to me to the accounting problem. But it seems the whole lot needs to
go to stable anyway, so good to keep them together. Should Dietmar fixes be at
the end instead of this?
Anyways.
Reviewed-by: Qais Yousef <qyousef@xxxxxxxxxxx>
Tested-by: Qais Yousef <qyousef@xxxxxxxxxxx>
Thanks
--
Qais Yousef
> kernel/cgroup/cpuset.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
> index f8ebec66da51..05c0a1255218 100644
> --- a/kernel/cgroup/cpuset.c
> +++ b/kernel/cgroup/cpuset.c
> @@ -1092,6 +1092,9 @@ static void dl_update_tasks_root_domain(struct cpuset *cs)
> struct css_task_iter it;
> struct task_struct *task;
>
> + if (cs->nr_deadline_tasks == 0)
> + return;
> +
> css_task_iter_start(&cs->css, 0, &it);
>
> while ((task = css_task_iter_next(&it)))
> --
> 2.39.2
>