Re: [PATCH 3/4 v2] cgroup: separate rstat locks for subsystems

kernel test robot
2025-03-01T23:01:12Z

Hi inwardvessel,

kernel test robot noticed the following build errors:

[auto build test ERROR on bpf-next/net]
[also build test ERROR on bpf-next/master bpf/master linus/master v6.14-rc4]
[cannot apply to tj-cgroup/for-next next-20250228]
[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/inwardvessel/cgroup-move-cgroup_rstat-from-cgroup-to-cgroup_subsys_state/20250228-055819
base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git net
patch link: https://lore.kernel.org/r/20250227215543.49928-4-inwardvessel%40gmail.com
patch subject: [PATCH 3/4 v2] cgroup: separate rstat locks for subsystems
config: hexagon-randconfig-001-20250302 (https://download.01.org/0day-ci/archive/20250302/202503020616.SJVwhuOV-lkp@intel.com/config)
compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project 14170b16028c087ca154878f5ed93d3089a965c6)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250302/202503020616.SJVwhuOV-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503020616.SJVwhuOV-lkp@intel.com/

All errors (new ones prefixed by >>):

>> kernel/cgroup/rstat.c:339:2: error: member reference base type 'spinlock_t *' (aka 'struct spinlock *') is not a structure or union
339 | lockdep_assert_held(&lock);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/lockdep.h:285:17: note: expanded from macro 'lockdep_assert_held'
285 | lockdep_assert(lockdep_is_held(l) != LOCK_STATE_NOT_HELD)
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/lockdep.h:252:52: note: expanded from macro 'lockdep_is_held'
252 | #define lockdep_is_held(lock) lock_is_held(&(lock)->dep_map)
| ^ ~~~~~~~
include/linux/lockdep.h:279:32: note: expanded from macro 'lockdep_assert'
279 | do { WARN_ON(debug_locks && !(cond)); } while (0)
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
include/asm-generic/bug.h:123:25: note: expanded from macro 'WARN_ON'
123 | int __ret_warn_on = !!(condition); \
| ^~~~~~~~~
1 error generated.

vim +339 kernel/cgroup/rstat.c

330
331 /* see cgroup_rstat_flush() */
332 static void cgroup_rstat_flush_locked(struct cgroup_subsys_state *css,
333 spinlock_t *lock)
334 __releases(lock) __acquires(lock)
335 {
336 struct cgroup *cgrp = css->cgroup;
337 int cpu;
338
> 339 lockdep_assert_held(&lock);
340
341 for_each_possible_cpu(cpu) {
342 struct cgroup_subsys_state *pos;
343
344 pos = cgroup_rstat_updated_list(css, cpu);
345 for (; pos; pos = pos->rstat_flush_next) {
346 if (!pos->ss)
347 cgroup_base_stat_flush(pos->cgroup, cpu);
348 else
349 pos->ss->css_rstat_flush(pos, cpu);
350
351 bpf_rstat_flush(pos->cgroup, cgroup_parent(pos->cgroup), cpu);
352 }
353
354 /* play nice and yield if necessary */
355 if (need_resched() || spin_needbreak(lock)) {
356 __cgroup_rstat_unlock(lock, cgrp, cpu);
357 if (!cond_resched())
358 cpu_relax();
359 __cgroup_rstat_lock(lock, cgrp, cpu);
360 }
361 }
362 }
363

--
0-DAY CI Kernel Test Service