From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marcelo Ricardo Leitner Subject: Re: [PATCH RFC 0/3] Support fraglist GRO/GSO Date: Wed, 26 Dec 2018 11:09:26 -0200 Message-ID: <20181226130926.GB9282@localhost.localdomain> References: <20181221075334.9000-1-steffen.klassert@secunet.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Steffen Klassert , Network Development , Willem de Bruijn , Paolo Abeni , "Jason A. Donenfeld" To: Willem de Bruijn Return-path: Received: from mail-qt1-f196.google.com ([209.85.160.196]:41537 "EHLO mail-qt1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726549AbeLZNJc (ORCPT ); Wed, 26 Dec 2018 08:09:32 -0500 Received: by mail-qt1-f196.google.com with SMTP id l12so17168848qtf.8 for ; Wed, 26 Dec 2018 05:09:31 -0800 (PST) Content-Disposition: inline In-Reply-To: Sender: netdev-owner@vger.kernel.org List-ID: 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 > 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