Re: [PATCH v3 0/6] sched/deadline: cpuset: Rework DEADLINE bandwidth restoration

From: Tejun Heo
Date: Mon May 08 2023 - 19:24:24 EST


On Mon, May 08, 2023 at 09:58:48AM +0200, Juri Lelli wrote:
> Qais reported [1] that iterating over all tasks when rebuilding root
> domains for finding out which ones are DEADLINE and need their bandwidth
> correctly restored on such root domains can be a costly operation (10+
> ms delays on suspend-resume). He proposed we skip rebuilding root
> domains for certain operations, but that approach seemed arch specific
> and possibly prone to errors, as paths that ultimately trigger a rebuild
> might be quite convoluted (thanks Qais for spending time on this!).
>
> This is v3 of an alternative approach (v2 at [4]) to fix the problem.
>
> 01/06 - Rename functions deadline with DEADLINE accounting (cleanup
> suggested by Qais) - no functional change
> 02/06 - Bring back cpuset_mutex (so that we have write access to cpusets
> from scheduler operations - and we also fix some problems
> associated to percpu_cpuset_rwsem)
> 03/06 - Keep track of the number of DEADLINE tasks belonging to each cpuset
> 04/06 - Use this information to only perform the costly iteration if
> DEADLINE tasks are actually present in the cpuset for which a
> corresponding root domain is being rebuilt
> 05/06 - Create DL BW alloc, free & check overflow interface for bulk
> bandwidth allocation/removal - no functional change
> 06/06 - Fix bandwidth allocation handling for cgroup operation
> involving multiple tasks
>
> With respect to the v2 posting [4]
>
> 1 - rebase on top of Linus' tree as of today (ac9a78681b92)
> 2 - add the 'why' to 5/6 changelog - Peter
> 3 - explicitly say that we need to keep cpuset_mutex a mutex for PI on
> 2/6 - Peter
>
> This set is also available from
>
> https://github.com/jlelli/linux.git deadline/rework-cpusets

Applied to cgroup/for-6.5.

Thanks.

--
tejun