* [PATCH mptcp-next 1/2] Squash to "mptcp: simplify push_pending" v5
@ 2022-10-09 8:36 Geliang Tang
2022-10-09 8:36 ` [PATCH mptcp-next 2/2] Squash to "mptcp: multi subflows subflow_push_pending" v5 Geliang Tang
0 siblings, 1 reply; 3+ messages in thread
From: Geliang Tang @ 2022-10-09 8:36 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
Update return values of __subflow_push_pending.
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
net/mptcp/protocol.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index f08c0eb0be11..ff2c1bbf4484 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -1527,7 +1527,7 @@ static int __subflow_push_pending(struct sock *sk, struct sock *ssk,
ret = mptcp_sendmsg_frag(sk, ssk, dfrag, info);
if (ret <= 0) {
- err = ret;
+ err = copied ? : ret;
goto out;
}
@@ -1542,17 +1542,18 @@ static int __subflow_push_pending(struct sock *sk, struct sock *ssk,
if (msk->snd_burst <= 0 ||
!sk_stream_memory_free(ssk) ||
!mptcp_subflow_active(mptcp_subflow_ctx(ssk))) {
- err = -EAGAIN;
+ err = copied ? : -EAGAIN;
goto out;
}
+
mptcp_set_timeout(sk);
}
+ err = copied;
out:
if (copied) {
tcp_push(ssk, 0, info->mss_now, tcp_sk(ssk)->nonagle,
info->size_goal);
- err = copied;
}
return err;
--
2.35.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH mptcp-next 2/2] Squash to "mptcp: multi subflows subflow_push_pending" v5
2022-10-09 8:36 [PATCH mptcp-next 1/2] Squash to "mptcp: simplify push_pending" v5 Geliang Tang
@ 2022-10-09 8:36 ` Geliang Tang
2022-10-11 0:55 ` Mat Martineau
0 siblings, 1 reply; 3+ messages in thread
From: Geliang Tang @ 2022-10-09 8:36 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
Update the first chunk of data pushing.
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
net/mptcp/protocol.c | 18 +++++++-----------
1 file changed, 7 insertions(+), 11 deletions(-)
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index ff2c1bbf4484..acc220bfb34e 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -1614,17 +1614,8 @@ 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
*/
- if (first) {
- ret = __subflow_push_pending(sk, ssk, &info);
- if (ret <= 0) {
- if (ret == -EAGAIN)
- goto again;
- break;
- }
- first = false;
- msk->last_snd = ssk;
- continue;
- }
+ if (first)
+ goto push;
if (mptcp_sched_get_send(msk))
goto out;
@@ -1643,6 +1634,7 @@ static void __mptcp_subflow_push_pending(struct sock *sk, struct sock *ssk,
continue;
}
+push:
ret = __subflow_push_pending(sk, ssk, &info);
if (ret <= 0) {
if (ret == -EAGAIN)
@@ -1650,6 +1642,10 @@ static void __mptcp_subflow_push_pending(struct sock *sk, struct sock *ssk,
goto out;
}
msk->last_snd = ssk;
+ if (first) {
+ first = false;
+ goto again;
+ }
mptcp_subflow_set_scheduled(subflow, false);
}
}
--
2.35.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH mptcp-next 2/2] Squash to "mptcp: multi subflows subflow_push_pending" v5
2022-10-09 8:36 ` [PATCH mptcp-next 2/2] Squash to "mptcp: multi subflows subflow_push_pending" v5 Geliang Tang
@ 2022-10-11 0:55 ` Mat Martineau
0 siblings, 0 replies; 3+ messages in thread
From: Mat Martineau @ 2022-10-11 0:55 UTC (permalink / raw)
To: Geliang Tang; +Cc: mptcp
On Sun, 9 Oct 2022, Geliang Tang wrote:
> Update the first chunk of data pushing.
>
> Signed-off-by: Geliang Tang <geliang.tang@suse.com>
> ---
> net/mptcp/protocol.c | 18 +++++++-----------
> 1 file changed, 7 insertions(+), 11 deletions(-)
>
> diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
> index ff2c1bbf4484..acc220bfb34e 100644
> --- a/net/mptcp/protocol.c
> +++ b/net/mptcp/protocol.c
> @@ -1614,17 +1614,8 @@ 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
> */
> - if (first) {
> - ret = __subflow_push_pending(sk, ssk, &info);
> - if (ret <= 0) {
> - if (ret == -EAGAIN)
> - goto again;
> - break;
> - }
> - first = false;
> - msk->last_snd = ssk;
> - continue;
> - }
> + if (first)
> + goto push;
Is the only goal here to reduce duplicate code? It looks like the
functionality is equivalent, but I'd rather not use 'goto' to jump into
the middle of a loop.
The 'Squash to "mptcp: simplify push_pending"' looks fine to include in
v6.
- Mat
>
> if (mptcp_sched_get_send(msk))
> goto out;
> @@ -1643,6 +1634,7 @@ static void __mptcp_subflow_push_pending(struct sock *sk, struct sock *ssk,
> continue;
> }
>
> +push:
> ret = __subflow_push_pending(sk, ssk, &info);
> if (ret <= 0) {
> if (ret == -EAGAIN)
> @@ -1650,6 +1642,10 @@ static void __mptcp_subflow_push_pending(struct sock *sk, struct sock *ssk,
> goto out;
> }
> msk->last_snd = ssk;
> + if (first) {
> + first = false;
> + goto again;
> + }
> mptcp_subflow_set_scheduled(subflow, false);
> }
> }
> --
> 2.35.3
>
>
>
--
Mat Martineau
Intel
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-10-11 0:55 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-09 8:36 [PATCH mptcp-next 1/2] Squash to "mptcp: simplify push_pending" v5 Geliang Tang
2022-10-09 8:36 ` [PATCH mptcp-next 2/2] Squash to "mptcp: multi subflows subflow_push_pending" v5 Geliang Tang
2022-10-11 0:55 ` Mat Martineau
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox