Hi Yosry, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on bpf-next/master] url: https://github.com/intel-lab-lkp/linux/commits/Yosry-Ahmed/bpf-rstat-cgroup-hierarchical-stats/20220611-034720 base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master config: um-i386_defconfig (https://download.01.org/0day-ci/archive/20220611/202206110457.uD5lLvbh-lkp@xxxxxxxxx/config) compiler: gcc-11 (Debian 11.3.0-3) 11.3.0 reproduce (this is a W=1 build): # https://github.com/intel-lab-lkp/linux/commit/83f297e2b47dc41b511f071b9eadf38339387b41 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Yosry-Ahmed/bpf-rstat-cgroup-hierarchical-stats/20220611-034720 git checkout 83f297e2b47dc41b511f071b9eadf38339387b41 # save the config file mkdir build_dir && cp config build_dir/.config make W=1 O=build_dir ARCH=um SUBARCH=i386 SHELL=/bin/bash kernel/cgroup/ If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <lkp@xxxxxxxxx> All warnings (new ones prefixed by >>): >> kernel/cgroup/rstat.c:161:22: warning: no previous prototype for 'bpf_rstat_flush' [-Wmissing-prototypes] 161 | __weak noinline void bpf_rstat_flush(struct cgroup *cgrp, | ^~~~~~~~~~~~~~~ kernel/cgroup/rstat.c:509:10: error: 'const struct btf_kfunc_id_set' has no member named 'sleepable_set'; did you mean 'release_set'? 509 | .sleepable_set = &bpf_rstat_sleepable_kfunc_ids, | ^~~~~~~~~~~~~ | release_set >> kernel/cgroup/rstat.c:509:27: warning: excess elements in struct initializer 509 | .sleepable_set = &bpf_rstat_sleepable_kfunc_ids, | ^ kernel/cgroup/rstat.c:509:27: note: (near initialization for 'bpf_rstat_kfunc_set') vim +/bpf_rstat_flush +161 kernel/cgroup/rstat.c 148 149 /* 150 * A hook for bpf stat collectors to attach to and flush their stats. 151 * Together with providing bpf kfuncs for cgroup_rstat_updated() and 152 * cgroup_rstat_flush(), this enables a complete workflow where bpf progs that 153 * collect cgroup stats can integrate with rstat for efficient flushing. 154 * 155 * A static noinline declaration here could cause the compiler to optimize away 156 * the function. A global noinline declaration will keep the definition, but may 157 * optimize away the callsite. Therefore, __weak is needed to ensure that the 158 * call is still emitted, by telling the compiler that we don't know what the 159 * function might eventually be. 160 */ > 161 __weak noinline void bpf_rstat_flush(struct cgroup *cgrp, 162 struct cgroup *parent, int cpu) 163 { 164 } 165 -- 0-DAY CI Kernel Test Service https://01.org/lkp