From: Steffen Klassert <steffen.klassert@secunet.com>
To: <netdev@vger.kernel.org>
Cc: Steffen Klassert <steffen.klassert@secunet.com>,
Willem de Bruijn <willemb@google.com>,
Paolo Abeni <pabeni@redhat.com>,
"Jason A. Donenfeld" <Jason@zx2c4.com>
Subject: [PATCH RFC v2 0/3] Support fraglist GRO/GSO
Date: Mon, 28 Jan 2019 09:50:22 +0100 [thread overview]
Message-ID: <20190128085025.14532-1-steffen.klassert@secunet.com> (raw)
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 Enables UDP GRO by default.
Patch 2 adds the core infrastructure to do fraglist
GRO/GSO.
Patch 3 enables 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 27th):
Single stream UDP frame size 1460 Bytes: 1.385.000 fps (16.2 Gbps).
----------------------------------------------------------------------
net-next (December 27th) + hack to enable forwarding for standard UDP GRO:
Single stream UDP frame size 1460 Bytes: 1.759.000 fps (20.5 Gbps).
----------------------------------------------------------------------
net-next (December 27th) + fraglist UDP GRO/GSO:
Single stream UDP frame size 1460 Bytes: 3.016.000 fps (35.2 Gbps).
-----------------------------------------------------------------------
Known issues:
- With this patchset fraglist GRO/GSO is done always on forwarding.
This will change as soon as we agreed on how to decide beteen
standard and fraglist GRO/GSO.
Changes from v1:
- Add IPv6 support.
- Split patchset to enable UDP GRO by default before adding
fraglist GRO support.
- Mark fraglist GRO packets as CHECKSUM_NONE.
- Take a refcount on the first segment skb when doing fraglist
segmentation. With this we can use the same error handling
path as with standard segmentation.
next reply other threads:[~2019-01-28 8:50 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-28 8:50 Steffen Klassert [this message]
2019-01-28 8:50 ` [PATCH RFC v2 1/3] UDP: enable GRO by default Steffen Klassert
2019-01-28 15:30 ` Paolo Abeni
[not found] ` <9615a29c028dea4f95efa7d1921f67b1a8c1f6e2.camel@redhat.com>
[not found] ` <20190213090406.GW3087@gauss3.secunet.de>
[not found] ` <87f5eb5964c77840eccaaba184039b226a387fc7.camel@redhat.com>
2019-02-13 10:52 ` Steffen Klassert
2019-01-28 8:50 ` [PATCH RFC v2 2/3] net: Support GRO/GSO fraglist chaining Steffen Klassert
2019-01-28 20:50 ` Willem de Bruijn
2019-02-13 11:49 ` Steffen Klassert
2019-01-28 8:50 ` [PATCH RFC v2 3/3] udp: Support UDP fraglist GRO/GSO Steffen Klassert
2019-01-28 16:37 ` Paolo Abeni
2019-01-28 20:49 ` Willem de Bruijn
2019-02-13 11:48 ` Steffen Klassert
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190128085025.14532-1-steffen.klassert@secunet.com \
--to=steffen.klassert@secunet.com \
--cc=Jason@zx2c4.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=willemb@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).