Message ID | 20200910163630.8137-1-fw@strlen.de |
---|---|
State | Accepted, archived |
Commit | bef7797391292b1210d0ecd4b4a90483e5747e05 |
Delegated to: | Matthieu Baerts |
Headers | show |
Series | [mptcp-next] mptcp: split mptcp_clean_una function | expand |
On Thu, 10 Sep 2020, Florian Westphal wrote: > mptcp_clean_una() will wake writers in case memory could be reclaimed. > When called from mptcp_sendmsg the wakeup code isn't needed. > > Move the wakeup to a new helper and then use that from the mptcp worker. > > Signed-off-by: Florian Westphal <fw@strlen.de> > --- > net/mptcp/protocol.c | 28 +++++++++++++++++----------- > 1 file changed, 17 insertions(+), 11 deletions(-) > > Sending this ahead of the rebase on top of paolos patchset, > I think this can be integrated stand-alone as it has no dependency > on sendmsg refactor or poll rework. > Looks good to me, thanks Florian. It still applies cleanly to the export branch too. Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com> -- Mat Martineau Intel
Hi Florian, Mat, On 18/09/2020 00:53, Mat Martineau wrote: > > On Thu, 10 Sep 2020, Florian Westphal wrote: > >> mptcp_clean_una() will wake writers in case memory could be reclaimed. >> When called from mptcp_sendmsg the wakeup code isn't needed. >> >> Move the wakeup to a new helper and then use that from the mptcp worker. >> >> Signed-off-by: Florian Westphal <fw@strlen.de> >> --- >> net/mptcp/protocol.c | 28 +++++++++++++++++----------- >> 1 file changed, 17 insertions(+), 11 deletions(-) >> >> Sending this ahead of the rebase on top of paolos patchset, >> I think this can be integrated stand-alone as it has no dependency >> on sendmsg refactor or poll rework. >> > > Looks good to me, thanks Florian. It still applies cleanly to the export > branch too. > > Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Thank you for the patch and the review! - 0032722d977f: mptcp: split mptcp_clean_una function - a0e1e786f7d2..dcdf6c22dc6f: result Tests + export are in progress! Cheers, Matt
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 7469e89b3d7a..3c2476baae2d 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -831,19 +831,25 @@ static void mptcp_clean_una(struct sock *sk) } out: - if (cleaned) { + if (cleaned) sk_mem_reclaim_partial(sk); +} - /* Only wake up writers if a subflow is ready */ - if (mptcp_is_writeable(msk)) { - set_bit(MPTCP_SEND_SPACE, &mptcp_sk(sk)->flags); - smp_mb__after_atomic(); +static void mptcp_clean_una_wakeup(struct sock *sk) +{ + struct mptcp_sock *msk = mptcp_sk(sk); - /* set SEND_SPACE before sk_stream_write_space clears - * NOSPACE - */ - sk_stream_write_space(sk); - } + mptcp_clean_una(sk); + + /* Only wake up writers if a subflow is ready */ + if (mptcp_is_writeable(msk)) { + set_bit(MPTCP_SEND_SPACE, &msk->flags); + smp_mb__after_atomic(); + + /* set SEND_SPACE before sk_stream_write_space clears + * NOSPACE + */ + sk_stream_write_space(sk); } } @@ -1724,7 +1730,7 @@ static void mptcp_worker(struct work_struct *work) long timeo = 0; lock_sock(sk); - mptcp_clean_una(sk); + mptcp_clean_una_wakeup(sk); mptcp_check_data_fin_ack(sk); __mptcp_flush_join_list(msk); __mptcp_move_skbs(msk);
mptcp_clean_una() will wake writers in case memory could be reclaimed. When called from mptcp_sendmsg the wakeup code isn't needed. Move the wakeup to a new helper and then use that from the mptcp worker. Signed-off-by: Florian Westphal <fw@strlen.de> --- net/mptcp/protocol.c | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) Sending this ahead of the rebase on top of paolos patchset, I think this can be integrated stand-alone as it has no dependency on sendmsg refactor or poll rework.