From nobody Tue Apr 30 20:57:31 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 32D8C10EF for ; Mon, 19 Dec 2022 10:24:25 +0000 (UTC) Received: by mail-pj1-f67.google.com with SMTP id w4-20020a17090ac98400b002186f5d7a4cso12567962pjt.0 for ; Mon, 19 Dec 2022 02:24:25 -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=qHyuyv+aKvhuD59QBvrnsY3H3BMXw4mTCFsMNKDzSzeLKIaY4BzwVyLo3ZE24kaish uL8j5XivyvY0sXjVR/aFLdSL3fYARmzsdO/jc1aiiC3eDHeNFS9GNiBvWYC8xNxfMG2c KW5QnFG+0SaP/0k7Cw8BiPl9cqkFpFpZE7rPt1R8z8cs1SCx7h3hSnz80EE/DOchJjtR /2Y34wL5vA4H8Z3EIWtB5ZpZ+6fVVKokkPzM49VmF02caJzbPVZ4ylXwRZiRTtbFhgFx mTbLJ36c97SLuS6G/7h1nRXnhXrosIX7Zzo4W0zK8bk4RtOs+EMAS4X7P57arzuEuvBT bzig== 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=nQw/ZQ7jHnnA3snuMRv1a54CTG4nLDdUjC6jc0bFsrLfKZ/MweRWeQTOSq3TUBSNNQ yzI8MGq/LbiXx0NSVw+rUmgrBrUO+KCd1NoBfDqENuZ0L77vhfljQeDv3bAUvD1ehWAy wHPuk/hQ0i3eyAzJlRmx54qScEgDgufbwy0zXrG50iuq7lBwCXNxVJnm4HRaoLcDC/ZJ yfnN9Bev7S4aH3maB46k/Q5Cbq3fJGWIouU2v9av4M1o+KU4xgua9Gx6//8WctyVqo4m wVjDWeoXl7kJ7HEcM5Em3cW5D60av72WKdEk//aSco6lwIRu61V3enaf8HtaCmPoqyNa YNQQ== X-Gm-Message-State: ANoB5plo6P9PmRXWkCPvSpTGmF3N+Q2+Rn5fU4prHxbE7Kzxb7ZXzjlP YDzAcvQoBF/GZjMRK4IuxGrrUCHbdLjB7Q== X-Google-Smtp-Source: AA0mqf5f1gBrNjPRVfZ0KwCxgw6cLoAoaojf//fvSvS/TVwDnKfKo8rzLNkuqaYoUokGS2G/O+8Y3A== X-Received: by 2002:a05:6a20:bf02:b0:af:1a39:553d with SMTP id gc2-20020a056a20bf0200b000af1a39553dmr21527791pzb.14.1671445463155; Mon, 19 Dec 2022 02:24:23 -0800 (PST) Received: from localhost.localdomain ([203.205.141.23]) by smtp.gmail.com with ESMTPSA id n5-20020a056a00212500b005775c52dbc4sm6206517pfj.167.2022.12.19.02.24.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Dec 2022 02:24:22 -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 v10 1/6] mptcp: introduce 'sk' to replace 'sock->sk' in mptcp_listen() Date: Mon, 19 Dec 2022 18:23:11 +0800 Message-Id: <20221219102316.627491-2-imagedong@tencent.com> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221219102316.627491-1-imagedong@tencent.com> References: <20221219102316.627491-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 Acked-by: Paolo Abeni --- 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 Tue Apr 30 20:57:31 2024 Received: from mail-pg1-f196.google.com (mail-pg1-f196.google.com [209.85.215.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 545341103 for ; Mon, 19 Dec 2022 10:24:25 +0000 (UTC) Received: by mail-pg1-f196.google.com with SMTP id v3so5857191pgh.4 for ; Mon, 19 Dec 2022 02:24:25 -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=No8pIptm0ucrQlnf+PCggDcfUzXNotEMHWBRGaTVDcppKuLefJEDvmEutTNnc8Mh5F eLPnGHQkCrzSX2ky8Yq0WZnCjtv7BJepff8nIT5yLSb0jvPKSIRt34QUcPP+3WeucKg+ C1S4zdRXTsa3w2dYYnka+IWGyQRScyFzTGcmG+GZDrX20sbRdpdhRGAe5Q++V1vQkoyj vICNmjiPG4cLwK7RR8nI67j32abyTOenR4kt6xkbEQDWZwvPMN169032B+oCoGoaJ7VY xwfKf3L1UASsluEPTkcNIFecnF4YSXi62VZhjEBWPlhODHeIrKNjsyuFb/GhVse/HS8f CjPg== 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=7KueeOdG+VfCP8pWjEb5BVtbUIt5r1YCRnEYt+7S/zdWSyg6szWTKF/cTgiSQItDUx /rk8mUc099+RdNZXjq35QYHk3+P1epaQIKX/WKj3CDJBTSMPcynPULd0jXMiTzK28JbH PwwH7i366vhvwEzzw3ACiMu8QiQjHR7PFUXq7u9XqNGUWL64XWRqBvCH+G4Xy6WpIZxf lKObiEmsTkHDWJ1vTzXiKvVV9IzXE6HZeNxwc7Q8rwqF0gfiEJ2FirdRff0RROJjRUNM tP015I4FVmlkwCeZ/ieQ3f7oifN6PfVQsQk3PgaRW/liSWV9MupZl1ENdU4Htmzuktd7 pL9w== X-Gm-Message-State: ANoB5pl7FQH/LFYk2UTU6FzqzN7YfBBH1KIe1bYdyb6lR8cfNsJIDZqc 75PwKUjjVb5tsGGo+4wtytE= X-Google-Smtp-Source: AA0mqf5auK8INFIf/q+u75esm1AxnJ080UAXTIQnOVUmsqHFfZWEK17slaJmGBZzR7F+x9n0A6olyA== X-Received: by 2002:a05:6a00:1d14:b0:57b:30b6:9e85 with SMTP id a20-20020a056a001d1400b0057b30b69e85mr22172047pfx.22.1671445465046; Mon, 19 Dec 2022 02:24:25 -0800 (PST) Received: from localhost.localdomain ([203.205.141.23]) by smtp.gmail.com with ESMTPSA id n5-20020a056a00212500b005775c52dbc4sm6206517pfj.167.2022.12.19.02.24.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Dec 2022 02:24:24 -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 v10 2/6] mptcp: init sk->sk_prot in build_msk() Date: Mon, 19 Dec 2022 18:23:12 +0800 Message-Id: <20221219102316.627491-3-imagedong@tencent.com> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221219102316.627491-1-imagedong@tencent.com> References: <20221219102316.627491-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 Acked-by: Paolo Abeni --- 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 Tue Apr 30 20:57:31 2024 Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com [209.85.210.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 A471D1103 for ; Mon, 19 Dec 2022 10:24:27 +0000 (UTC) Received: by mail-pf1-f196.google.com with SMTP id d82so5867895pfd.11 for ; Mon, 19 Dec 2022 02:24: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=sBA7CV3EQ+9fTM1bMrHYppBeRTRpqJ3IwFrDYg4UjbQ=; b=V3KHqeF7rwEEANkts+YM+6FDj5/YnRGZVUM9gqGODq1hzYr3+EguK6PYsUFNtEgXD4 Cpf8HTltQh7AfuoanWRy9yOSq18nfRXBXh4O8EaAcz1e40YOK/9UCDfZn6i+CK+U5OyI 3uNHyHybYGPXXbvSRcv3gvWg/gIHqMQr/MuwlQN2FoP2s1lsAfUAhvWtDOTPN4SEITrP YSmHakWP+B2TKNlMnoQLGYIodh+LGi/BBO6owioeOgSRMqkW7XIvJGKAmW+c8bdH2c95 633iJHttsca5Xj2Qg4du+y4NEwBwlastQJXc4S+3D8DA5xnOpCR0/SLJipoUOQ7mhpcJ dQpg== 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=sBA7CV3EQ+9fTM1bMrHYppBeRTRpqJ3IwFrDYg4UjbQ=; b=1GMQVOfqmOU7KTmdgQy/X8wX4GhK7dqWRsYV/K83TjfAIklaQ2EtRJn5utIMNzLSks Fs2GYcxMMHgm57RPmxAC1OD/J7qaZnAvdaDTvNSHe+kKAWNMDIUWGr53hg2KNDZrgR/t jHzKr47dPF95Yy/wIWds08JkkVc9smjCw/ewJzyL9pgyp7yMpTxyoZNxXyoMZmaz1Mro hnAf8v9T00p1rbXzjzSzr7bSmpTRGm702MGtV6oeRwZyoYKNwM6FpPa8Br481MiipDko KtFnHvUNVKnbn2hsht5BahIM1tL9TWtVLt2gBrlubbtVUqiIU3Vxf4YbNSiABAFH3Rb3 I2DA== X-Gm-Message-State: ANoB5pnqMmx+H9BYW3T7/0tIwSgzu688oc5UrFEHc2g9scp2sp1EoawJ AfZDm77jof/VacXotZaCM4o= X-Google-Smtp-Source: AA0mqf7/rUJ5GfZvIRF9hcIdKquxtP0Il7qBTA7NYCP6rPFrDE+ZY1c7i3ZjimY5vrRHnLYQ9hDnaw== X-Received: by 2002:aa7:8190:0:b0:575:62f8:be3 with SMTP id g16-20020aa78190000000b0057562f80be3mr41242794pfi.23.1671445467166; Mon, 19 Dec 2022 02:24:27 -0800 (PST) Received: from localhost.localdomain ([203.205.141.23]) by smtp.gmail.com with ESMTPSA id n5-20020a056a00212500b005775c52dbc4sm6206517pfj.167.2022.12.19.02.24.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Dec 2022 02:24: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 v10 3/6] mptcp: rename 'sk' to 'ssk' in mptcp_token_new_connect() Date: Mon, 19 Dec 2022 18:23:13 +0800 Message-Id: <20221219102316.627491-4-imagedong@tencent.com> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221219102316.627491-1-imagedong@tencent.com> References: <20221219102316.627491-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 Acked-by: Paolo Abeni --- net/mptcp/protocol.h | 2 +- net/mptcp/token.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 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..3af502a374bc 100644 --- a/net/mptcp/token.c +++ b/net/mptcp/token.c @@ -134,7 +134,7 @@ int mptcp_token_new_request(struct request_sock *req) =20 /** * mptcp_token_new_connect - create new key/idsn/token for subflow - * @sk: the socket that will initiate a connection + * @ssk: the socket that will initiate a connection * * This function is called when a new outgoing mptcp connection is * initiated. @@ -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 Tue Apr 30 20:57:31 2024 Received: from mail-pg1-f195.google.com (mail-pg1-f195.google.com [209.85.215.195]) (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 A7D7A1103 for ; Mon, 19 Dec 2022 10:24:29 +0000 (UTC) Received: by mail-pg1-f195.google.com with SMTP id f9so5848804pgf.7 for ; Mon, 19 Dec 2022 02:24:29 -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=2eznFO0FQwtsakZQdqcxO08Mb1n5oGDnzgKuwaM5OXw=; b=bUmDLU4j4o99IrR6Yf/qCTKri1Uh0sdcD3JZXEAgj40BGo0+A1KCJDzf2QaOLx+T8g q/fttAa8y5RcvDMS25GY1zuA084Rx8cSxNKOinABc8bPpCjdwI++xGB/pfqU8pJ92q14 PdTLYpduOMtDNLGcSWfC2Bv+59Me8U9WmaoJV70y+Ir3kezi6N8uJvpVscbVjaPyMz3d yd5ggrgk8YE4JJHYWgbl+2iyoJRW4X6Z0nZ1dqBiYlIkqgCNTfJ0MckGC4L+NmqYxL88 0HoNDlhsIVmAJcwV+nis4OV1/KTutjF736QvHxWMG73QCatIUlaT0DyHvPpADUSsnE/F K8gg== 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=2eznFO0FQwtsakZQdqcxO08Mb1n5oGDnzgKuwaM5OXw=; b=IugwLJrFxtOTNu6jVrUM1HDD+/39gw81RgtQLxOwGMtOAm+XhsGzfgTnxPaq3FIra3 cXbZnp4SEaiB3QKS344igkOJS4qLsxXBBj8y2YEy46WbUFKRYYPTKSwRhN/+Oy2nYemi qC+N7eO9a/9aWm28EbBd2tx7iqkK8G8WlakdIt1JTmt2t1rGiU2a+xUt69MXS1oL5lLh H3BLnZReqjVoqM8kGtoZSHLIjGA/YNu1mUgaujBPY+BZ56ZMMBl5jGJWbsUkoDlxx1qA dK7mr2MxJWR+Ji4IISpNaRJzm8qS0WVacNqWZDYtTc7UQI7nyxEXtWik+SWblLh7S8mb x6OQ== X-Gm-Message-State: ANoB5pk3sxLQsrhAt1kIVMywvXD2NcdAVxv+Ybfx+3PDcHKbxtazfcxh o76TNxlTEoxISJcdk0LfJRM= X-Google-Smtp-Source: AA0mqf4/ljACENIiGMN6G+naUr6v93Opzr/kpX88qEwk+KuCxgFyhx6nCcDaazIOmlfgjpF17wdaeA== X-Received: by 2002:a62:ce87:0:b0:577:3546:d7be with SMTP id y129-20020a62ce87000000b005773546d7bemr44675006pfg.30.1671445469138; Mon, 19 Dec 2022 02:24:29 -0800 (PST) Received: from localhost.localdomain ([203.205.141.23]) by smtp.gmail.com with ESMTPSA id n5-20020a056a00212500b005775c52dbc4sm6206517pfj.167.2022.12.19.02.24.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Dec 2022 02:24:28 -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 v10 4/6] mptcp: add statistics for mptcp socket in use Date: Mon, 19 Dec 2022 18:23:14 +0800 Message-Id: <20221219102316.627491-5-imagedong@tencent.com> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221219102316.627491-1-imagedong@tencent.com> References: <20221219102316.627491-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 Acked-by: Paolo Abeni --- 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 3af502a374bc..5bb924534387 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 Tue Apr 30 20:57:31 2024 Received: from mail-pf1-f195.google.com (mail-pf1-f195.google.com [209.85.210.195]) (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 8804E10FF for ; Mon, 19 Dec 2022 10:24:31 +0000 (UTC) Received: by mail-pf1-f195.google.com with SMTP id w26so5889808pfj.6 for ; Mon, 19 Dec 2022 02:24:31 -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=Jvk1x1BhKaUvF6PLpojnkc52n1tuqblkDYiR6D0LU4ZUcvm9MptJxHs/zcTSU57CLB jLMm+ygiDNJYT/9ShBjHKnevt+NwquRfGH+mMN/N5wGG7ZVocCJIa1ZoZJy735Sc493V ASXTBaLa9oqwr44UULeyCyjufQwmfAEh4n0bZP+x9FYYCajHkPrXhbt9nlc60qrzgSMH 9n39RR9X/Z+EBclNoq/Csswh6zBU7FS9uy8TnCdZnYinAm36CCSpJLUKHz0TxDsHJtwB LlnwZyEOVwoxujQ2fcXwP03PPihWVhL+Q8bDSDLDBdAEzukj4KoY7iJnrpJJ+UC792Ji pkIg== 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=54RTb9RGLfKB9s7kEL2mhJ7eo+CBi8u+HCBb8iC9ps1oLANk9PA5hAqi5OmtWfX6uw 2u91bSTcZSK1uhnRLXXO0WyCe580PS6hGoaD2bFW/qnLOiCl3FTTP/AL6f2izwZ16b9i G29mSMFEdZ4gao2JCy+OmIaD+OMgMGLzKlI1wEqG9GABssUJQyzL3WCB9gU38Zrjm5EX luBNjPJMbypnLp1QeNdFbI6flMFaDL2SaS3EtenZhMAcOW+C7Oi7LrsKM9cTjBlExJcr JqTE1+kCSKquWsik0KPA346E+qsvbztW2uBo0ifUKlFtDiV3Pc7e/rfyGOeyuRXjX4ni D6Eg== X-Gm-Message-State: ANoB5pnwFs4R9J3Ov91Q9YYtiTcaxQOvbSzMbTztxYV1ZHdtTd+j0LS5 g/LfNCMwGbPD58kuCG1l9/E= X-Google-Smtp-Source: AA0mqf7QvUWZGzTRHymf1G+xspmXJ+pvwe5pCttFCyiPPj7co2Qm9Fjzl9mcgWFdSCLI6ChXVTKVHg== X-Received: by 2002:a62:640f:0:b0:574:f1bc:bbee with SMTP id y15-20020a62640f000000b00574f1bcbbeemr39385825pfb.31.1671445471045; Mon, 19 Dec 2022 02:24:31 -0800 (PST) Received: from localhost.localdomain ([203.205.141.23]) by smtp.gmail.com with ESMTPSA id n5-20020a056a00212500b005775c52dbc4sm6206517pfj.167.2022.12.19.02.24.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Dec 2022 02:24:30 -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 v10 5/6] selftest: mptcp: exit from copyfd_io_poll() when receive SIGUSR1 Date: Mon, 19 Dec 2022 18:23:15 +0800 Message-Id: <20221219102316.627491-6-imagedong@tencent.com> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221219102316.627491-1-imagedong@tencent.com> References: <20221219102316.627491-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 Acked-by: Paolo Abeni --- 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 Tue Apr 30 20:57:31 2024 Received: from mail-pf1-f193.google.com (mail-pf1-f193.google.com [209.85.210.193]) (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 8317D10EF for ; Mon, 19 Dec 2022 10:24:33 +0000 (UTC) Received: by mail-pf1-f193.google.com with SMTP id 130so5878434pfu.8 for ; Mon, 19 Dec 2022 02:24:33 -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=EPpjMnm8yxW6NQnRy4pjIKiK1ZlT8qqEfAk7p3nz3zUjU/GwxDylge9g3bDYk05b2F 0PjMXgvbZHks6E6yf2mGLf9iz+CIvxzWrjwNJNgojVS6r0lH/918sIIhd0l+svu2tPxK G6+G/Mf+1CwYZIygmV2Iy93nVpu0GXSYZhP5uQ7mU4anf/4cI8AMY6qf1JWDOtXMjDVi Xn29lAo+6RWAsU0o85hlmM2ry7RfuU8rU9m/HRyvP2/tRmwzv43KaXNJZKnx/6dhGBIf 7Py+JJmdmvL3wwtqer+pK9A7mfXdcewvHwEZYsaNq54Q3wd7JVodtx4wjd36bkjt032c oIEw== 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=Qkv/JEltjFIiHIfVkAYX0IwztY3VMSpt+o7eEuROMiAsf+AMMVRUHh5ZHEitZ++FlY 7mVi1g1vaky9E0LKTlLFvskYghzn5/0Fe3sblvo3KXM+PpjXCGRkE99xl0n5eXp9Thxh UKsYNObublmhTTZKCyDDNxEY8Yg42lSghXXacIJOKKKMgpzsWEna1y4/GqfNNMpgMQ+/ VZJRxX9iyerRYPUB+z9fC3eC5TeZwzUwatQi5VpZ2FWMROwA3zajXhfaQt6bBAvhlY5a UXrIhbKi3VFUc8ZOY62N4OFGxRcMVsZCl/XVlkNOdwxyczoha2AJvBg1OjjB/Bf5QzLh suvg== X-Gm-Message-State: ANoB5pme+XYRvwqh1WsoSOqraTImQ/ltx9LIOBwzOxJlwvFFE/LrSVRr 7Mp55YRwVg5CyiH5SQIjL3MqOaahN1uXzg== X-Google-Smtp-Source: AA0mqf6t3nueMA0MnZnG/BYV155un6RbJo8aVnRhmXczwg5gbWSYztQGW4aiPTZ910hgvLE9zHl0rg== X-Received: by 2002:a62:b60c:0:b0:569:a028:a1fd with SMTP id j12-20020a62b60c000000b00569a028a1fdmr37861081pff.34.1671445473000; Mon, 19 Dec 2022 02:24:33 -0800 (PST) Received: from localhost.localdomain ([203.205.141.23]) by smtp.gmail.com with ESMTPSA id n5-20020a056a00212500b005775c52dbc4sm6206517pfj.167.2022.12.19.02.24.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Dec 2022 02:24:32 -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 v10 6/6] selftest: mptcp: add test for mptcp socket in use Date: Mon, 19 Dec 2022 18:23:16 +0800 Message-Id: <20221219102316.627491-7-imagedong@tencent.com> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221219102316.627491-1-imagedong@tencent.com> References: <20221219102316.627491-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 Acked-by: Paolo Abeni --- 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