From: Mat Martineau <martineau@kernel.org>
To: Paolo Abeni <pabeni@redhat.com>
Cc: mptcp@lists.linux.dev
Subject: Re: [PATCH mptcp-next 08/14] mptcp: avoid additional indirection in mptcp_listen()
Date: Wed, 12 Jul 2023 14:52:44 -0700 (PDT) [thread overview]
Message-ID: <fcd2efdf-67d9-e90e-ddd7-355f7367ce05@kernel.org> (raw)
In-Reply-To: <3e6dc1e7ec147cf1ab8109a7ec65b62319565604.1688993569.git.pabeni@redhat.com>
On Mon, 10 Jul 2023, Paolo Abeni wrote:
> We are going to remove the first subflow socket soon, so avoid
> the addictional indirection via at listen() time. Instead call
> directly the recently introduced helper on the first subflow sock.
>
> No functional changes intended.
>
> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
> ---
> net/mptcp/protocol.c | 14 ++++++++++----
> 1 file changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
> index 00b891f709f7..c5da7a172ee9 100644
> --- a/net/mptcp/protocol.c
> +++ b/net/mptcp/protocol.c
> @@ -3759,6 +3759,7 @@ static int mptcp_listen(struct socket *sock, int backlog)
> struct mptcp_sock *msk = mptcp_sk(sock->sk);
> struct sock *sk = sock->sk;
> struct socket *ssock;
> + struct sock *ssk;
> int err;
>
> pr_debug("msk=%p", msk);
> @@ -3775,15 +3776,20 @@ static int mptcp_listen(struct socket *sock, int backlog)
> goto unlock;
> }
>
> + ssk = msk->first;
> inet_sk_state_store(sk, TCP_LISTEN);
> sock_set_flag(sk, SOCK_RCU_FREE);
>
> - err = ssock->ops->listen(ssock, backlog);
> - inet_sk_state_store(sk, inet_sk_state_load(ssock->sk));
> + lock_sock(ssk);
> + err = __inet_listen_sk(ssk, backlog);
> + release_sock(ssk);
> + inet_sk_state_store(sk, inet_sk_state_load(ssk));
> +
> if (!err) {
> + WRITE_ONCE(sk->sk_max_ack_backlog, backlog);
This seems like new functionality that isn't mentioned in the commit
message. Do the changes here expose an issue with making the msk-level
sk_max_ack_backlog match the subflow, or is this an unrelated fix?
> sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1);
> - mptcp_copy_inaddrs(sk, ssock->sk);
> - mptcp_event_pm_listener(ssock->sk, MPTCP_EVENT_LISTENER_CREATED);
> + mptcp_copy_inaddrs(sk, ssk);
> + mptcp_event_pm_listener(ssk, MPTCP_EVENT_LISTENER_CREATED);
> }
>
> unlock:
> --
> 2.41.0
>
>
>
next prev parent reply other threads:[~2023-07-12 21:52 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-10 12:54 [PATCH mptcp-next 00/14] mptcp: get rid of msk->subflow Paolo Abeni
2023-07-10 12:54 ` [PATCH mptcp-next 01/14] mptcp: more accurate NL event generation Paolo Abeni
2023-07-13 9:02 ` Matthieu Baerts
2023-07-13 16:44 ` Mat Martineau
2023-07-13 16:45 ` Mat Martineau
2023-07-13 19:15 ` Matthieu Baerts
2023-07-10 12:54 ` [PATCH mptcp-next 02/14] mptcp: avoid unneeded mptcp_token_destroy() calls Paolo Abeni
2023-07-10 12:54 ` [PATCH mptcp-next 03/14] mptcp: avoid additional __inet_stream_connect() call Paolo Abeni
2023-07-12 21:49 ` Mat Martineau
2023-07-13 9:00 ` Matthieu Baerts
2023-07-14 8:38 ` Paolo Abeni
2023-07-17 13:47 ` Matthieu Baerts
2023-07-14 8:15 ` Paolo Abeni
2023-07-10 12:54 ` [PATCH mptcp-next 04/14] mptcp: avoid subflow socket usage in mptcp_get_port() Paolo Abeni
2023-07-10 12:55 ` [PATCH mptcp-next 05/14] net: factor out inet{,6}_bind_sk helpers Paolo Abeni
2023-07-10 12:55 ` [PATCH mptcp-next 06/14] mptcp: mptcp: avoid additional indirection in mptcp_bind() Paolo Abeni
2023-07-10 12:55 ` [PATCH mptcp-next 07/14] net: factor out __inet_listen_sk() helper Paolo Abeni
2023-07-12 21:50 ` Mat Martineau
2023-07-14 8:16 ` Paolo Abeni
2023-07-10 12:55 ` [PATCH mptcp-next 08/14] mptcp: avoid additional indirection in mptcp_listen() Paolo Abeni
2023-07-12 21:52 ` Mat Martineau [this message]
2023-07-14 8:22 ` Paolo Abeni
2023-07-10 12:55 ` [PATCH mptcp-next 09/14] mptcp: avoid additional indirection in mptcp_poll() Paolo Abeni
2023-07-10 12:55 ` [PATCH mptcp-next 10/14] mptcp: avoid unneeded indirection in mptcp_stream_accept() Paolo Abeni
2023-07-12 21:55 ` Mat Martineau
2023-07-14 8:42 ` Paolo Abeni
2023-07-10 12:55 ` [PATCH mptcp-next 11/14] mptcp: avoid additional indirection in sockopt Paolo Abeni
2023-07-10 12:55 ` [PATCH mptcp-next 12/14] mptcp: avoid ssock usage in mptcp_pm_nl_create_listen_socket() Paolo Abeni
2023-07-10 12:55 ` [PATCH mptcp-next 13/14] mptcp: change the mpc check helper to return a sk Paolo Abeni
2023-07-10 12:55 ` [PATCH mptcp-next 14/14] mptcp: get rid of msk->subflow Paolo Abeni
2023-07-10 14:03 ` mptcp: get rid of msk->subflow: Tests Results MPTCP CI
2023-07-12 21:59 ` [PATCH mptcp-next 14/14] mptcp: get rid of msk->subflow Mat Martineau
2023-07-14 9:00 ` Paolo Abeni
2023-07-13 17:59 ` mptcp: get rid of msk->subflow: Tests Results MPTCP CI
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=fcd2efdf-67d9-e90e-ddd7-355f7367ce05@kernel.org \
--to=martineau@kernel.org \
--cc=mptcp@lists.linux.dev \
--cc=pabeni@redhat.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.