From nobody Mon Apr 29 07:00:36 2024 Received: from mail-pj1-f68.google.com (mail-pj1-f68.google.com [209.85.216.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B9EDEED2 for ; Mon, 19 Dec 2022 07:51:27 +0000 (UTC) Received: by mail-pj1-f68.google.com with SMTP id u15-20020a17090a3fcf00b002191825cf02so8097116pjm.2 for ; Sun, 18 Dec 2022 23:51:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pDMRQQgmzcLrWi3iJXP5+Yn2rtVedztMbMwGnRNqbyM=; b=WqssJt35Vw8YCNhjznxPUVo4AxHoiKzx+lY5u+DEiDZnVUDPUYdoEn425ll4v+3gpK N7gk4xBL6J9cqNqcr3dtbTNQmOA2+81vO6PQNSh3Pd+Wqxo8HGeJ0RqpQfLkGqaLkQqy qZ+wL4dVnDh4+jsoeEDkHwDEEeuwOw6cmFV+jiz45WyRFfYcLKzxSZpMHYJv4i4mk+em +VM8V5fsbejOye0AApJd3VN0EETu9xU36kn6F1uwdTnPQE+/qRgURhnr5db7dxoVweFZ 44Sc/iRdW0RrSOF09BELBdHEhdc5LeNsWIZ00cztYBxi6GM/nzIqsTU0hTaWI59zAB18 bIdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pDMRQQgmzcLrWi3iJXP5+Yn2rtVedztMbMwGnRNqbyM=; b=b4QSAA/XJCmKzRkeRsphQo5g29OhZLCbTci2c4iMFzso48FtRLb1h86NXh/JHRVkn9 cr3/0lP1cW2a8VdCXN1AdWx42OPzJlYazOLT7ri+VTCvIsGr2izRnrccEHZu8e9K4Fwj 6Y2w7qDybxRO65CYmMOqcN9ci5NmqvPn78lgMj8Trs2kj+1wuw0/jr7c+IbtesG56LY+ 8+56SFOW6HMXyUNnuCz//dhlHclKwEZ5ga0Q7/SKkHdbUPwv1yAJ3/+BOjB8tRKGPwIc 0J8uHlTZFKdTmfXRFDHZ05DqVmcbgkgA3D36UoZkCiJNPohfEiLeHonXxDLMpFD2XKT5 J9uA== X-Gm-Message-State: AFqh2koY0e200B9wNdlV9NUmUc88DlFmVOOmt8D4jkjzY8NcbN3E1yg0 redZOQqFF71mQ84dJcb9yqU= X-Google-Smtp-Source: AMrXdXtB/1EMpKXP3zVnqHsP+RvmLTRVHEOw+QgHNKX0XAsIGsETl47HNxpU8JSclBP86hzHdm9nqQ== X-Received: by 2002:a17:903:124e:b0:191:1e88:ea4c with SMTP id u14-20020a170903124e00b001911e88ea4cmr4721415plh.40.1671436287168; Sun, 18 Dec 2022 23:51:27 -0800 (PST) Received: from localhost.localdomain ([203.205.141.21]) by smtp.gmail.com with ESMTPSA id t9-20020a170902e84900b001888cadf8f6sm6366673plg.49.2022.12.18.23.51.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 18 Dec 2022 23:51:26 -0800 (PST) From: menglong8.dong@gmail.com X-Google-Original-From: imagedong@tencent.com To: pabeni@redhat.com, mathew.j.martineau@linux.intel.com, matthieu.baerts@tessares.net Cc: mptcp@lists.linux.dev, Menglong Dong Subject: [PATCH mptcp-next v9 1/6] mptcp: introduce 'sk' to replace 'sock->sk' in mptcp_listen() Date: Mon, 19 Dec 2022 15:50:43 +0800 Message-Id: <20221219075048.255811-2-imagedong@tencent.com> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221219075048.255811-1-imagedong@tencent.com> References: <20221219075048.255811-1-imagedong@tencent.com> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Menglong Dong 'sock->sk' is used frequently in mptcp_listen(). Therefore, we can introduce the 'sk' and replace 'sock->sk' with it. Signed-off-by: Menglong Dong --- net/mptcp/protocol.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 5e813580c394..3de45444557d 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -3655,12 +3655,13 @@ static int mptcp_stream_connect(struct socket *sock= , struct sockaddr *uaddr, static int mptcp_listen(struct socket *sock, int backlog) { struct mptcp_sock *msk =3D mptcp_sk(sock->sk); + struct sock *sk =3D sock->sk; struct socket *ssock; int err; =20 pr_debug("msk=3D%p", msk); =20 - lock_sock(sock->sk); + lock_sock(sk); ssock =3D __mptcp_nmpc_socket(msk); if (!ssock) { err =3D -EINVAL; @@ -3668,18 +3669,18 @@ static int mptcp_listen(struct socket *sock, int ba= cklog) } =20 mptcp_token_destroy(msk); - inet_sk_state_store(sock->sk, TCP_LISTEN); - sock_set_flag(sock->sk, SOCK_RCU_FREE); + inet_sk_state_store(sk, TCP_LISTEN); + sock_set_flag(sk, SOCK_RCU_FREE); =20 err =3D ssock->ops->listen(ssock, backlog); - inet_sk_state_store(sock->sk, inet_sk_state_load(ssock->sk)); + inet_sk_state_store(sk, inet_sk_state_load(ssock->sk)); if (!err) - mptcp_copy_inaddrs(sock->sk, ssock->sk); + mptcp_copy_inaddrs(sk, ssock->sk); =20 mptcp_event_pm_listener(ssock->sk, MPTCP_EVENT_LISTENER_CREATED); =20 unlock: - release_sock(sock->sk); + release_sock(sk); return err; } =20 --=20 2.37.2 From nobody Mon Apr 29 07:00:36 2024 Received: from mail-pj1-f67.google.com (mail-pj1-f67.google.com [209.85.216.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A21A7ED2 for ; Mon, 19 Dec 2022 07:51:34 +0000 (UTC) Received: by mail-pj1-f67.google.com with SMTP id z8-20020a17090abd8800b00219ed30ce47so12134299pjr.3 for ; Sun, 18 Dec 2022 23:51:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=b0thMjq1glmFz6YBbQcPg0/GuHxz5v8dFqaU9ZI/vas=; b=p7xd/0UJiigTgrMPyCYC7dYtSf7LziDvMAhajVXxcrsI3268El3QSepPwyBFQaCF9O bTnDGil7oaVNM2R5mSHO6MjDD/e3+1bXDdP67Toza+0VRjwk+PHC1lvYEWqPF2aAlHZB YUjW9i+G/L2/sr06iC/G2R0p3jZR2CmXEh0oD/WfskFivMEa/DuGaMsZV1YISxFpFeBW XbX+GqpDKPmhdOqojpKmDkDW0JEC46D6cmCKn/lSgeNMvAOiXxCvUSqX4P0YaJNEa/kH nQN5wiaopGQD0OsDsf6/xWy/xDngyfHACDjOr84abeRXxVjopGftQk19mD00jgZE1y8F 9lpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=b0thMjq1glmFz6YBbQcPg0/GuHxz5v8dFqaU9ZI/vas=; b=Vxq9hUfs+9WjPQgjw6d1VBvHEBhng3h9AWRmCR9I7xEOkW5ODEYJJYmewBU8P9qqc0 mcYVwxrkatDTql0hE0AqOIQ9UWYL9EFKNvJh9udpFhiAMv422iGyhb331LNQnZfWnFTg Txt9IHo0NBMQ2GLrOpN5TrEvo4ELp9tVvxlExGzOqcF/ei2VOoFy/3MNtZGE5bYRdl4B wNarafpBkU6VKUiRQ5BWybWUaE3qzta27IYXVghHDg1BRvMXhZN4z+EU9/SMZK0NGNkJ lNLMRNT060mfmA6/NLa0zmLGTC224igXNDai6tNQhrmxAIVErQsMB8gEP/lni3OCkjBi Rl6A== X-Gm-Message-State: ANoB5pncmN/VbD9EIVdxbt6nReCw1BN/uC2ajdkvrzFnleGWV3lYnSH5 eNRfNynhfyfbOQxizb4XQW0= X-Google-Smtp-Source: AA0mqf7TNizILOYFB5TPQjVnTTFT6POm8mzTI7Sg4GMQyKwl5uErM1fqHy/7DnwxBUrgol927M5tMw== X-Received: by 2002:a05:6a20:b557:b0:ad:2c7c:9510 with SMTP id ev23-20020a056a20b55700b000ad2c7c9510mr38605125pzb.19.1671436294108; Sun, 18 Dec 2022 23:51:34 -0800 (PST) Received: from localhost.localdomain ([203.205.141.21]) by smtp.gmail.com with ESMTPSA id t9-20020a170902e84900b001888cadf8f6sm6366673plg.49.2022.12.18.23.51.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 18 Dec 2022 23:51:33 -0800 (PST) From: menglong8.dong@gmail.com X-Google-Original-From: imagedong@tencent.com To: pabeni@redhat.com, mathew.j.martineau@linux.intel.com, matthieu.baerts@tessares.net Cc: mptcp@lists.linux.dev, Menglong Dong Subject: [PATCH mptcp-next v9 2/6] mptcp: rename 'sk' to 'ssk' in mptcp_token_new_connect() Date: Mon, 19 Dec 2022 15:50:44 +0800 Message-Id: <20221219075048.255811-3-imagedong@tencent.com> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221219075048.255811-1-imagedong@tencent.com> References: <20221219075048.255811-1-imagedong@tencent.com> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Menglong Dong 'ssk' should be more appropriate to be the name of the first argument in mptcp_token_new_connect(). Signed-off-by: Menglong Dong --- net/mptcp/protocol.h | 2 +- net/mptcp/token.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 3cd3270407b0..de7d901a79c6 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -766,7 +766,7 @@ static inline void mptcp_token_init_request(struct requ= est_sock *req) =20 int mptcp_token_new_request(struct request_sock *req); void mptcp_token_destroy_request(struct request_sock *req); -int mptcp_token_new_connect(struct sock *sk); +int mptcp_token_new_connect(struct sock *ssk); void mptcp_token_accept(struct mptcp_subflow_request_sock *r, struct mptcp_sock *msk); bool mptcp_token_exists(u32 token); diff --git a/net/mptcp/token.c b/net/mptcp/token.c index 65430f314a68..968008f6db45 100644 --- a/net/mptcp/token.c +++ b/net/mptcp/token.c @@ -148,9 +148,9 @@ int mptcp_token_new_request(struct request_sock *req) * * returns 0 on success. */ -int mptcp_token_new_connect(struct sock *sk) +int mptcp_token_new_connect(struct sock *ssk) { - struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(sk); + struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(ssk); struct mptcp_sock *msk =3D mptcp_sk(subflow->conn); int retries =3D MPTCP_TOKEN_MAX_RETRIES; struct token_bucket *bucket; @@ -169,7 +169,7 @@ int mptcp_token_new_connect(struct sock *sk) } =20 pr_debug("ssk=3D%p, local_key=3D%llu, token=3D%u, idsn=3D%llu\n", - sk, subflow->local_key, subflow->token, subflow->idsn); + ssk, subflow->local_key, subflow->token, subflow->idsn); =20 WRITE_ONCE(msk->token, subflow->token); __sk_nulls_add_node_rcu((struct sock *)msk, &bucket->msk_chain); --=20 2.37.2 From nobody Mon Apr 29 07:00:36 2024 Received: from mail-pj1-f68.google.com (mail-pj1-f68.google.com [209.85.216.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A9317ED2 for ; Mon, 19 Dec 2022 07:51:41 +0000 (UTC) Received: by mail-pj1-f68.google.com with SMTP id v23so2986638pju.3 for ; Sun, 18 Dec 2022 23:51:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=q89bB0etj5gNAJ4ghjKps16lPq061+dXHL9eOYdlKaY=; b=bGp7umo7og0Wf68qGsXEHnmbjNJPz8VviOZYjFt4RmM+8FKkxmLOvPvbe1E/Ua6cQg yEQFfqcdqH9oNBkJsbwZzZ8+d1GkQKTMKgZ+Y5nQGOxtSlxnCzrkasRfKziPJbQcKWtq +HDHiqji4+RLw0jR32r8msXtYVtoo/8IBNgwfjg6hSbCs/tAakZEU4hT4aBglNzqwktu QSQx9hkRLPNTZl+e0XbXgnmdvd5DAXcWjZb/n7Dk/c8Wd7PhbJte5UwQflM+jPVzSwa3 VWqoMBV005v+A5DrdY9c/C9HhbadrmAMem+GrzK0XT9ryXbtUiGkR9KZe9MpbWCI4lRF 4waA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=q89bB0etj5gNAJ4ghjKps16lPq061+dXHL9eOYdlKaY=; b=It5L/yJV0yTGLpeGBtkn7UG8o9/7iCaaiQD8jcLJ945IOe0td1F1jq0PPhyYgeL6FT Ik1+aE8Z4yTZtWZ0hbPMs1KYBLIOCirsf91aSrlzyeInltiLfGs2Xi+yvSORTCkEEKFM EF+3KZSUv4oEVbPERO2psOlCPcrzb3xZhVD9qiv+tYc3n02FbaKDwRIkM2suYgOTLU8V 7I2Q6qbIMgnJl2vzCpfaT+2l43721T5ZCfwPPl3dYCquG9jhDNCnU1CFXKx5dOviUCz4 0VFGBFzve7AEZsoY+2JlctBUiMsomWwHq4m70g/1ApR6/QFbvmsYCvuk4gsFhg1jlkVn Xcew== X-Gm-Message-State: ANoB5plyfdp3Xq+u/8jMvMLaGPqeQmCniyHjbt+dlCILrsJzl/B0SmyP wWcqxkQNRLqoCoacLQ+Psoc= X-Google-Smtp-Source: AA0mqf69wp/+oO4Y/7OEQo0mDivbTWgp53Okol/o+orXun62uwql96S70pfK4pX9ep6c/2VCEBPjxw== X-Received: by 2002:a17:902:7104:b0:189:bf5d:c951 with SMTP id a4-20020a170902710400b00189bf5dc951mr39532129pll.26.1671436301148; Sun, 18 Dec 2022 23:51:41 -0800 (PST) Received: from localhost.localdomain ([203.205.141.21]) by smtp.gmail.com with ESMTPSA id t9-20020a170902e84900b001888cadf8f6sm6366673plg.49.2022.12.18.23.51.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 18 Dec 2022 23:51:40 -0800 (PST) From: menglong8.dong@gmail.com X-Google-Original-From: imagedong@tencent.com To: pabeni@redhat.com, mathew.j.martineau@linux.intel.com, matthieu.baerts@tessares.net Cc: mptcp@lists.linux.dev, Menglong Dong Subject: [PATCH mptcp-next v9 3/6] mptcp: add statistics for mptcp socket in use Date: Mon, 19 Dec 2022 15:50:45 +0800 Message-Id: <20221219075048.255811-4-imagedong@tencent.com> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221219075048.255811-1-imagedong@tencent.com> References: <20221219075048.255811-1-imagedong@tencent.com> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Menglong Dong Do the statistics of mptcp socket in use with sock_prot_inuse_add(). Therefore, we can get the count of used mptcp socket from /proc/net/protocols: & cat /proc/net/protocols protocol size sockets memory press maxhdr slab module cl co di ac io= in de sh ss gs se re sp bi br ha uh gp em MPTCPv6 2048 0 0 no 0 yes kernel y n y y y= y y y y y y y n n n y y y n MPTCP 1896 1 0 no 0 yes kernel y n y y y= y y y y y y y n n n y y y n Signed-off-by: Menglong Dong --- v9: - check the state of msk instead of ssk for listening socket v8: - remove the MPTCP_INUSE flag and do the statistics according to the creation and destruction of the token v6: - introduce the 'MPTCP_INUSE' flag and check if msk is in use by it v5: - rebase to solve merge conflict v4: - rename MPTCP_DESTROIED to MPTCP_DESTROYED v2: - decrease the statistics for listening mptcp socket inuse with mptcp_listen_inuse_dec() - add MPTCP_DESTROIED flags to store if mptcp_destroy_common() was called on the msk. For fallback case, we need to decrease the --- net/mptcp/protocol.c | 12 +++++++++++- net/mptcp/token.c | 6 ++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 3de45444557d..44d66bd0f51e 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2907,6 +2907,12 @@ static __poll_t mptcp_check_readable(struct mptcp_so= ck *msk) return EPOLLIN | EPOLLRDNORM; } =20 +static void mptcp_listen_inuse_dec(struct sock *sk) +{ + if (inet_sk_state_load(sk) =3D=3D TCP_LISTEN) + sock_prot_inuse_add(sock_net(sk), sk->sk_prot, -1); +} + bool __mptcp_close(struct sock *sk, long timeout) { struct mptcp_subflow_context *subflow; @@ -2916,6 +2922,7 @@ bool __mptcp_close(struct sock *sk, long timeout) sk->sk_shutdown =3D SHUTDOWN_MASK; =20 if ((1 << sk->sk_state) & (TCPF_LISTEN | TCPF_CLOSE)) { + mptcp_listen_inuse_dec(sk); inet_sk_state_store(sk, TCP_CLOSE); goto cleanup; } @@ -3016,6 +3023,7 @@ static int mptcp_disconnect(struct sock *sk, int flag= s) if (msk->fastopening) return 0; =20 + mptcp_listen_inuse_dec(sk); inet_sk_state_store(sk, TCP_CLOSE); =20 mptcp_stop_timer(sk); @@ -3674,8 +3682,10 @@ static int mptcp_listen(struct socket *sock, int bac= klog) =20 err =3D ssock->ops->listen(ssock, backlog); inet_sk_state_store(sk, inet_sk_state_load(ssock->sk)); - if (!err) + if (!err) { + sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1); mptcp_copy_inaddrs(sk, ssock->sk); + } =20 mptcp_event_pm_listener(ssock->sk, MPTCP_EVENT_LISTENER_CREATED); =20 diff --git a/net/mptcp/token.c b/net/mptcp/token.c index 968008f6db45..5cca503f8899 100644 --- a/net/mptcp/token.c +++ b/net/mptcp/token.c @@ -153,6 +153,7 @@ int mptcp_token_new_connect(struct sock *ssk) struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(ssk); struct mptcp_sock *msk =3D mptcp_sk(subflow->conn); int retries =3D MPTCP_TOKEN_MAX_RETRIES; + struct sock *sk =3D subflow->conn; struct token_bucket *bucket; =20 again: @@ -175,6 +176,7 @@ int mptcp_token_new_connect(struct sock *ssk) __sk_nulls_add_node_rcu((struct sock *)msk, &bucket->msk_chain); bucket->chain_len++; spin_unlock_bh(&bucket->lock); + sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1); return 0; } =20 @@ -190,8 +192,10 @@ void mptcp_token_accept(struct mptcp_subflow_request_s= ock *req, struct mptcp_sock *msk) { struct mptcp_subflow_request_sock *pos; + struct sock *sk =3D (struct sock *)msk; struct token_bucket *bucket; =20 + sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1); bucket =3D token_bucket(req->token); spin_lock_bh(&bucket->lock); =20 @@ -370,12 +374,14 @@ void mptcp_token_destroy_request(struct request_sock = *req) */ void mptcp_token_destroy(struct mptcp_sock *msk) { + struct sock *sk =3D (struct sock *)msk; struct token_bucket *bucket; struct mptcp_sock *pos; =20 if (sk_unhashed((struct sock *)msk)) return; =20 + sock_prot_inuse_add(sock_net(sk), sk->sk_prot, -1); bucket =3D token_bucket(msk->token); spin_lock_bh(&bucket->lock); pos =3D __token_lookup_msk(bucket, msk->token); --=20 2.37.2 From nobody Mon Apr 29 07:00:36 2024 Received: from mail-pl1-f196.google.com (mail-pl1-f196.google.com [209.85.214.196]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A0D17ED2 for ; Mon, 19 Dec 2022 07:51:48 +0000 (UTC) Received: by mail-pl1-f196.google.com with SMTP id m4so8242685pls.4 for ; Sun, 18 Dec 2022 23:51:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=u1ymkI2ZS9oEdM8+QN725eb8XM7yvFMf0CKAT7LDW2M=; b=XRNUS9xA/ydUnguaeoTj3YMu/tYb4kwv7t9lbpzzK37+0rB238of73fqB6R3CG6fqE INWMRy98e9x1i5s+JeqxR9Yaa70Mhp6l8O73ZcE7UXhoP0bWDiPZFn0SgqJSTu61v+QQ QmIP1a++YlDrZX6yFXEdv+xGTT117+jRFQZmI09OM0BIHabDccA61oiPbPfkmPMDAjyj aeMjlM2lAdlZ8Ou0e9DOfJyePuyALeUnfI28xrt7LVHdl55lGcuypg8EcUxgdNG1kRo1 bagmcjhvUYXgD57NOo/nf5AoAY1512eKkPOy/XxXQ7lqwiGv+C6BXKm8fM1G1ucK6L5x iLjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=u1ymkI2ZS9oEdM8+QN725eb8XM7yvFMf0CKAT7LDW2M=; b=MPtL1FBWZCaCPsUEnDewRglxcAPaOvgszKQutj/X2V0SMOGFWxyu/wXcTs2u2L5xZD 8K0sVygdnkmUv4TMCdG2kCp81sl8So50BsRWKrJf7dt9ZH5dKlTB1+o67nRBKqA5ria7 smP8qLVfARp5MUkMY4cwFeZjlcfpbtA8kDj4ti4rGasuRcG+kn4ocsQa7aAT0QryAMCx BIALlNdbFNr5uUM7TUg9jAgQ3YSSb+p2nbLqJL5o60/Eo85wcaoZ75jfnTewz0V0y/jT UtNaVyBN7/Froti0kCSUFQy4k0AFIxOjmCWGvLwSKgxfTlMqaoBdM/LBqTUHFeKKJbJF 4CdA== X-Gm-Message-State: AFqh2kqPZ66pYqn0lIyPS3UlLcXvI1nAU7xBqoqgmkYFI65JLcHalT8N /3CspxXTZIH4kCXE1b+Vsmk= X-Google-Smtp-Source: AMrXdXuda6ex+o0bLC0rqlwqwWiTzoqXMbQJIxtoyyS3g7qcVjUq3EYyAzalTQ1ujaaO/yMgHbPkCQ== X-Received: by 2002:a17:902:f113:b0:191:7d3:7fe4 with SMTP id e19-20020a170902f11300b0019107d37fe4mr10585234plb.59.1671436308100; Sun, 18 Dec 2022 23:51:48 -0800 (PST) Received: from localhost.localdomain ([203.205.141.21]) by smtp.gmail.com with ESMTPSA id t9-20020a170902e84900b001888cadf8f6sm6366673plg.49.2022.12.18.23.51.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 18 Dec 2022 23:51:47 -0800 (PST) From: menglong8.dong@gmail.com X-Google-Original-From: imagedong@tencent.com To: pabeni@redhat.com, mathew.j.martineau@linux.intel.com, matthieu.baerts@tessares.net Cc: mptcp@lists.linux.dev, Menglong Dong Subject: [PATCH mptcp-next v9 4/6] mptcp: init sk->sk_prot in build_msk() Date: Mon, 19 Dec 2022 15:50:46 +0800 Message-Id: <20221219075048.255811-5-imagedong@tencent.com> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221219075048.255811-1-imagedong@tencent.com> References: <20221219075048.255811-1-imagedong@tencent.com> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Menglong Dong The 'sk_prot' field in token KUNIT self-tests will be dereferenced in mptcp_token_new_connect(). Therefore, init it with tcp_prot. Signed-off-by: Menglong Dong --- net/mptcp/token_test.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/net/mptcp/token_test.c b/net/mptcp/token_test.c index 5d984bec1cd8..0758865ab658 100644 --- a/net/mptcp/token_test.c +++ b/net/mptcp/token_test.c @@ -57,6 +57,9 @@ static struct mptcp_sock *build_msk(struct kunit *test) KUNIT_EXPECT_NOT_ERR_OR_NULL(test, msk); refcount_set(&((struct sock *)msk)->sk_refcnt, 1); sock_net_set((struct sock *)msk, &init_net); + + /* be sure the token helpers can dereference sk->sk_prot */ + ((struct sock *)msk)->sk_prot =3D &tcp_prot; return msk; } =20 --=20 2.37.2 From nobody Mon Apr 29 07:00:36 2024 Received: from mail-pj1-f68.google.com (mail-pj1-f68.google.com [209.85.216.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9940AED2 for ; Mon, 19 Dec 2022 07:51:54 +0000 (UTC) Received: by mail-pj1-f68.google.com with SMTP id u15-20020a17090a3fcf00b002191825cf02so8098001pjm.2 for ; Sun, 18 Dec 2022 23:51:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=NRCLrOsnQv07IXKjODW+I7y37LWMYDrzNA1WfJvP1nQ=; b=aFr5rZujt1sXwrZgxD4tNKDjdGWwr+C6YyhxLNvsqhfDHI+SYYlRc2gkj3gYAjXQkz cgQSLAg2fso0ko8QiHp0coehhdAK9VycDGmeXcayPLngNCvjzzAUH0YSCI7a/D+9vOkZ ZeulcxyuKkvf7pti3gGAt7tEK7qMccQqFelOorJdKo3Bi5EaSHxriuKp7uA04oej34AP YvLqQPK/QoyaRE7w3ncvKgUZbRU19fcb8ZpLg4x3IwOO6Aymls4iTwtEO85KrOBzktyu rodGZLP3UqTdKMMh+/aDU85PWPcySgto7Glj4FZWakwgiTJxC5hhESUyJMlel13jjWhO 40Bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NRCLrOsnQv07IXKjODW+I7y37LWMYDrzNA1WfJvP1nQ=; b=opBHL1UzzU4qm0wsdNAKOOYaaNVI+AIcm7+3klCRd/XWlRiQI13Hf4+xfniyBS7oBh VNAdSdO/jS/VFuQu9LSkwljXxM4Q+53aG6AGGzTBQTomiuW68Arc9MIqCcy3SRre4HR2 YeuIKb32fVg/dEeGRdsPAmbyZpY1b6HQoDfsDg1/i9KrWFPti/BBbRLDE51YzFCrnK31 n4zQSFyvJRlM6uQUR0ke/pbMfk/32/Ih3oW1+0kx+X0bWXBU4p6h5LYGJ8b9fBnbHQQF XXZGPpS/7j3XWCBSfOMgA+liT46/0Gkyv9R+5Oc94r08IVhMMiitN0OALGURnEti2nhr ASyg== X-Gm-Message-State: AFqh2kpsMuSoI08OdBwVUtjJgbfs76Kgh+SkhB8JHSxB5fO5MWVB91AK SPxtWGl7M5DC+qDrr7ER/i0= X-Google-Smtp-Source: AMrXdXvWPtdF00rydtboidd9lSqgiFmRaDt/0tc4WGgpZPSFtRBY8dLyt6JtZSwCcMlxy9TZKO5Lgw== X-Received: by 2002:a17:902:b48e:b0:191:1729:d7e7 with SMTP id y14-20020a170902b48e00b001911729d7e7mr7207780plr.67.1671436314339; Sun, 18 Dec 2022 23:51:54 -0800 (PST) Received: from localhost.localdomain ([203.205.141.21]) by smtp.gmail.com with ESMTPSA id t9-20020a170902e84900b001888cadf8f6sm6366673plg.49.2022.12.18.23.51.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 18 Dec 2022 23:51:54 -0800 (PST) From: menglong8.dong@gmail.com X-Google-Original-From: imagedong@tencent.com To: pabeni@redhat.com, mathew.j.martineau@linux.intel.com, matthieu.baerts@tessares.net Cc: mptcp@lists.linux.dev, Menglong Dong Subject: [PATCH mptcp-next v9 5/6] selftest: mptcp: exit from copyfd_io_poll() when receive SIGUSR1 Date: Mon, 19 Dec 2022 15:50:47 +0800 Message-Id: <20221219075048.255811-6-imagedong@tencent.com> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221219075048.255811-1-imagedong@tencent.com> References: <20221219075048.255811-1-imagedong@tencent.com> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Menglong Dong For now, mptcp_connect won't exit after receiving the 'SIGUSR1' signal if '-r' is set. Fix this by skipping poll and sleep in copyfd_io_poll() if 'quit' is set. Signed-off-by: Menglong Dong --- tools/testing/selftests/net/mptcp/mptcp_connect.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.c b/tools/test= ing/selftests/net/mptcp/mptcp_connect.c index 8a8266957bc5..b25a31445ded 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.c +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.c @@ -627,7 +627,7 @@ static int copyfd_io_poll(int infd, int peerfd, int out= fd, char rbuf[8192]; ssize_t len; =20 - if (fds.events =3D=3D 0) + if (fds.events =3D=3D 0 || quit) break; =20 switch (poll(&fds, 1, poll_timeout)) { @@ -733,7 +733,7 @@ static int copyfd_io_poll(int infd, int peerfd, int out= fd, } =20 /* leave some time for late join/announce */ - if (cfg_remove) + if (cfg_remove && !quit) usleep(cfg_wait); =20 return 0; --=20 2.37.2 From nobody Mon Apr 29 07:00:36 2024 Received: from mail-pj1-f68.google.com (mail-pj1-f68.google.com [209.85.216.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C7770ED2 for ; Mon, 19 Dec 2022 07:51:58 +0000 (UTC) Received: by mail-pj1-f68.google.com with SMTP id hd14-20020a17090b458e00b0021909875bccso13257005pjb.1 for ; Sun, 18 Dec 2022 23:51:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dgtwbM9/80y8yPptKc/3f93/fPhOk90dsnObLjOfD9E=; b=WocQqoa7JMkuKxXK2npT5IGrZFbgAlKadqjJXUs5fDeK7veD/yo7rrQxYAW4HyEqxA 2telHvZTY+iiEoFXZ58hfUiBzms3EzZbgDdoQvegRwyPoNEZVJ4OFKRTqYjCrl9Kr/LW QLYAz+9sZd8aedwQc7rYya39HI5RISp5sEWwTMyoZDJOSr07qmADhnlUJ6sjDryZJTM4 wGP6oH8jQp4UhqEqBVYfXexNv3lOyu5q+xnzYKe/2jE7QHMSo/canxujRbDuZzZv5Bj5 fylQctEY8ZMHDeJVHdxr52u6aYDLGuL7IUuCq5yt+vxWTlj6DvsPvcfe7IVCwF2uFuPI Cc5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dgtwbM9/80y8yPptKc/3f93/fPhOk90dsnObLjOfD9E=; b=HHp1bMVDoBs/YLLWcwg3fj4wVdNFScnxMywPLO/dxAfLGp8DndUnvCfFxjvP/6gKL5 +xh2YxgdSQYSlPC1RLWx8y4wWjgx0uXtIdCCOSi1qT86CIsRZ19D3MVwj8K0vDfg5zwO 5CoYwgqWsnGbDb6SKRWYvMFyJhpgqNPW/6HOsvg/EjL1uIEJXlB1An0wpDPi0y//+Ptf hvWcrqN/gMrnhy5H3UMPGry1Caw7del/kkc8WpW1+9YIg9Q4BjAdZ8MZzghSpB/bkJIO 7thh0IdcHeLbH+KhmxDlN9dIvCY4PI0U2AFni8llbLtPh2lqN/iVbLnmRxR7p1vktQbW ZjFw== X-Gm-Message-State: ANoB5pnSkWR1LTXJp3jHGoO4/DGIlPfGNHSGKLukzV0PK1R4+xQbRM5W 4BwwC+kfBQlQXF59BwZIgM0= X-Google-Smtp-Source: AA0mqf5O1ozw49omwKLXqPCnQzXIkEw6dMqPORFNjNOpzLIJrGhRg7/1oIXihBJ16gTpQ0VCyoczQw== X-Received: by 2002:a17:903:264b:b0:189:ec62:3b2d with SMTP id je11-20020a170903264b00b00189ec623b2dmr44070853plb.4.1671436318361; Sun, 18 Dec 2022 23:51:58 -0800 (PST) Received: from localhost.localdomain ([203.205.141.21]) by smtp.gmail.com with ESMTPSA id t9-20020a170902e84900b001888cadf8f6sm6366673plg.49.2022.12.18.23.51.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 18 Dec 2022 23:51:58 -0800 (PST) From: menglong8.dong@gmail.com X-Google-Original-From: imagedong@tencent.com To: pabeni@redhat.com, mathew.j.martineau@linux.intel.com, matthieu.baerts@tessares.net Cc: mptcp@lists.linux.dev, Menglong Dong Subject: [PATCH mptcp-next v9 6/6] selftest: mptcp: add test for mptcp socket in use Date: Mon, 19 Dec 2022 15:50:48 +0800 Message-Id: <20221219075048.255811-7-imagedong@tencent.com> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221219075048.255811-1-imagedong@tencent.com> References: <20221219075048.255811-1-imagedong@tencent.com> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Menglong Dong Add the function chk_msk_inuse() to diag.sh, which is used to check the statistics of mptcp socket in use. As mptcp socket in listen state will be closed randomly after 'accept', we need to get the count of listening mptcp socket through 'ss' command. All tests pass. Signed-off-by: Menglong Dong --- v7: - check all processes exit in flush_pids() --- tools/testing/selftests/net/mptcp/diag.sh | 56 +++++++++++++++++++++-- 1 file changed, 51 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/diag.sh b/tools/testing/self= tests/net/mptcp/diag.sh index 24bcd7b9bdb2..ef628b16fe9b 100755 --- a/tools/testing/selftests/net/mptcp/diag.sh +++ b/tools/testing/selftests/net/mptcp/diag.sh @@ -17,6 +17,11 @@ flush_pids() sleep 1.1 =20 ip netns pids "${ns}" | xargs --no-run-if-empty kill -SIGUSR1 &>/dev/null + + for _ in $(seq 10); do + [ -z "$(ip netns pids "${ns}")" ] && break + sleep 0.1 + done } =20 cleanup() @@ -37,15 +42,20 @@ if [ $? -ne 0 ];then exit $ksft_skip fi =20 +get_msk_inuse() +{ + ip netns exec $ns cat /proc/net/protocols | awk '$1~/^MPTCP$/{print $3}' +} + __chk_nr() { - local condition=3D"$1" + local command=3D"$1" local expected=3D$2 local msg nr =20 shift 2 msg=3D$* - nr=3D$(ss -inmHMN $ns | $condition) + nr=3D$(eval $command) =20 printf "%-50s" "$msg" if [ $nr !=3D $expected ]; then @@ -57,9 +67,17 @@ __chk_nr() test_cnt=3D$((test_cnt+1)) } =20 +__chk_msk_nr() +{ + local condition=3D$1 + shift 1 + + __chk_nr "ss -inmHMN $ns | $condition" $* +} + chk_msk_nr() { - __chk_nr "grep -c token:" $* + __chk_msk_nr "grep -c token:" $* } =20 wait_msk_nr() @@ -97,12 +115,12 @@ wait_msk_nr() =20 chk_msk_fallback_nr() { - __chk_nr "grep -c fallback" $* + __chk_msk_nr "grep -c fallback" $* } =20 chk_msk_remote_key_nr() { - __chk_nr "grep -c remote_key" $* + __chk_msk_nr "grep -c remote_key" $* } =20 __chk_listen() @@ -142,6 +160,26 @@ chk_msk_listen() nr=3D$(ss -Ml $filter | wc -l) } =20 +chk_msk_inuse() +{ + local expected=3D$1 + local listen_nr + + shift 1 + + listen_nr=3D$(ss -N "${ns}" -Ml | grep -c LISTEN) + expected=3D$((expected + listen_nr)) + + for _ in $(seq 10); do + if [ $(get_msk_inuse) -eq $expected ];then + break + fi + sleep 0.1 + done + + __chk_nr get_msk_inuse $expected $* +} + # $1: ns, $2: port wait_local_port_listen() { @@ -195,8 +233,10 @@ wait_connected $ns 10000 chk_msk_nr 2 "after MPC handshake " chk_msk_remote_key_nr 2 "....chk remote_key" chk_msk_fallback_nr 0 "....chk no fallback" +chk_msk_inuse 2 "....chk 2 msk in use" flush_pids =20 +chk_msk_inuse 0 "....chk 0 msk in use after flush" =20 echo "a" | \ timeout ${timeout_test} \ @@ -211,8 +251,11 @@ echo "b" | \ 127.0.0.1 >/dev/null & wait_connected $ns 10001 chk_msk_fallback_nr 1 "check fallback" +chk_msk_inuse 1 "....chk 1 msk in use" flush_pids =20 +chk_msk_inuse 0 "....chk 0 msk in use after flush" + NR_CLIENTS=3D100 for I in `seq 1 $NR_CLIENTS`; do echo "a" | \ @@ -232,6 +275,9 @@ for I in `seq 1 $NR_CLIENTS`; do done =20 wait_msk_nr $((NR_CLIENTS*2)) "many msk socket present" +chk_msk_inuse $((NR_CLIENTS*2)) "....chk many msk in use" flush_pids =20 +chk_msk_inuse 0 "....chk 0 msk in use after flush" + exit $ret --=20 2.37.2