From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============7979577413589028392==" MIME-Version: 1.0 From: Davide Caratti To: mptcp at lists.01.org Subject: [MPTCP] Re: [PATCH net-next 6/6] mptcp: use mptcp backlog. Date: Wed, 11 Nov 2020 10:02:09 +0100 Message-ID: <19e6933468367fc79a905ec5359a4283debae324.camel@redhat.com> In-Reply-To: daab240341b66f74b998b16c4af4a51171bf1064.1605006569.git.pabeni@redhat.com X-Status: X-Keywords: X-UID: 6655 --===============7979577413589028392== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable hello, On Tue, 2020-11-10 at 12:25 +0100, Paolo Abeni wrote: > We have some tasks triggered by the subflow receive path > which require to access the msk socket status, specifically: > mptcp_clean_una() and mptcp_push_pending() > = > We have almost everything in place to use the msk backlog > and a standard !owned by user schema for that. > = > Introduce a dummy per msk sk_buff to trigger into the backlog > as needed. > = > Since the worker is no more used to clean the acked data, > for fallback sockets we need to explicitly call flush them. > = > As added bonus we can simplify a lot mptcp_poll() and > move the timer update under the data lock > = > Signed-off-by: Paolo Abeni > -- > rfc v3-> v2: > =C2=A0- dfrag_release is always invoked under sock spin lock, > =C2=A0=C2=A0=C2=A0must use mem_release > =C2=A0- move the mem_reclaim in mptcp_clean_una > =C2=A0- cleanup poll, leveraging the previous patch > --- > =C2=A0net/mptcp/options.c | 18 +++-- > =C2=A0net/mptcp/protocol.c | 183 +++++++++++++++++++++++++++-------------= --- > =C2=A0net/mptcp/protocol.h | 8 ++ > =C2=A03 files changed, 134 insertions(+), 75 deletions(-) > = > diff --git a/net/mptcp/options.c b/net/mptcp/options.c > index 3986454a0340..48dd6622a04c 100644 > --- a/net/mptcp/options.c > +++ b/net/mptcp/options.c > @@ -189,7 +189,7 @@ static void mptcp_parse_option(const struct sk_buff *= skb, > =C2=A0 ptr +=3D 4; > =C2=A0 } > = > - pr_debug("data_ack=3D%llu", mp_opt->data_ack); > + pr_debug("64=3D%d data_ack=3D%llx", mp_opt->ack64, mp_opt->data_ack); why are you changing (here and in hunks below) the format specifier of DACKs from decimal to hex format? tcpdump and wireshark print it as decimal, and we use to compare it with TCP sequence numbers, that are in decimal format too: I'd prefer to keep it %llu. WDYT? -- = davide --===============7979577413589028392==--