Hi Mercier, kernel test robot noticed the following build warnings: [auto build test WARNING on 6fbf71854e2ddea7c99397772fbbb3783bfe15b5] url: https://github.com/intel-lab-lkp/linux/commits/T-J-Mercier/cgroup-Remove-nr_cgrps/20240529-004057 base: 6fbf71854e2ddea7c99397772fbbb3783bfe15b5 patch link: https://lore.kernel.org/r/20240528163750.2025330-1-tjmercier%40google.com patch subject: [PATCH 2/2] cgroup: Remove nr_cgrps config: arm64-defconfig (https://download.01.org/0day-ci/archive/20240529/202405290609.I4LQ4GZ3-lkp@xxxxxxxxx/config) compiler: aarch64-linux-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240529/202405290609.I4LQ4GZ3-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/202405290609.I4LQ4GZ3-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): kernel/cgroup/cgroup.c: In function 'cgroup_setup_root': >> kernel/cgroup/cgroup.c:2071:31: warning: variable 'ss' set but not used [-Wunused-but-set-variable] 2071 | struct cgroup_subsys *ss; | ^~ vim +/ss +2071 kernel/cgroup/cgroup.c 2065 2066 int cgroup_setup_root(struct cgroup_root *root, u16 ss_mask) 2067 { 2068 LIST_HEAD(tmp_links); 2069 struct cgroup *root_cgrp = &root->cgrp; 2070 struct kernfs_syscall_ops *kf_sops; > 2071 struct cgroup_subsys *ss; 2072 struct css_set *cset; 2073 int i, ret; 2074 2075 lockdep_assert_held(&cgroup_mutex); 2076 2077 ret = percpu_ref_init(&root_cgrp->self.refcnt, css_release, 2078 0, GFP_KERNEL); 2079 if (ret) 2080 goto out; 2081 2082 /* 2083 * We're accessing css_set_count without locking css_set_lock here, 2084 * but that's OK - it can only be increased by someone holding 2085 * cgroup_lock, and that's us. Later rebinding may disable 2086 * controllers on the default hierarchy and thus create new csets, 2087 * which can't be more than the existing ones. Allocate 2x. 2088 */ 2089 ret = allocate_cgrp_cset_links(2 * css_set_count, &tmp_links); 2090 if (ret) 2091 goto cancel_ref; 2092 2093 ret = cgroup_init_root_id(root); 2094 if (ret) 2095 goto cancel_ref; 2096 2097 kf_sops = root == &cgrp_dfl_root ? 2098 &cgroup_kf_syscall_ops : &cgroup1_kf_syscall_ops; 2099 2100 root->kf_root = kernfs_create_root(kf_sops, 2101 KERNFS_ROOT_CREATE_DEACTIVATED | 2102 KERNFS_ROOT_SUPPORT_EXPORTOP | 2103 KERNFS_ROOT_SUPPORT_USER_XATTR, 2104 root_cgrp); 2105 if (IS_ERR(root->kf_root)) { 2106 ret = PTR_ERR(root->kf_root); 2107 goto exit_root_id; 2108 } 2109 root_cgrp->kn = kernfs_root_to_node(root->kf_root); 2110 WARN_ON_ONCE(cgroup_ino(root_cgrp) != 1); 2111 root_cgrp->ancestors[0] = root_cgrp; 2112 2113 ret = css_populate_dir(&root_cgrp->self); 2114 if (ret) 2115 goto destroy_root; 2116 2117 ret = cgroup_rstat_init(root_cgrp); 2118 if (ret) 2119 goto destroy_root; 2120 2121 ret = rebind_subsystems(root, ss_mask); 2122 if (ret) 2123 goto exit_stats; 2124 2125 ret = cgroup_bpf_inherit(root_cgrp); 2126 WARN_ON_ONCE(ret); 2127 2128 trace_cgroup_setup_root(root); 2129 2130 /* 2131 * There must be no failure case after here, since rebinding takes 2132 * care of subsystems' refcounts, which are explicitly dropped in 2133 * the failure exit path. 2134 */ 2135 list_add_rcu(&root->root_list, &cgroup_roots); 2136 cgroup_root_count++; 2137 2138 /* 2139 * Link the root cgroup in this hierarchy into all the css_set 2140 * objects. 2141 */ 2142 spin_lock_irq(&css_set_lock); 2143 hash_for_each(css_set_table, i, cset, hlist) { 2144 link_css_set(&tmp_links, cset, root_cgrp); 2145 if (css_set_populated(cset)) 2146 cgroup_update_populated(root_cgrp, true); 2147 } 2148 spin_unlock_irq(&css_set_lock); 2149 2150 BUG_ON(!list_empty(&root_cgrp->self.children)); 2151 do_each_subsys_mask(ss, i, ss_mask) { 2152 BUG_ON(atomic_read(&root->nr_css[i]) != 1); 2153 } while_each_subsys_mask(); 2154 2155 ret = 0; 2156 goto out; 2157 2158 exit_stats: 2159 cgroup_rstat_exit(root_cgrp); 2160 destroy_root: 2161 kernfs_destroy_root(root->kf_root); 2162 root->kf_root = NULL; 2163 exit_root_id: 2164 cgroup_exit_root_id(root); 2165 cancel_ref: 2166 percpu_ref_exit(&root_cgrp->self.refcnt); 2167 out: 2168 free_cgrp_cset_links(&tmp_links); 2169 return ret; 2170 } 2171 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki