Hi Paolo,
On 29/11/2024 18:45, Paolo Abeni wrote:
> This is a batch of changes I had sitting in my local tree for a while.
> Why another refactor you may ask? Two main resons:
>
> - currently the mptcp RX path introduces quite a bit of 'exceptional'
> accounting/locking processing WRT to plain TCP, adding up to the
> implementation complexity in a misurable way
> - the performance gap WRT plain TCP for single subflow connections is
> quite measurable.
>
> The present refactor addresses both the above items: most of the
> additional complexity is dropped, and single stream performances
> increase measurably - from 55Gbps to 71Gbps in my loopback test. As a
> reference, plain TCP is around 84Gps on the same host.
Nice clean-up, with an excellent improvement!
> The above comes to a price: the patch are invasive, even in subtle ways:
> the chance of destabilizing the implementation is real (ence the
> additional, intentional '-next' into the subj).
Because we are only at the beginning of a new cycle, do we need to have
this in '-next'? If we can have syzkaller validating this for a couple
of weeks, would it not be OK to send that to netdev, to have it in
linux-next for a few weeks?
> In any case keeping the patch hidden for longer was not going to do any
> good, so here we are.
>
> Paolo Abeni (3):
> mptcp: consolidate subflow cleanup
> mptcp: move the whole rx path under msk socket lock protection
> mptcp: cleanup mem accounting.
The series look good to me: the modifications seem to make sense, but I
don't know well this part that we usually avoid modifying :)
@Mat: do you mind having a look please?
Cheers,
Matt
--
Sponsored by the NGI0 Core fund.