Hi Josh, Thank you for the patch! Yet something to improve: [auto build test ERROR on tip/sched/core] [also build test ERROR on tip/master linus/master v6.1-rc1 next-20221019] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Josh-Don/sched-async-unthrottling-for-cfs-bandwidth/20221018-074836 patch link: https://lore.kernel.org/r/20221017234750.454419-1-joshdon%40google.com patch subject: [PATCH] sched: async unthrottling for cfs bandwidth config: x86_64-randconfig-a013 compiler: gcc-11 (Debian 11.3.0-8) 11.3.0 reproduce (this is a W=1 build): # https://github.com/intel-lab-lkp/linux/commit/2d8aac2b02e92a201802872a33cb4f1c46ee54b9 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Josh-Don/sched-async-unthrottling-for-cfs-bandwidth/20221018-074836 git checkout 2d8aac2b02e92a201802872a33cb4f1c46ee54b9 # save the config file mkdir build_dir && cp config build_dir/.config make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All errors (new ones prefixed by >>): kernel/sched/fair.c:672:5: warning: no previous prototype for 'sched_update_scaling' [-Wmissing-prototypes] 672 | int sched_update_scaling(void) | ^~~~~~~~~~~~~~~~~~~~ kernel/sched/fair.c: In function 'distribute_cfs_runtime': >> kernel/sched/fair.c:5236:42: error: 'struct cfs_rq' has no member named 'throttled_csd_list'; did you mean 'throttled_list'? 5236 | if (!list_empty(&cfs_rq->throttled_csd_list)) | ^~~~~~~~~~~~~~~~~~ | throttled_list kernel/sched/fair.c: In function 'destroy_cfs_bandwidth': >> kernel/sched/fair.c:5627:25: error: implicit declaration of function '__cfsb_csd_unthrottle' [-Werror=implicit-function-declaration] 5627 | __cfsb_csd_unthrottle(rq); | ^~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +5236 kernel/sched/fair.c 5213 5214 static bool distribute_cfs_runtime(struct cfs_bandwidth *cfs_b) 5215 { 5216 struct cfs_rq *cfs_rq; 5217 u64 runtime, remaining = 1; 5218 bool throttled = false; 5219 5220 rcu_read_lock(); 5221 list_for_each_entry_rcu(cfs_rq, &cfs_b->throttled_cfs_rq, 5222 throttled_list) { 5223 struct rq *rq = rq_of(cfs_rq); 5224 struct rq_flags rf; 5225 5226 if (!remaining) { 5227 throttled = true; 5228 break; 5229 } 5230 5231 rq_lock_irqsave(rq, &rf); 5232 if (!cfs_rq_throttled(cfs_rq)) 5233 goto next; 5234 5235 /* Already queued for async unthrottle */ > 5236 if (!list_empty(&cfs_rq->throttled_csd_list)) 5237 goto next; 5238 5239 /* By the above checks, this should never be true */ 5240 SCHED_WARN_ON(cfs_rq->runtime_remaining > 0); 5241 5242 raw_spin_lock(&cfs_b->lock); 5243 runtime = -cfs_rq->runtime_remaining + 1; 5244 if (runtime > cfs_b->runtime) 5245 runtime = cfs_b->runtime; 5246 cfs_b->runtime -= runtime; 5247 remaining = cfs_b->runtime; 5248 raw_spin_unlock(&cfs_b->lock); 5249 5250 cfs_rq->runtime_remaining += runtime; 5251 5252 /* we check whether we're throttled above */ 5253 if (cfs_rq->runtime_remaining > 0) 5254 unthrottle_cfs_rq_async(cfs_rq); 5255 5256 next: 5257 rq_unlock_irqrestore(rq, &rf); 5258 } 5259 rcu_read_unlock(); 5260 5261 return throttled; 5262 } 5263 -- 0-DAY CI Kernel Test Service https://01.org/lkp