[PATCH RFC 0/7] add socket to netdev page frag recycling support

From: Yunsheng Lin
Date: Tue Aug 17 2021 - 23:33:34 EST


This patchset adds the socket to netdev page frag recycling
support based on the busy polling and page pool infrastructure.

The profermance improve from 30Gbit to 41Gbit for one thread iperf
tcp flow, and the CPU usages decreases about 20% for four threads
iperf flow with 100Gb line speed in IOMMU strict mode.

The profermance improve about 2.5% for one thread iperf tcp flow
in IOMMU passthrough mode.

Yunsheng Lin (7):
page_pool: refactor the page pool to support multi alloc context
skbuff: add interface to manipulate frag count for tx recycling
net: add NAPI api to register and retrieve the page pool ptr
net: pfrag_pool: add pfrag pool support based on page pool
sock: support refilling pfrag from pfrag_pool
net: hns3: support tx recycling in the hns3 driver
sysctl_tcp_use_pfrag_pool

drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 32 +++++----
include/linux/netdevice.h | 9 +++
include/linux/skbuff.h | 43 +++++++++++-
include/net/netns/ipv4.h | 1 +
include/net/page_pool.h | 15 ++++
include/net/pfrag_pool.h | 24 +++++++
include/net/sock.h | 1 +
net/core/Makefile | 1 +
net/core/dev.c | 34 ++++++++-
net/core/page_pool.c | 86 ++++++++++++-----------
net/core/pfrag_pool.c | 92 +++++++++++++++++++++++++
net/core/sock.c | 12 ++++
net/ipv4/sysctl_net_ipv4.c | 7 ++
net/ipv4/tcp.c | 34 ++++++---
14 files changed, 325 insertions(+), 66 deletions(-)
create mode 100644 include/net/pfrag_pool.h
create mode 100644 net/core/pfrag_pool.c

--
2.7.4