All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp at intel.com>
To: mptcp at lists.01.org
Subject: [MPTCP] [mptcp:export 653/660] net/mptcp/protocol.c:1109: undefined reference to `__divdi3'
Date: Sat, 12 Sep 2020 01:21:08 +0800	[thread overview]
Message-ID: <202009120104.DySCMur6%lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 4094 bytes --]

tree:   https://github.com/multipath-tcp/mptcp_net-next.git export
head:   38c882ee9a77d857355a8dd2a220156ba7df73bc
commit: 6ad4fb22474e4f8d3c0aae6b68d4c4de49deeae5 [653/660] mptcp: allow picking different xmit subflows
config: m68k-randconfig-r025-20200911 (attached as .config)
compiler: m68k-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
        git checkout 6ad4fb22474e4f8d3c0aae6b68d4c4de49deeae5
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>

All errors (new ones prefixed by >>):

   m68k-linux-ld: net/mptcp/protocol.o: in function `mptcp_subflow_get_send':
>> net/mptcp/protocol.c:1109: undefined reference to `__divdi3'

# https://github.com/multipath-tcp/mptcp_net-next/commit/6ad4fb22474e4f8d3c0aae6b68d4c4de49deeae5
git remote add mptcp https://github.com/multipath-tcp/mptcp_net-next.git
git fetch --no-tags mptcp export
git checkout 6ad4fb22474e4f8d3c0aae6b68d4c4de49deeae5
vim +1109 net/mptcp/protocol.c

  1056	
  1057	static struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk,
  1058						   u32 *sndbuf)
  1059	{
  1060		struct subflow_send_info send_info[2];
  1061		struct mptcp_subflow_context *subflow;
  1062		int i, nr_active = 0;
  1063		int64_t ratio, pace;
  1064		struct sock *ssk;
  1065	
  1066		sock_owned_by_me((struct sock *)msk);
  1067	
  1068		*sndbuf = 0;
  1069		if (!mptcp_ext_cache_refill(msk))
  1070			return NULL;
  1071	
  1072		if (__mptcp_check_fallback(msk)) {
  1073			if (!msk->first)
  1074				return NULL;
  1075			*sndbuf = msk->first->sk_sndbuf;
  1076			return sk_stream_memory_free(msk->first) ? msk->first : NULL;
  1077		}
  1078	
  1079		/* re-use last subflow, if the burst allow that */
  1080		if (msk->last_snd && msk->snd_burst > 0 &&
  1081		    sk_stream_memory_free(msk->last_snd) &&
  1082		    mptcp_subflow_active(mptcp_subflow_ctx(msk->last_snd))) {
  1083			mptcp_for_each_subflow(msk, subflow) {
  1084				ssk =  mptcp_subflow_tcp_sock(subflow);
  1085				*sndbuf = max(tcp_sk(ssk)->snd_wnd, *sndbuf);
  1086			}
  1087			return msk->last_snd;
  1088		}
  1089	
  1090		/* pick the subflow with the lower wmem/wspace ratio */
  1091		for (i = 0; i < 2; ++i) {
  1092			send_info[i].ssk = NULL;
  1093			send_info[i].ratio = -1;
  1094		}
  1095		mptcp_for_each_subflow(msk, subflow) {
  1096			ssk =  mptcp_subflow_tcp_sock(subflow);
  1097			if (!mptcp_subflow_active(subflow))
  1098				continue;
  1099	
  1100			nr_active += !subflow->backup;
  1101			*sndbuf = max(tcp_sk(ssk)->snd_wnd, *sndbuf);
  1102			if (!sk_stream_memory_free(subflow->tcp_sock))
  1103				continue;
  1104	
  1105			pace = READ_ONCE(ssk->sk_pacing_rate);
  1106			if (!pace)
  1107				continue;
  1108	
> 1109			ratio = (int64_t)READ_ONCE(ssk->sk_wmem_queued) << 32 / pace;
  1110			if (ratio < send_info[subflow->backup].ratio) {
  1111				send_info[subflow->backup].ssk = ssk;
  1112				send_info[subflow->backup].ratio = ratio;
  1113			}
  1114		}
  1115	
  1116		pr_debug("msk=%p nr_active=%d ssk=%p:%lld backup=%p:%lld",
  1117			 msk, nr_active, send_info[0].ssk, send_info[0].ratio,
  1118			 send_info[1].ssk, send_info[1].ratio);
  1119	
  1120		/* pick the best backup if no other subflow is active */
  1121		if (!nr_active)
  1122			send_info[0].ssk = send_info[1].ssk;
  1123	
  1124		if (send_info[0].ssk) {
  1125			msk->last_snd = send_info[0].ssk;
  1126			msk->snd_burst = min_t(int, MPTCP_SEND_BURST_SIZE,
  1127					       sk_stream_wspace(msk->last_snd));
  1128			return msk->last_snd;
  1129		}
  1130		return NULL;
  1131	}
  1132	

---
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: 28160 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [mptcp:export 653/660] net/mptcp/protocol.c:1109: undefined reference to `__divdi3'
Date: Sat, 12 Sep 2020 01:21:08 +0800	[thread overview]
Message-ID: <202009120104.DySCMur6%lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 4092 bytes --]

tree:   https://github.com/multipath-tcp/mptcp_net-next.git export
head:   38c882ee9a77d857355a8dd2a220156ba7df73bc
commit: 6ad4fb22474e4f8d3c0aae6b68d4c4de49deeae5 [653/660] mptcp: allow picking different xmit subflows
config: m68k-randconfig-r025-20200911 (attached as .config)
compiler: m68k-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
        git checkout 6ad4fb22474e4f8d3c0aae6b68d4c4de49deeae5
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k 

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 >>):

   m68k-linux-ld: net/mptcp/protocol.o: in function `mptcp_subflow_get_send':
>> net/mptcp/protocol.c:1109: undefined reference to `__divdi3'

# https://github.com/multipath-tcp/mptcp_net-next/commit/6ad4fb22474e4f8d3c0aae6b68d4c4de49deeae5
git remote add mptcp https://github.com/multipath-tcp/mptcp_net-next.git
git fetch --no-tags mptcp export
git checkout 6ad4fb22474e4f8d3c0aae6b68d4c4de49deeae5
vim +1109 net/mptcp/protocol.c

  1056	
  1057	static struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk,
  1058						   u32 *sndbuf)
  1059	{
  1060		struct subflow_send_info send_info[2];
  1061		struct mptcp_subflow_context *subflow;
  1062		int i, nr_active = 0;
  1063		int64_t ratio, pace;
  1064		struct sock *ssk;
  1065	
  1066		sock_owned_by_me((struct sock *)msk);
  1067	
  1068		*sndbuf = 0;
  1069		if (!mptcp_ext_cache_refill(msk))
  1070			return NULL;
  1071	
  1072		if (__mptcp_check_fallback(msk)) {
  1073			if (!msk->first)
  1074				return NULL;
  1075			*sndbuf = msk->first->sk_sndbuf;
  1076			return sk_stream_memory_free(msk->first) ? msk->first : NULL;
  1077		}
  1078	
  1079		/* re-use last subflow, if the burst allow that */
  1080		if (msk->last_snd && msk->snd_burst > 0 &&
  1081		    sk_stream_memory_free(msk->last_snd) &&
  1082		    mptcp_subflow_active(mptcp_subflow_ctx(msk->last_snd))) {
  1083			mptcp_for_each_subflow(msk, subflow) {
  1084				ssk =  mptcp_subflow_tcp_sock(subflow);
  1085				*sndbuf = max(tcp_sk(ssk)->snd_wnd, *sndbuf);
  1086			}
  1087			return msk->last_snd;
  1088		}
  1089	
  1090		/* pick the subflow with the lower wmem/wspace ratio */
  1091		for (i = 0; i < 2; ++i) {
  1092			send_info[i].ssk = NULL;
  1093			send_info[i].ratio = -1;
  1094		}
  1095		mptcp_for_each_subflow(msk, subflow) {
  1096			ssk =  mptcp_subflow_tcp_sock(subflow);
  1097			if (!mptcp_subflow_active(subflow))
  1098				continue;
  1099	
  1100			nr_active += !subflow->backup;
  1101			*sndbuf = max(tcp_sk(ssk)->snd_wnd, *sndbuf);
  1102			if (!sk_stream_memory_free(subflow->tcp_sock))
  1103				continue;
  1104	
  1105			pace = READ_ONCE(ssk->sk_pacing_rate);
  1106			if (!pace)
  1107				continue;
  1108	
> 1109			ratio = (int64_t)READ_ONCE(ssk->sk_wmem_queued) << 32 / pace;
  1110			if (ratio < send_info[subflow->backup].ratio) {
  1111				send_info[subflow->backup].ssk = ssk;
  1112				send_info[subflow->backup].ratio = ratio;
  1113			}
  1114		}
  1115	
  1116		pr_debug("msk=%p nr_active=%d ssk=%p:%lld backup=%p:%lld",
  1117			 msk, nr_active, send_info[0].ssk, send_info[0].ratio,
  1118			 send_info[1].ssk, send_info[1].ratio);
  1119	
  1120		/* pick the best backup if no other subflow is active */
  1121		if (!nr_active)
  1122			send_info[0].ssk = send_info[1].ssk;
  1123	
  1124		if (send_info[0].ssk) {
  1125			msk->last_snd = send_info[0].ssk;
  1126			msk->snd_burst = min_t(int, MPTCP_SEND_BURST_SIZE,
  1127					       sk_stream_wspace(msk->last_snd));
  1128			return msk->last_snd;
  1129		}
  1130		return NULL;
  1131	}
  1132	

---
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: 28160 bytes --]

             reply	other threads:[~2020-09-11 17:21 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-11 17:21 kernel test robot [this message]
2020-09-11 17:21 ` [mptcp:export 653/660] net/mptcp/protocol.c:1109: undefined reference to `__divdi3' 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=202009120104.DySCMur6%lkp@intel.com \
    --to=unknown@example.com \
    /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.