From: kernel test robot <lkp@intel.com> To: Balaev Pavel <balaevpa@infotecs.ru>, netdev@vger.kernel.org Cc: kbuild-all@lists.01.org, Jakub Kicinski <kuba@kernel.org>, Jonathan Corbet <corbet@lwn.net>, Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>, David Ahern <dsahern@kernel.org>, Shuah Khan <skhan@linuxfoundation.org>, Christophe JAILLET <christophe.jaillet@wanadoo.fr>, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v4 net-next] net: multipath routing: configurable seed Date: Fri, 30 Apr 2021 02:52:11 +0800 [thread overview] Message-ID: <202104300220.lIl8YMQh-lkp@intel.com> (raw) In-Reply-To: <YILPPCyMjlnhPmEN@rnd> [-- Attachment #1: Type: text/plain, Size: 5941 bytes --] Hi Balaev, Thank you for the patch! Yet something to improve: [auto build test ERROR on net-next/master] url: https://github.com/0day-ci/linux/commits/Balaev-Pavel/net-multipath-routing-configurable-seed/20210423-214755 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git cad4162a90aeff737a16c0286987f51e927f003a config: riscv-rv32_defconfig (attached as .config) compiler: riscv32-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/d2127c4161e4482ac75072cfdbb27781d2a9be30 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Balaev-Pavel/net-multipath-routing-configurable-seed/20210423-214755 git checkout d2127c4161e4482ac75072cfdbb27781d2a9be30 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=riscv If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): net/ipv6/route.c: In function 'rt6_multipath_hash': >> net/ipv6/route.c:2422:11: error: implicit declaration of function 'flow_multipath_hash_from_keys'; did you mean 'flow_hash_from_keys'? [-Werror=implicit-function-declaration] 2422 | mhash = flow_multipath_hash_from_keys(&hash_keys, seed_ctx); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | flow_hash_from_keys cc1: some warnings being treated as errors vim +2422 net/ipv6/route.c 2328 2329 /* if skb is set it will be used and fl6 can be NULL */ 2330 u32 rt6_multipath_hash(const struct net *net, const struct flowi6 *fl6, 2331 const struct sk_buff *skb, struct flow_keys *flkeys) 2332 { 2333 struct flow_keys hash_keys; 2334 siphash_key_t *seed_ctx; 2335 u32 mhash; 2336 2337 switch (ip6_multipath_hash_policy(net)) { 2338 case 0: 2339 memset(&hash_keys, 0, sizeof(hash_keys)); 2340 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS; 2341 if (skb) { 2342 ip6_multipath_l3_keys(skb, &hash_keys, flkeys); 2343 } else { 2344 hash_keys.addrs.v6addrs.src = fl6->saddr; 2345 hash_keys.addrs.v6addrs.dst = fl6->daddr; 2346 hash_keys.tags.flow_label = (__force u32)flowi6_get_flowlabel(fl6); 2347 hash_keys.basic.ip_proto = fl6->flowi6_proto; 2348 } 2349 break; 2350 case 1: 2351 if (skb) { 2352 unsigned int flag = FLOW_DISSECTOR_F_STOP_AT_ENCAP; 2353 struct flow_keys keys; 2354 2355 /* short-circuit if we already have L4 hash present */ 2356 if (skb->l4_hash) 2357 return skb_get_hash_raw(skb) >> 1; 2358 2359 memset(&hash_keys, 0, sizeof(hash_keys)); 2360 2361 if (!flkeys) { 2362 skb_flow_dissect_flow_keys(skb, &keys, flag); 2363 flkeys = &keys; 2364 } 2365 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS; 2366 hash_keys.addrs.v6addrs.src = flkeys->addrs.v6addrs.src; 2367 hash_keys.addrs.v6addrs.dst = flkeys->addrs.v6addrs.dst; 2368 hash_keys.ports.src = flkeys->ports.src; 2369 hash_keys.ports.dst = flkeys->ports.dst; 2370 hash_keys.basic.ip_proto = flkeys->basic.ip_proto; 2371 } else { 2372 memset(&hash_keys, 0, sizeof(hash_keys)); 2373 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS; 2374 hash_keys.addrs.v6addrs.src = fl6->saddr; 2375 hash_keys.addrs.v6addrs.dst = fl6->daddr; 2376 hash_keys.ports.src = fl6->fl6_sport; 2377 hash_keys.ports.dst = fl6->fl6_dport; 2378 hash_keys.basic.ip_proto = fl6->flowi6_proto; 2379 } 2380 break; 2381 case 2: 2382 memset(&hash_keys, 0, sizeof(hash_keys)); 2383 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS; 2384 if (skb) { 2385 struct flow_keys keys; 2386 2387 if (!flkeys) { 2388 skb_flow_dissect_flow_keys(skb, &keys, 0); 2389 flkeys = &keys; 2390 } 2391 2392 /* Inner can be v4 or v6 */ 2393 if (flkeys->control.addr_type == FLOW_DISSECTOR_KEY_IPV4_ADDRS) { 2394 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV4_ADDRS; 2395 hash_keys.addrs.v4addrs.src = flkeys->addrs.v4addrs.src; 2396 hash_keys.addrs.v4addrs.dst = flkeys->addrs.v4addrs.dst; 2397 } else if (flkeys->control.addr_type == FLOW_DISSECTOR_KEY_IPV6_ADDRS) { 2398 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS; 2399 hash_keys.addrs.v6addrs.src = flkeys->addrs.v6addrs.src; 2400 hash_keys.addrs.v6addrs.dst = flkeys->addrs.v6addrs.dst; 2401 hash_keys.tags.flow_label = flkeys->tags.flow_label; 2402 hash_keys.basic.ip_proto = flkeys->basic.ip_proto; 2403 } else { 2404 /* Same as case 0 */ 2405 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS; 2406 ip6_multipath_l3_keys(skb, &hash_keys, flkeys); 2407 } 2408 } else { 2409 /* Same as case 0 */ 2410 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS; 2411 hash_keys.addrs.v6addrs.src = fl6->saddr; 2412 hash_keys.addrs.v6addrs.dst = fl6->daddr; 2413 hash_keys.tags.flow_label = (__force u32)flowi6_get_flowlabel(fl6); 2414 hash_keys.basic.ip_proto = fl6->flowi6_proto; 2415 } 2416 break; 2417 } 2418 2419 rcu_read_lock(); 2420 seed_ctx = rcu_dereference(net->ipv6.multipath_hash_seed_ctx); 2421 if (seed_ctx) > 2422 mhash = flow_multipath_hash_from_keys(&hash_keys, seed_ctx); 2423 else 2424 mhash = flow_hash_from_keys(&hash_keys); 2425 rcu_read_unlock(); 2426 2427 return mhash >> 1; 2428 } 2429 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 20551 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com> To: kbuild-all@lists.01.org Subject: Re: [PATCH v4 net-next] net: multipath routing: configurable seed Date: Fri, 30 Apr 2021 02:52:11 +0800 [thread overview] Message-ID: <202104300220.lIl8YMQh-lkp@intel.com> (raw) In-Reply-To: <YILPPCyMjlnhPmEN@rnd> [-- Attachment #1: Type: text/plain, Size: 6084 bytes --] Hi Balaev, Thank you for the patch! Yet something to improve: [auto build test ERROR on net-next/master] url: https://github.com/0day-ci/linux/commits/Balaev-Pavel/net-multipath-routing-configurable-seed/20210423-214755 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git cad4162a90aeff737a16c0286987f51e927f003a config: riscv-rv32_defconfig (attached as .config) compiler: riscv32-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/d2127c4161e4482ac75072cfdbb27781d2a9be30 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Balaev-Pavel/net-multipath-routing-configurable-seed/20210423-214755 git checkout d2127c4161e4482ac75072cfdbb27781d2a9be30 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=riscv If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): net/ipv6/route.c: In function 'rt6_multipath_hash': >> net/ipv6/route.c:2422:11: error: implicit declaration of function 'flow_multipath_hash_from_keys'; did you mean 'flow_hash_from_keys'? [-Werror=implicit-function-declaration] 2422 | mhash = flow_multipath_hash_from_keys(&hash_keys, seed_ctx); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | flow_hash_from_keys cc1: some warnings being treated as errors vim +2422 net/ipv6/route.c 2328 2329 /* if skb is set it will be used and fl6 can be NULL */ 2330 u32 rt6_multipath_hash(const struct net *net, const struct flowi6 *fl6, 2331 const struct sk_buff *skb, struct flow_keys *flkeys) 2332 { 2333 struct flow_keys hash_keys; 2334 siphash_key_t *seed_ctx; 2335 u32 mhash; 2336 2337 switch (ip6_multipath_hash_policy(net)) { 2338 case 0: 2339 memset(&hash_keys, 0, sizeof(hash_keys)); 2340 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS; 2341 if (skb) { 2342 ip6_multipath_l3_keys(skb, &hash_keys, flkeys); 2343 } else { 2344 hash_keys.addrs.v6addrs.src = fl6->saddr; 2345 hash_keys.addrs.v6addrs.dst = fl6->daddr; 2346 hash_keys.tags.flow_label = (__force u32)flowi6_get_flowlabel(fl6); 2347 hash_keys.basic.ip_proto = fl6->flowi6_proto; 2348 } 2349 break; 2350 case 1: 2351 if (skb) { 2352 unsigned int flag = FLOW_DISSECTOR_F_STOP_AT_ENCAP; 2353 struct flow_keys keys; 2354 2355 /* short-circuit if we already have L4 hash present */ 2356 if (skb->l4_hash) 2357 return skb_get_hash_raw(skb) >> 1; 2358 2359 memset(&hash_keys, 0, sizeof(hash_keys)); 2360 2361 if (!flkeys) { 2362 skb_flow_dissect_flow_keys(skb, &keys, flag); 2363 flkeys = &keys; 2364 } 2365 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS; 2366 hash_keys.addrs.v6addrs.src = flkeys->addrs.v6addrs.src; 2367 hash_keys.addrs.v6addrs.dst = flkeys->addrs.v6addrs.dst; 2368 hash_keys.ports.src = flkeys->ports.src; 2369 hash_keys.ports.dst = flkeys->ports.dst; 2370 hash_keys.basic.ip_proto = flkeys->basic.ip_proto; 2371 } else { 2372 memset(&hash_keys, 0, sizeof(hash_keys)); 2373 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS; 2374 hash_keys.addrs.v6addrs.src = fl6->saddr; 2375 hash_keys.addrs.v6addrs.dst = fl6->daddr; 2376 hash_keys.ports.src = fl6->fl6_sport; 2377 hash_keys.ports.dst = fl6->fl6_dport; 2378 hash_keys.basic.ip_proto = fl6->flowi6_proto; 2379 } 2380 break; 2381 case 2: 2382 memset(&hash_keys, 0, sizeof(hash_keys)); 2383 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS; 2384 if (skb) { 2385 struct flow_keys keys; 2386 2387 if (!flkeys) { 2388 skb_flow_dissect_flow_keys(skb, &keys, 0); 2389 flkeys = &keys; 2390 } 2391 2392 /* Inner can be v4 or v6 */ 2393 if (flkeys->control.addr_type == FLOW_DISSECTOR_KEY_IPV4_ADDRS) { 2394 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV4_ADDRS; 2395 hash_keys.addrs.v4addrs.src = flkeys->addrs.v4addrs.src; 2396 hash_keys.addrs.v4addrs.dst = flkeys->addrs.v4addrs.dst; 2397 } else if (flkeys->control.addr_type == FLOW_DISSECTOR_KEY_IPV6_ADDRS) { 2398 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS; 2399 hash_keys.addrs.v6addrs.src = flkeys->addrs.v6addrs.src; 2400 hash_keys.addrs.v6addrs.dst = flkeys->addrs.v6addrs.dst; 2401 hash_keys.tags.flow_label = flkeys->tags.flow_label; 2402 hash_keys.basic.ip_proto = flkeys->basic.ip_proto; 2403 } else { 2404 /* Same as case 0 */ 2405 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS; 2406 ip6_multipath_l3_keys(skb, &hash_keys, flkeys); 2407 } 2408 } else { 2409 /* Same as case 0 */ 2410 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS; 2411 hash_keys.addrs.v6addrs.src = fl6->saddr; 2412 hash_keys.addrs.v6addrs.dst = fl6->daddr; 2413 hash_keys.tags.flow_label = (__force u32)flowi6_get_flowlabel(fl6); 2414 hash_keys.basic.ip_proto = fl6->flowi6_proto; 2415 } 2416 break; 2417 } 2418 2419 rcu_read_lock(); 2420 seed_ctx = rcu_dereference(net->ipv6.multipath_hash_seed_ctx); 2421 if (seed_ctx) > 2422 mhash = flow_multipath_hash_from_keys(&hash_keys, seed_ctx); 2423 else 2424 mhash = flow_hash_from_keys(&hash_keys); 2425 rcu_read_unlock(); 2426 2427 return mhash >> 1; 2428 } 2429 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org [-- Attachment #2: config.gz --] [-- Type: application/gzip, Size: 20551 bytes --]
next prev parent reply other threads:[~2021-04-29 18:52 UTC|newest] Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-04-23 13:44 [PATCH v4 net-next] net: multipath routing: configurable seed Balaev Pavel 2021-04-27 3:21 ` David Ahern 2021-04-27 9:42 ` Pavel Balaev 2021-04-27 14:27 ` David Ahern 2021-04-27 14:58 ` Void 2021-04-29 18:52 ` kernel test robot [this message] 2021-04-29 18:52 ` kernel test robot
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=202104300220.lIl8YMQh-lkp@intel.com \ --to=lkp@intel.com \ --cc=balaevpa@infotecs.ru \ --cc=christophe.jaillet@wanadoo.fr \ --cc=corbet@lwn.net \ --cc=dsahern@kernel.org \ --cc=kbuild-all@lists.01.org \ --cc=kuba@kernel.org \ --cc=linux-doc@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=netdev@vger.kernel.org \ --cc=skhan@linuxfoundation.org \ --cc=yoshfuji@linux-ipv6.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.