On Sun, Dec 23, 2018 at 08:15:40PM -0500, Willem de Bruijn wrote: > On Fri, Dec 21, 2018 at 10:23 AM Steffen Klassert > <steffen.klass...@secunet.com> wrote: > > > > This patchset adds support to do GRO/GSO by chaining packets > > of the same flow at the SKB frag_list pointer. This avoids > > the overhead to merge payloads into one big packet, and > > on the other end, if GSO is needed it avoids the overhead > > of splitting the big packet back to the native form. > > > > Patch 1 prepares GSO to handle fraglist GSO packets. > > Patch 2 adds the core infrastructure to do fraglist > > GRO/GSO. Patch 3 enables IPv4 UDP to use fraglist > > GRO/GSO if no GRO supported socket is found. > > > > I have only forwarding performance measurements so far: > > > > I used used my IPsec forwarding test setup for this: > > > > ------------ ------------ > > -->| router 1 |-------->| router 2 |-- > > | ------------ ------------ | > > | | > > | -------------------- | > > --------|Spirent Testcenter|<---------- > > -------------------- > > > > net-next (December 10th): > > > > Single stream UDP frame size 1460 Bytes: 1.341.700 fps (15.67 Gbps). > > > > ---------------------------------------------------------------------- > > > > net-next (December 10th) + hack to enable forwarding for standard UDP GRO: > > > > Single stream UDP frame size 1460 Bytes: 1.651.200 fps (19.28 Gbps). > > > > ---------------------------------------------------------------------- > > > > net-next (December 10th) + fraglist UDP GRO/GSO: > > > > Single stream UDP frame size 1460 Bytes: 2.742.500 fps (32.03 Gbps). > > That's an impressive speed-up over regular UDP GRO. Definitely worth > looking into more, then. > > Sorry for the delay. I still haven't parsed everything yet, but a few > high level questions and comments. > > This sounds similar to GSO_BY_FRAGS as used by SCTP. Can perhaps reuse > that or deduplicate a bit. It is nice that this uses a separate > skb_segment_list function; skb_segment is arguably too complex as is > already.
This patchset looks like a more whole version of what GSO_BY_FRAGS is, and I like it. It should be easy to adapt SCTP to use these patches instead. I can do it if needed. Marcelo