Skip to content

tun zerocopy support

Michael S. Tsirkin lkml netdev 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest6 patches 3 repliesIn review
  2. v16 patches 0 repliesSuperseded

Changes in v3 from the cover letter

Fixed some bugs so it's stable now

Patches in v3 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/6skbuff: add an api to orphan fragsinclude/linux/skbuff.h+16 -00 replies
2/6skbuff: convert to skb_orphan_fragsnet/core/skbuff.c+8 -140 replies
3/6skbuff: export skb_copy_ubufsnet/core/skbuff.c+1 -10 replies
4/6tun: orphan frags on xmitdrivers/net/tun.c+2 -00 replies
5/6net: orphan frags on receivenet/core/dev.c+6 -10 replies
6/6tun: experimental zero copy tx supportdrivers/net/tun.c+134 -120 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v3 yet.

Read the v3 thread

Cover letter [PATCHv3 0/6] tun zerocopy support

This adds support for experimental zero copy transmit to tun.

This includes some patches from Ian's patchset to support zerocopy with tun, so it should help that work progress: we are still trying to figure out how to make everything work properly with tcp but tun seems easier, and it's helpful by itself since not everyone can use macvtap.

Same as with macvtap, I get single-percentage wins in CPU utilization on guest to external from this patchset, and a performance regression on guest to host, so more work is needed until this feature can move out of experimental status, but I think it's useful for some people already.

Pls review and consider for 3.6.

There's some code duplication between tun and macvtap now: common code could move to net/core/datagram.c, this patch does not do this yet.

Changes from v2:
Fixed some bugs so it's stable now

Michael S. Tsirkin (6):
skbuff: add an api to orphan frags
skbuff: convert to skb_orphan_frags
skbuff: export skb_copy_ubufs
tun: orphan frags on xmit
net: orphan frags on receive
tun: experimental zero copy tx support

 drivers/net/tun.c      | 148 +++++++++++++++++++++++++++++++++++++++++++++----
 include/linux/skbuff.h |  16 ++++++
 net/core/dev.c         |   7 ++-
 net/core/skbuff.c      |  24 +++-----
 4 files changed, 167 insertions(+), 28 deletions(-)
Signature · 1 line
MST