Re: [PATCH bpf-next v2 6/8] cgroup: bpf: enable bpf programs to integrate with rstat

kernel test robot
2022-06-10T20:52:06Z

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-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org/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-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>

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