Re: [PATCH] cgroup: Defer css percpu_ref kill on rmdir until cgroup is depopulated

From: kernel test robot

Date: Sun May 03 2026 - 18:46:06 EST


Hi Tejun,

kernel test robot noticed the following build errors:

[auto build test ERROR on tj-cgroup/for-next]
[also build test ERROR on linus/master next-20260430]
[cannot apply to v7.1-rc1]
[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/Tejun-Heo/cgroup-Defer-css-percpu_ref-kill-on-rmdir-until-cgroup-is-depopulated/20260503-165802
base: https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git for-next
patch link: https://lore.kernel.org/r/20260501022943.3714461-1-tj%40kernel.org
patch subject: [PATCH] cgroup: Defer css percpu_ref kill on rmdir until cgroup is depopulated
config: m68k-allmodconfig (https://download.01.org/0day-ci/archive/20260504/202605040655.KI0GsBVb-lkp@xxxxxxxxx/config)
compiler: m68k-linux-gcc (GCC) 15.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260504/202605040655.KI0GsBVb-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605040655.KI0GsBVb-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

kernel/cgroup/cgroup.c: In function 'cgroup_apply_control_disable':
>> kernel/cgroup/cgroup.c:3391:33: error: implicit declaration of function 'kill_css_sync'; did you mean 'kill_fasync'? [-Wimplicit-function-declaration]
3391 | kill_css_sync(css);
| ^~~~~~~~~~~~~
| kill_fasync
>> kernel/cgroup/cgroup.c:3392:33: error: implicit declaration of function 'kill_css_finish' [-Wimplicit-function-declaration]
3392 | kill_css_finish(css);
| ^~~~~~~~~~~~~~~
kernel/cgroup/cgroup.c: At top level:
kernel/cgroup/cgroup.c:6047:13: warning: conflicting types for 'kill_css_sync'; have 'void(struct cgroup_subsys_state *)'
6047 | static void kill_css_sync(struct cgroup_subsys_state *css)
| ^~~~~~~~~~~~~
>> kernel/cgroup/cgroup.c:6047:13: error: static declaration of 'kill_css_sync' follows non-static declaration
kernel/cgroup/cgroup.c:3391:33: note: previous implicit declaration of 'kill_css_sync' with type 'void(struct cgroup_subsys_state *)'
3391 | kill_css_sync(css);
| ^~~~~~~~~~~~~
kernel/cgroup/cgroup.c:6087:13: warning: conflicting types for 'kill_css_finish'; have 'void(struct cgroup_subsys_state *)'
6087 | static void kill_css_finish(struct cgroup_subsys_state *css)
| ^~~~~~~~~~~~~~~
>> kernel/cgroup/cgroup.c:6087:13: error: static declaration of 'kill_css_finish' follows non-static declaration
kernel/cgroup/cgroup.c:3392:33: note: previous implicit declaration of 'kill_css_finish' with type 'void(struct cgroup_subsys_state *)'
3392 | kill_css_finish(css);
| ^~~~~~~~~~~~~~~


vim +3391 kernel/cgroup/cgroup.c

3359
3360 /**
3361 * cgroup_apply_control_disable - kill or hide csses according to control
3362 * @cgrp: root of the target subtree
3363 *
3364 * Walk @cgrp's subtree and kill and hide csses so that they match
3365 * cgroup_ss_mask() and cgroup_visible_mask().
3366 *
3367 * A css is hidden when the userland requests it to be disabled while other
3368 * subsystems are still depending on it. The css must not actively control
3369 * resources and be in the vanilla state if it's made visible again later.
3370 * Controllers which may be depended upon should provide ->css_reset() for
3371 * this purpose.
3372 */
3373 static void cgroup_apply_control_disable(struct cgroup *cgrp)
3374 {
3375 struct cgroup *dsct;
3376 struct cgroup_subsys_state *d_css;
3377 struct cgroup_subsys *ss;
3378 int ssid;
3379
3380 cgroup_for_each_live_descendant_post(dsct, d_css, cgrp) {
3381 for_each_subsys(ss, ssid) {
3382 struct cgroup_subsys_state *css = cgroup_css(dsct, ss);
3383
3384 if (!css)
3385 continue;
3386
3387 WARN_ON_ONCE(percpu_ref_is_dying(&css->refcnt));
3388
3389 if (css->parent &&
3390 !(cgroup_ss_mask(dsct) & (1 << ss->id))) {
> 3391 kill_css_sync(css);
> 3392 kill_css_finish(css);
3393 } else if (!css_visible(css)) {
3394 css_clear_dir(css);
3395 if (ss->css_reset)
3396 ss->css_reset(css);
3397 }
3398 }
3399 }
3400 }
3401

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki