* [PATCH net-next 0/5] mptcp: Miscellaneous refactoring and small fixes
@ 2022-11-10 23:23 Mat Martineau
2022-11-10 23:23 ` [PATCH net-next 1/5] mptcp: use msk instead of mptcp_sk Mat Martineau
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: Mat Martineau @ 2022-11-10 23:23 UTC (permalink / raw)
To: netdev; +Cc: Mat Martineau, davem, kuba, pabeni, edumazet, matthieu.baerts,
mptcp
Patches 1-3 do some refactoring to more consistently handle sock casts,
and to remove some duplicate code. No functional changes.
Patch 4 corrects a variable name in a self test, but does not change
functionality since the same value gets used due to bash's
scoping rules.
Patch 5 rewords a comment.
Geliang Tang (4):
mptcp: use msk instead of mptcp_sk
mptcp: change 'first' as a parameter
mptcp: get sk from msk directly
selftests: mptcp: use max_time instead of time
Mat Martineau (1):
mptcp: Fix grammar in a comment
net/mptcp/pm_userspace.c | 4 +--
net/mptcp/protocol.c | 34 +++++++------------
net/mptcp/sockopt.c | 4 +--
net/mptcp/token.c | 4 +--
.../selftests/net/mptcp/simult_flows.sh | 4 +--
5 files changed, 21 insertions(+), 29 deletions(-)
base-commit: c1b05105573b2cd5845921eb0d2caa26e2144a34
--
2.38.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH net-next 1/5] mptcp: use msk instead of mptcp_sk
2022-11-10 23:23 [PATCH net-next 0/5] mptcp: Miscellaneous refactoring and small fixes Mat Martineau
@ 2022-11-10 23:23 ` Mat Martineau
2022-11-10 23:23 ` [PATCH net-next 2/5] mptcp: change 'first' as a parameter Mat Martineau
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Mat Martineau @ 2022-11-10 23:23 UTC (permalink / raw)
To: netdev
Cc: Geliang Tang, davem, kuba, pabeni, edumazet, matthieu.baerts,
mptcp, Mat Martineau
From: Geliang Tang <geliang.tang@suse.com>
Use msk instead of mptcp_sk(sk) in the functions where the variable
"msk = mptcp_sk(sk)" has been defined.
Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
---
net/mptcp/protocol.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 109eea2c65ff..64d7070de901 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -1625,7 +1625,7 @@ static void __mptcp_subflow_push_pending(struct sock *sk, struct sock *ssk)
* check for a different subflow usage only after
* spooling the first chunk of data
*/
- xmit_ssk = first ? ssk : mptcp_subflow_get_send(mptcp_sk(sk));
+ xmit_ssk = first ? ssk : mptcp_subflow_get_send(msk);
if (!xmit_ssk)
goto out;
if (xmit_ssk != ssk) {
@@ -2275,7 +2275,7 @@ bool __mptcp_retransmit_pending_data(struct sock *sk)
struct mptcp_data_frag *cur, *rtx_head;
struct mptcp_sock *msk = mptcp_sk(sk);
- if (__mptcp_check_fallback(mptcp_sk(sk)))
+ if (__mptcp_check_fallback(msk))
return false;
if (tcp_rtx_and_write_queues_empty(sk))
@@ -2949,7 +2949,7 @@ bool __mptcp_close(struct sock *sk, long timeout)
sock_hold(sk);
pr_debug("msk=%p state=%d", sk, sk->sk_state);
- if (mptcp_sk(sk)->token)
+ if (msk->token)
mptcp_event(MPTCP_EVENT_CLOSED, msk, NULL, GFP_KERNEL);
if (sk->sk_state == TCP_CLOSE) {
@@ -3008,8 +3008,8 @@ static int mptcp_disconnect(struct sock *sk, int flags)
mptcp_stop_timer(sk);
sk_stop_timer(sk, &sk->sk_timer);
- if (mptcp_sk(sk)->token)
- mptcp_event(MPTCP_EVENT_CLOSED, mptcp_sk(sk), NULL, GFP_KERNEL);
+ if (msk->token)
+ mptcp_event(MPTCP_EVENT_CLOSED, msk, NULL, GFP_KERNEL);
/* msk->subflow is still intact, the following will not free the first
* subflow
--
2.38.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH net-next 2/5] mptcp: change 'first' as a parameter
2022-11-10 23:23 [PATCH net-next 0/5] mptcp: Miscellaneous refactoring and small fixes Mat Martineau
2022-11-10 23:23 ` [PATCH net-next 1/5] mptcp: use msk instead of mptcp_sk Mat Martineau
@ 2022-11-10 23:23 ` Mat Martineau
2022-11-10 23:23 ` [PATCH net-next 3/5] mptcp: get sk from msk directly Mat Martineau
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Mat Martineau @ 2022-11-10 23:23 UTC (permalink / raw)
To: netdev
Cc: Geliang Tang, davem, kuba, pabeni, edumazet, matthieu.baerts,
mptcp, Mat Martineau
From: Geliang Tang <geliang.tang@suse.com>
The function mptcp_subflow_process_delegated() uses the input ssk first,
while __mptcp_check_push() invokes the packet scheduler first.
So this patch adds a new parameter named 'first' for the function
__mptcp_subflow_push_pending() to deal with these two cases separately.
With this change, the code that invokes the packet scheduler in the
function __mptcp_check_push() can be removed, and replaced by invoking
__mptcp_subflow_push_pending() directly.
Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
---
net/mptcp/protocol.c | 20 ++++++--------------
1 file changed, 6 insertions(+), 14 deletions(-)
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 64d7070de901..5a344788f843 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -1602,7 +1602,7 @@ void __mptcp_push_pending(struct sock *sk, unsigned int flags)
__mptcp_check_send_data_fin(sk);
}
-static void __mptcp_subflow_push_pending(struct sock *sk, struct sock *ssk)
+static void __mptcp_subflow_push_pending(struct sock *sk, struct sock *ssk, bool first)
{
struct mptcp_sock *msk = mptcp_sk(sk);
struct mptcp_sendmsg_info info = {
@@ -1611,7 +1611,6 @@ static void __mptcp_subflow_push_pending(struct sock *sk, struct sock *ssk)
struct mptcp_data_frag *dfrag;
struct sock *xmit_ssk;
int len, copied = 0;
- bool first = true;
info.flags = 0;
while ((dfrag = mptcp_send_head(sk))) {
@@ -1621,8 +1620,7 @@ static void __mptcp_subflow_push_pending(struct sock *sk, struct sock *ssk)
while (len > 0) {
int ret = 0;
- /* the caller already invoked the packet scheduler,
- * check for a different subflow usage only after
+ /* check for a different subflow usage only after
* spooling the first chunk of data
*/
xmit_ssk = first ? ssk : mptcp_subflow_get_send(msk);
@@ -3220,16 +3218,10 @@ void __mptcp_check_push(struct sock *sk, struct sock *ssk)
if (!mptcp_send_head(sk))
return;
- if (!sock_owned_by_user(sk)) {
- struct sock *xmit_ssk = mptcp_subflow_get_send(mptcp_sk(sk));
-
- if (xmit_ssk == ssk)
- __mptcp_subflow_push_pending(sk, ssk);
- else if (xmit_ssk)
- mptcp_subflow_delegate(mptcp_subflow_ctx(xmit_ssk), MPTCP_DELEGATE_SEND);
- } else {
+ if (!sock_owned_by_user(sk))
+ __mptcp_subflow_push_pending(sk, ssk, false);
+ else
__set_bit(MPTCP_PUSH_PENDING, &mptcp_sk(sk)->cb_flags);
- }
}
#define MPTCP_FLAGS_PROCESS_CTX_NEED (BIT(MPTCP_PUSH_PENDING) | \
@@ -3320,7 +3312,7 @@ void mptcp_subflow_process_delegated(struct sock *ssk)
if (test_bit(MPTCP_DELEGATE_SEND, &subflow->delegated_status)) {
mptcp_data_lock(sk);
if (!sock_owned_by_user(sk))
- __mptcp_subflow_push_pending(sk, ssk);
+ __mptcp_subflow_push_pending(sk, ssk, true);
else
__set_bit(MPTCP_PUSH_PENDING, &mptcp_sk(sk)->cb_flags);
mptcp_data_unlock(sk);
--
2.38.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH net-next 3/5] mptcp: get sk from msk directly
2022-11-10 23:23 [PATCH net-next 0/5] mptcp: Miscellaneous refactoring and small fixes Mat Martineau
2022-11-10 23:23 ` [PATCH net-next 1/5] mptcp: use msk instead of mptcp_sk Mat Martineau
2022-11-10 23:23 ` [PATCH net-next 2/5] mptcp: change 'first' as a parameter Mat Martineau
@ 2022-11-10 23:23 ` Mat Martineau
2022-11-10 23:23 ` [PATCH net-next 4/5] selftests: mptcp: use max_time instead of time Mat Martineau
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Mat Martineau @ 2022-11-10 23:23 UTC (permalink / raw)
To: netdev
Cc: Geliang Tang, davem, kuba, pabeni, edumazet, matthieu.baerts,
mptcp, Mat Martineau
From: Geliang Tang <geliang.tang@suse.com>
Use '(struct sock *)msk' to get 'sk' from 'msk' in a more direct way
instead of using '&msk->sk.icsk_inet.sk'.
Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
---
net/mptcp/pm_userspace.c | 4 ++--
net/mptcp/protocol.c | 4 ++--
net/mptcp/sockopt.c | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c
index 9e82250cbb70..5cb65f0928f4 100644
--- a/net/mptcp/pm_userspace.c
+++ b/net/mptcp/pm_userspace.c
@@ -291,7 +291,7 @@ int mptcp_nl_cmd_sf_create(struct sk_buff *skb, struct genl_info *info)
goto create_err;
}
- sk = &msk->sk.icsk_inet.sk;
+ sk = (struct sock *)msk;
lock_sock(sk);
err = __mptcp_subflow_connect(sk, &addr_l, &addr_r);
@@ -403,7 +403,7 @@ int mptcp_nl_cmd_sf_destroy(struct sk_buff *skb, struct genl_info *info)
goto destroy_err;
}
- sk = &msk->sk.icsk_inet.sk;
+ sk = (struct sock *)msk;
lock_sock(sk);
ssk = mptcp_nl_find_ssk(msk, &addr_l, &addr_r);
if (ssk) {
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 5a344788f843..3796d1bfef6b 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -2454,7 +2454,7 @@ static bool mptcp_check_close_timeout(const struct sock *sk)
static void mptcp_check_fastclose(struct mptcp_sock *msk)
{
struct mptcp_subflow_context *subflow, *tmp;
- struct sock *sk = &msk->sk.icsk_inet.sk;
+ struct sock *sk = (struct sock *)msk;
if (likely(!READ_ONCE(msk->rcv_fastclose)))
return;
@@ -2616,7 +2616,7 @@ static void mptcp_do_fastclose(struct sock *sk)
static void mptcp_worker(struct work_struct *work)
{
struct mptcp_sock *msk = container_of(work, struct mptcp_sock, work);
- struct sock *sk = &msk->sk.icsk_inet.sk;
+ struct sock *sk = (struct sock *)msk;
unsigned long fail_tout;
int state;
diff --git a/net/mptcp/sockopt.c b/net/mptcp/sockopt.c
index f85e9bbfe86f..f62f6483ef77 100644
--- a/net/mptcp/sockopt.c
+++ b/net/mptcp/sockopt.c
@@ -987,7 +987,7 @@ static int mptcp_getsockopt_tcpinfo(struct mptcp_sock *msk, char __user *optval,
int __user *optlen)
{
struct mptcp_subflow_context *subflow;
- struct sock *sk = &msk->sk.icsk_inet.sk;
+ struct sock *sk = (struct sock *)msk;
unsigned int sfcount = 0, copied = 0;
struct mptcp_subflow_data sfd;
char __user *infoptr;
@@ -1078,8 +1078,8 @@ static void mptcp_get_sub_addrs(const struct sock *sk, struct mptcp_subflow_addr
static int mptcp_getsockopt_subflow_addrs(struct mptcp_sock *msk, char __user *optval,
int __user *optlen)
{
- struct sock *sk = &msk->sk.icsk_inet.sk;
struct mptcp_subflow_context *subflow;
+ struct sock *sk = (struct sock *)msk;
unsigned int sfcount = 0, copied = 0;
struct mptcp_subflow_data sfd;
char __user *addrptr;
--
2.38.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH net-next 4/5] selftests: mptcp: use max_time instead of time
2022-11-10 23:23 [PATCH net-next 0/5] mptcp: Miscellaneous refactoring and small fixes Mat Martineau
` (2 preceding siblings ...)
2022-11-10 23:23 ` [PATCH net-next 3/5] mptcp: get sk from msk directly Mat Martineau
@ 2022-11-10 23:23 ` Mat Martineau
2022-11-10 23:23 ` [PATCH net-next 5/5] mptcp: Fix grammar in a comment Mat Martineau
2022-11-12 6:00 ` [PATCH net-next 0/5] mptcp: Miscellaneous refactoring and small fixes patchwork-bot+netdevbpf
5 siblings, 0 replies; 7+ messages in thread
From: Mat Martineau @ 2022-11-10 23:23 UTC (permalink / raw)
To: netdev
Cc: Geliang Tang, davem, kuba, pabeni, edumazet, matthieu.baerts,
mptcp, Mat Martineau
From: Geliang Tang <geliang.tang@suse.com>
'time' is the local variable of run_test() function, while 'max_time' is
the local variable of do_transfer() function. So in do_transfer(),
$max_time should be used, not $time.
Please note that here $time == $max_time so the behaviour is not changed
but the right variable is used.
Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
---
tools/testing/selftests/net/mptcp/simult_flows.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/testing/selftests/net/mptcp/simult_flows.sh
index ffa13a957a36..af70c14e0bf9 100755
--- a/tools/testing/selftests/net/mptcp/simult_flows.sh
+++ b/tools/testing/selftests/net/mptcp/simult_flows.sh
@@ -173,7 +173,7 @@ do_transfer()
timeout ${timeout_test} \
ip netns exec ${ns3} \
- ./mptcp_connect -jt ${timeout_poll} -l -p $port -T $time \
+ ./mptcp_connect -jt ${timeout_poll} -l -p $port -T $max_time \
0.0.0.0 < "$sin" > "$sout" &
local spid=$!
@@ -181,7 +181,7 @@ do_transfer()
timeout ${timeout_test} \
ip netns exec ${ns1} \
- ./mptcp_connect -jt ${timeout_poll} -p $port -T $time \
+ ./mptcp_connect -jt ${timeout_poll} -p $port -T $max_time \
10.0.3.3 < "$cin" > "$cout" &
local cpid=$!
--
2.38.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH net-next 5/5] mptcp: Fix grammar in a comment
2022-11-10 23:23 [PATCH net-next 0/5] mptcp: Miscellaneous refactoring and small fixes Mat Martineau
` (3 preceding siblings ...)
2022-11-10 23:23 ` [PATCH net-next 4/5] selftests: mptcp: use max_time instead of time Mat Martineau
@ 2022-11-10 23:23 ` Mat Martineau
2022-11-12 6:00 ` [PATCH net-next 0/5] mptcp: Miscellaneous refactoring and small fixes patchwork-bot+netdevbpf
5 siblings, 0 replies; 7+ messages in thread
From: Mat Martineau @ 2022-11-10 23:23 UTC (permalink / raw)
To: netdev; +Cc: Mat Martineau, davem, kuba, pabeni, edumazet, matthieu.baerts,
mptcp
We kept getting initial patches from new contributors to remove a
duplicate 'the' (since grammar checking scripts flag it), but submitters
never followed up after code review.
Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
---
net/mptcp/token.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/mptcp/token.c b/net/mptcp/token.c
index f52ee7b26aed..65430f314a68 100644
--- a/net/mptcp/token.c
+++ b/net/mptcp/token.c
@@ -287,8 +287,8 @@ EXPORT_SYMBOL_GPL(mptcp_token_get_sock);
* This function returns the first mptcp connection structure found inside the
* token container starting from the specified position, or NULL.
*
- * On successful iteration, the iterator is move to the next position and the
- * the acquires a reference to the returned socket.
+ * On successful iteration, the iterator is moved to the next position and
+ * a reference to the returned socket is acquired.
*/
struct mptcp_sock *mptcp_token_iter_next(const struct net *net, long *s_slot,
long *s_num)
--
2.38.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH net-next 0/5] mptcp: Miscellaneous refactoring and small fixes
2022-11-10 23:23 [PATCH net-next 0/5] mptcp: Miscellaneous refactoring and small fixes Mat Martineau
` (4 preceding siblings ...)
2022-11-10 23:23 ` [PATCH net-next 5/5] mptcp: Fix grammar in a comment Mat Martineau
@ 2022-11-12 6:00 ` patchwork-bot+netdevbpf
5 siblings, 0 replies; 7+ messages in thread
From: patchwork-bot+netdevbpf @ 2022-11-12 6:00 UTC (permalink / raw)
To: Mat Martineau
Cc: netdev, davem, kuba, pabeni, edumazet, matthieu.baerts, mptcp
Hello:
This series was applied to netdev/net-next.git (master)
by Jakub Kicinski <kuba@kernel.org>:
On Thu, 10 Nov 2022 15:23:17 -0800 you wrote:
> Patches 1-3 do some refactoring to more consistently handle sock casts,
> and to remove some duplicate code. No functional changes.
>
> Patch 4 corrects a variable name in a self test, but does not change
> functionality since the same value gets used due to bash's
> scoping rules.
>
> [...]
Here is the summary with links:
- [net-next,1/5] mptcp: use msk instead of mptcp_sk
https://git.kernel.org/netdev/net-next/c/00df24f19179
- [net-next,2/5] mptcp: change 'first' as a parameter
https://git.kernel.org/netdev/net-next/c/73a0052a61f9
- [net-next,3/5] mptcp: get sk from msk directly
https://git.kernel.org/netdev/net-next/c/80638684e840
- [net-next,4/5] selftests: mptcp: use max_time instead of time
https://git.kernel.org/netdev/net-next/c/31b4e63eb24a
- [net-next,5/5] mptcp: Fix grammar in a comment
https://git.kernel.org/netdev/net-next/c/4373bf4b72f9
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2022-11-12 6:00 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-10 23:23 [PATCH net-next 0/5] mptcp: Miscellaneous refactoring and small fixes Mat Martineau
2022-11-10 23:23 ` [PATCH net-next 1/5] mptcp: use msk instead of mptcp_sk Mat Martineau
2022-11-10 23:23 ` [PATCH net-next 2/5] mptcp: change 'first' as a parameter Mat Martineau
2022-11-10 23:23 ` [PATCH net-next 3/5] mptcp: get sk from msk directly Mat Martineau
2022-11-10 23:23 ` [PATCH net-next 4/5] selftests: mptcp: use max_time instead of time Mat Martineau
2022-11-10 23:23 ` [PATCH net-next 5/5] mptcp: Fix grammar in a comment Mat Martineau
2022-11-12 6:00 ` [PATCH net-next 0/5] mptcp: Miscellaneous refactoring and small fixes patchwork-bot+netdevbpf
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.