Hi Martin, I love your patch! Perhaps something to improve: [auto build test WARNING on bpf-next/master] [cannot apply to bpf/master net/master v5.5-rc3 next-20191220] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Martin-KaFai-Lau/Introduce-BPF-STRUCT_OPS/20191224-085617 base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master config: s390-debug_defconfig (attached as .config) compiler: s390-linux-gcc (GCC) 7.5.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.5.0 make.cross ARCH=s390 If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@xxxxxxxxx> All warnings (new ones prefixed by >>): kernel/bpf/bpf_struct_ops.c: In function 'bpf_struct_ops_init': >> kernel/bpf/bpf_struct_ops.c:198:1: warning: the frame size of 1208 bytes is larger than 1024 bytes [-Wframe-larger-than=] } ^ vim +198 kernel/bpf/bpf_struct_ops.c d69ac27055a81d Martin KaFai Lau 2019-12-20 113 d69ac27055a81d Martin KaFai Lau 2019-12-20 114 module_id = btf_find_by_name_kind(_btf_vmlinux, "module", d69ac27055a81d Martin KaFai Lau 2019-12-20 115 BTF_KIND_STRUCT); d69ac27055a81d Martin KaFai Lau 2019-12-20 116 if (module_id < 0) { d69ac27055a81d Martin KaFai Lau 2019-12-20 117 pr_warn("Cannot find struct module in btf_vmlinux\n"); d69ac27055a81d Martin KaFai Lau 2019-12-20 118 return; d69ac27055a81d Martin KaFai Lau 2019-12-20 119 } d69ac27055a81d Martin KaFai Lau 2019-12-20 120 module_type = btf_type_by_id(_btf_vmlinux, module_id); d69ac27055a81d Martin KaFai Lau 2019-12-20 121 b14e6918483a61 Martin KaFai Lau 2019-12-20 122 for (i = 0; i < ARRAY_SIZE(bpf_struct_ops); i++) { b14e6918483a61 Martin KaFai Lau 2019-12-20 123 st_ops = bpf_struct_ops[i]; b14e6918483a61 Martin KaFai Lau 2019-12-20 124 d69ac27055a81d Martin KaFai Lau 2019-12-20 125 if (strlen(st_ops->name) + VALUE_PREFIX_LEN >= d69ac27055a81d Martin KaFai Lau 2019-12-20 126 sizeof(value_name)) { d69ac27055a81d Martin KaFai Lau 2019-12-20 127 pr_warn("struct_ops name %s is too long\n", d69ac27055a81d Martin KaFai Lau 2019-12-20 128 st_ops->name); d69ac27055a81d Martin KaFai Lau 2019-12-20 129 continue; d69ac27055a81d Martin KaFai Lau 2019-12-20 130 } d69ac27055a81d Martin KaFai Lau 2019-12-20 131 sprintf(value_name, "%s%s", VALUE_PREFIX, st_ops->name); d69ac27055a81d Martin KaFai Lau 2019-12-20 132 d69ac27055a81d Martin KaFai Lau 2019-12-20 133 value_id = btf_find_by_name_kind(_btf_vmlinux, value_name, d69ac27055a81d Martin KaFai Lau 2019-12-20 134 BTF_KIND_STRUCT); d69ac27055a81d Martin KaFai Lau 2019-12-20 135 if (value_id < 0) { d69ac27055a81d Martin KaFai Lau 2019-12-20 136 pr_warn("Cannot find struct %s in btf_vmlinux\n", d69ac27055a81d Martin KaFai Lau 2019-12-20 137 value_name); d69ac27055a81d Martin KaFai Lau 2019-12-20 138 continue; d69ac27055a81d Martin KaFai Lau 2019-12-20 139 } d69ac27055a81d Martin KaFai Lau 2019-12-20 140 b14e6918483a61 Martin KaFai Lau 2019-12-20 141 type_id = btf_find_by_name_kind(_btf_vmlinux, st_ops->name, b14e6918483a61 Martin KaFai Lau 2019-12-20 142 BTF_KIND_STRUCT); b14e6918483a61 Martin KaFai Lau 2019-12-20 143 if (type_id < 0) { b14e6918483a61 Martin KaFai Lau 2019-12-20 144 pr_warn("Cannot find struct %s in btf_vmlinux\n", b14e6918483a61 Martin KaFai Lau 2019-12-20 145 st_ops->name); b14e6918483a61 Martin KaFai Lau 2019-12-20 146 continue; b14e6918483a61 Martin KaFai Lau 2019-12-20 147 } b14e6918483a61 Martin KaFai Lau 2019-12-20 148 t = btf_type_by_id(_btf_vmlinux, type_id); b14e6918483a61 Martin KaFai Lau 2019-12-20 149 if (btf_type_vlen(t) > BPF_STRUCT_OPS_MAX_NR_MEMBERS) { b14e6918483a61 Martin KaFai Lau 2019-12-20 150 pr_warn("Cannot support #%u members in struct %s\n", b14e6918483a61 Martin KaFai Lau 2019-12-20 151 btf_type_vlen(t), st_ops->name); b14e6918483a61 Martin KaFai Lau 2019-12-20 152 continue; b14e6918483a61 Martin KaFai Lau 2019-12-20 153 } b14e6918483a61 Martin KaFai Lau 2019-12-20 154 b14e6918483a61 Martin KaFai Lau 2019-12-20 155 for_each_member(j, t, member) { b14e6918483a61 Martin KaFai Lau 2019-12-20 156 const struct btf_type *func_proto; b14e6918483a61 Martin KaFai Lau 2019-12-20 157 b14e6918483a61 Martin KaFai Lau 2019-12-20 158 mname = btf_name_by_offset(_btf_vmlinux, b14e6918483a61 Martin KaFai Lau 2019-12-20 159 member->name_off); b14e6918483a61 Martin KaFai Lau 2019-12-20 160 if (!*mname) { b14e6918483a61 Martin KaFai Lau 2019-12-20 161 pr_warn("anon member in struct %s is not supported\n", b14e6918483a61 Martin KaFai Lau 2019-12-20 162 st_ops->name); b14e6918483a61 Martin KaFai Lau 2019-12-20 163 break; b14e6918483a61 Martin KaFai Lau 2019-12-20 164 } b14e6918483a61 Martin KaFai Lau 2019-12-20 165 b14e6918483a61 Martin KaFai Lau 2019-12-20 166 if (btf_member_bitfield_size(t, member)) { b14e6918483a61 Martin KaFai Lau 2019-12-20 167 pr_warn("bit field member %s in struct %s is not supported\n", b14e6918483a61 Martin KaFai Lau 2019-12-20 168 mname, st_ops->name); b14e6918483a61 Martin KaFai Lau 2019-12-20 169 break; b14e6918483a61 Martin KaFai Lau 2019-12-20 170 } b14e6918483a61 Martin KaFai Lau 2019-12-20 171 b14e6918483a61 Martin KaFai Lau 2019-12-20 172 func_proto = btf_type_resolve_func_ptr(_btf_vmlinux, b14e6918483a61 Martin KaFai Lau 2019-12-20 173 member->type, b14e6918483a61 Martin KaFai Lau 2019-12-20 174 NULL); b14e6918483a61 Martin KaFai Lau 2019-12-20 175 if (func_proto && b14e6918483a61 Martin KaFai Lau 2019-12-20 176 btf_distill_func_proto(&log, _btf_vmlinux, b14e6918483a61 Martin KaFai Lau 2019-12-20 177 func_proto, mname, b14e6918483a61 Martin KaFai Lau 2019-12-20 178 &st_ops->func_models[j])) { b14e6918483a61 Martin KaFai Lau 2019-12-20 179 pr_warn("Error in parsing func ptr %s in struct %s\n", b14e6918483a61 Martin KaFai Lau 2019-12-20 180 mname, st_ops->name); b14e6918483a61 Martin KaFai Lau 2019-12-20 181 break; b14e6918483a61 Martin KaFai Lau 2019-12-20 182 } b14e6918483a61 Martin KaFai Lau 2019-12-20 183 } b14e6918483a61 Martin KaFai Lau 2019-12-20 184 b14e6918483a61 Martin KaFai Lau 2019-12-20 185 if (j == btf_type_vlen(t)) { b14e6918483a61 Martin KaFai Lau 2019-12-20 186 if (st_ops->init(_btf_vmlinux)) { b14e6918483a61 Martin KaFai Lau 2019-12-20 187 pr_warn("Error in init bpf_struct_ops %s\n", b14e6918483a61 Martin KaFai Lau 2019-12-20 188 st_ops->name); b14e6918483a61 Martin KaFai Lau 2019-12-20 189 } else { b14e6918483a61 Martin KaFai Lau 2019-12-20 190 st_ops->type_id = type_id; b14e6918483a61 Martin KaFai Lau 2019-12-20 191 st_ops->type = t; d69ac27055a81d Martin KaFai Lau 2019-12-20 192 st_ops->value_id = value_id; d69ac27055a81d Martin KaFai Lau 2019-12-20 193 st_ops->value_type = d69ac27055a81d Martin KaFai Lau 2019-12-20 194 btf_type_by_id(_btf_vmlinux, value_id); b14e6918483a61 Martin KaFai Lau 2019-12-20 195 } b14e6918483a61 Martin KaFai Lau 2019-12-20 196 } b14e6918483a61 Martin KaFai Lau 2019-12-20 197 } b14e6918483a61 Martin KaFai Lau 2019-12-20 @198 } b14e6918483a61 Martin KaFai Lau 2019-12-20 199 :::::: The code at line 198 was first introduced by commit :::::: b14e6918483a61bb02672580bde0aa60f4cce17d bpf: Introduce BPF_PROG_TYPE_STRUCT_OPS :::::: TO: Martin KaFai Lau <kafai@xxxxxx> :::::: CC: 0day robot <lkp@xxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx Intel Corporation
Attachment:
.config.gz
Description: application/gzip