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