All of lore.kernel.org
 help / color / mirror / Atom feed
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 --]

  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: link
Be 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.