| From: |
| Eric Dumazet <edumazet-AT-google.com> |
| To: |
| "David S . Miller" <davem-AT-davemloft.net> |
| Subject: |
| [PATCH net-next 0/5] tcp: add zero copy receive |
| Date: |
| Mon, 16 Apr 2018 10:33:34 -0700 |
| Message-ID: |
| <20180416173339.6310-1-edumazet@google.com> |
| Cc: |
| netdev <netdev-AT-vger.kernel.org>, Eric Dumazet <edumazet-AT-google.com>, Neal Cardwell <ncardwell-AT-google.com>, Yuchung Cheng <ycheng-AT-google.com>, Soheil Hassas Yeganeh <soheil-AT-google.com>, Eric Dumazet <eric.dumazet-AT-gmail.com> |
This patch series add mmap() support to TCP sockets for RX zero copy.
While tcp_mmap() patch itself is quite small (~100 LOC), optimal support
for asynchronous mmap() required better SO_RCVLOWAT behavior, and a
test program to demonstrate how mmap() on TCP sockets can be used.
Note that mmap() (and associated munmap()) calls are adding more
pressure on per-process VM semaphore, so might not show benefit
for processus with high number of threads.
Eric Dumazet (5):
tcp: fix SO_RCVLOWAT and RCVBUF autotuning
tcp: fix delayed acks behavior for SO_RCVLOWAT
tcp: avoid extra wakeups for SO_RCVLOWAT users
tcp: implement mmap() for zero copy receive
selftests: net: add tcp_mmap program
include/linux/net.h | 1 +
include/net/tcp.h | 4 +
net/core/sock.c | 5 +-
net/ipv4/af_inet.c | 3 +-
net/ipv4/tcp.c | 138 ++++++++
net/ipv4/tcp_input.c | 22 +-
net/ipv6/af_inet6.c | 3 +-
tools/testing/selftests/net/Makefile | 2 +
tools/testing/selftests/net/tcp_mmap.c | 437 +++++++++++++++++++++++++
9 files changed, 608 insertions(+), 7 deletions(-)
create mode 100644 tools/testing/selftests/net/tcp_mmap.c
--
2.17.0.484.g0c8726318c-goog