Skip to content

RFC I/OAT DMA support and TCP acceleration

Chris Leech lkml netdev 1 version In review

Get series with b4
b4 am 1135142250.13781.17.camel@cleech-mobl

Versions newest first

  1. v1 RFC Latest5 patches 3 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/5I/OAT DMA support and TCP accelerationdrivers/Kconfig drivers/Makefile drivers/dma/Kconfig +3 more+651 -01 reply
2/5I/OAT DMA support and TCP accelerationnet/core/dev.c+97 -00 replies
3/5I/OAT DMA support and TCP accelerationnet/core/Makefile net/core/user_dma.c+412 -10 replies
4/5I/OAT DMA support and TCP accelerationinclude/linux/skbuff.h include/linux/tcp.h include/net/tcp.h +5 more+35 -74 replies
5/5I/OAT DMA support and TCP accelerationnet/ipv4/tcp.c net/ipv4/tcp_input.c net/ipv4/tcp_ipv4.c+202 -430 replies

Reviews trailers per patch

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

Read the v1 thread

Cover letter [RFC][PATCH 0/5] I/OAT DMA support and TCP acceleration

Following up on the I/OAT patches that Andy posted on Nov 23, these address some of the style concerns, add descriptive comments (kdoc style) to many functions, remove some dead code, and most importantly include our TCP recv offload changes.
This patch set does not include the driver for the I/OAT DMA hardware.

There are 5 patches

1) DMA subsystem
2) Networking subsystem DMA client
3) sk_buff to iovec copy helper functions
4) structure changes for TCP recv copy offload
5) main TCP recv copy offload changes

As always, comments are welcome and encouraged. I'm continuing to work on incorporating suggestions, including the comments Deepak Saxena posted to lkml earlier today.

The class code hasn't changed since the previous code postings, but I think I'm making progress in figuring that out :)

I'm also looking at simplifying the DMA subsystem by removing DMA devices in favor of only working with channels. The idea of having devices which provide multiple channels can be managed within drivers, without complicating the client API. That should reduce the length of some of the dereference chains.

Chris Leech <[email protected]>
I/O Acceleration Technology Software Development
LAN Access Division / Digital Enterprise Group

---
 drivers/Kconfig             |    2 
 drivers/Makefile            |    1 
 drivers/dma/Kconfig         |   34 +++
 drivers/dma/Makefile        |    3 
 drivers/dma/dmaengine.c     |  391 +++++++++++++++++++++++++++++++++++++++++
 include/linux/dmaengine.h   |  220 +++++++++++++++++++++++
 include/linux/skbuff.h      |    5 
 include/linux/tcp.h         |    9 
 include/net/tcp.h           |   10 +
 net/core/Makefile           |    3 
 net/core/dev.c              |   97 ++++++++++
 net/core/skbuff.c           |    1 
 net/core/user_dma.c         |  410 ++++++++++++++++++++++++++++++++++++++++++++
 net/ipv4/tcp.c              |  177 ++++++++++++++----
 net/ipv4/tcp_input.c        |   63 ++++++
 net/ipv4/tcp_ipv4.c         |   20 ++
 net/ipv4/tcp_minisocks.c    |    1 
 net/ipv6/tcp_ipv6.c         |    1 
 18 files changed, 1397 insertions(+), 51 deletions(-)