From patchwork Thu May 6 10:22:36 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Westphal X-Patchwork-Id: 1474900 X-Patchwork-Delegate: mathew.j.martineau@linux.intel.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.linux.dev (client-ip=147.75.197.195; helo=ewr.edge.kernel.org; envelope-from=mptcp+bounces-562-incoming=patchwork.ozlabs.org@lists.linux.dev; receiver=) Received: from ewr.edge.kernel.org (ewr.edge.kernel.org [147.75.197.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4FbV5k1wF9z9sWB for ; Thu, 6 May 2021 20:23:06 +1000 (AEST) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ewr.edge.kernel.org (Postfix) with ESMTPS id 7CB031C0D2D for ; Thu, 6 May 2021 10:23:04 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7CBD92F81; Thu, 6 May 2021 10:23:03 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from Chamillionaire.breakpoint.cc (Chamillionaire.breakpoint.cc [193.142.43.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 828A770 for ; Thu, 6 May 2021 10:23:02 +0000 (UTC) Received: from fw by Chamillionaire.breakpoint.cc with local (Exim 4.92) (envelope-from ) id 1leb9i-0001O3-NE; Thu, 06 May 2021 12:22:54 +0200 From: Florian Westphal To: Cc: Florian Westphal Subject: [PATCH mptcp-next 1/8] mptcp: enable busypoll from mptcp receive path Date: Thu, 6 May 2021 12:22:36 +0200 Message-Id: <20210506102243.2390-2-fw@strlen.de> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210506102243.2390-1-fw@strlen.de> References: <20210506102243.2390-1-fw@strlen.de> X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 The setting is only relevant for the msk socket. While at it, also handle rcvlowat/rcvtimeo this way. Signed-off-by: Florian Westphal --- net/mptcp/protocol.c | 7 +++++++ net/mptcp/sockopt.c | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index aec8e77b18e4..e51070883064 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -1966,6 +1967,12 @@ static int mptcp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len, if (unlikely(flags & MSG_ERRQUEUE)) return inet_recv_error(sk, msg, len, addr_len); + if (sk_can_busy_loop(sk) && + skb_queue_empty_lockless(&msk->receive_queue) && + skb_queue_empty_lockless(&sk->sk_receive_queue) && + inet_sk_state_load(sk) == TCP_ESTABLISHED) + sk_busy_loop(sk, nonblock); + mptcp_lock_sock(sk, __mptcp_splice_receive_queue(sk)); if (unlikely(sk->sk_state == TCP_LISTEN)) { copied = -ENOTCONN; diff --git a/net/mptcp/sockopt.c b/net/mptcp/sockopt.c index 00d941b66c1e..c98e4e116992 100644 --- a/net/mptcp/sockopt.c +++ b/net/mptcp/sockopt.c @@ -254,6 +254,14 @@ static int mptcp_setsockopt_sol_socket(struct mptcp_sock *msk, int optname, return mptcp_setsockopt_sol_socket_int(msk, optname, optval, optlen); case SO_LINGER: return mptcp_setsockopt_sol_socket_linger(msk, optval, optlen); + case SO_RCVLOWAT: + case SO_RCVTIMEO_OLD: + case SO_RCVTIMEO_NEW: + case SO_BUSY_POLL: + case SO_PREFER_BUSY_POLL: + case SO_BUSY_POLL_BUDGET: + /* No need to copy: only relevant for msk */ + break; case SO_NO_CHECK: case SO_DONTROUTE: case SO_BROADCAST: