[PATCH RFC 0/8] A possible proposal for intergating dmabuf to page pool

From: Yunsheng Lin
Date: Mon Nov 13 2023 - 08:00:50 EST


This patchset is based on the [1] and [2], it is similar to
what patch [2] is doing in essence, the main differences is:
1. It reuses the 'struct page' to have more unified handling
between normal page and devmem page for net stack.
2. It relies on the page->pp_frag_count to do reference counting
instead of page->_refcount, in order to decouple the devmem
page from mm subsystem.

As this patch is using normal memory page as devmem page as
prototyping, it is tested using simple iperf with some hack in
hns3 driver and in __skb_datagram_iter().

1. https://lkml.kernel.org/netdev/20230105214631.3939268-2-willy@xxxxxxxxxxxxx/
2. https://lore.kernel.org/all/20231106024413.2801438-1-almasrymina@xxxxxxxxxx/

Jakub Kicinski (2):
net: page_pool: factor out releasing DMA from releasing the page
net: page_pool: create hooks for custom page providers

Mina Almasry (1):
memory-provider: dmabuf devmem memory provider

Yunsheng Lin (5):
skbuff: explicitize the semantics of skb_frag_fill_page_desc()
skbuff: remove compound_head() related function calling
skbuff: always try to do page pool frag reference counting
net: hns3: temp hack for hns3 to use dmabuf memory provider
net: temp hack for dmabuf page in __skb_datagram_iter()

.../chelsio/inline_crypto/ch_ktls/chcr_ktls.c | 2 +-
.../net/ethernet/hisilicon/hns3/hns3_enet.c | 9 +-
drivers/net/ethernet/sun/cassini.c | 4 +-
drivers/net/veth.c | 2 +-
include/linux/skbuff.h | 26 ++-
include/net/page_pool/types.h | 60 ++++++
net/core/datagram.c | 10 +-
net/core/page_pool.c | 197 ++++++++++++++++--
net/core/skbuff.c | 10 +-
net/tls/tls_device_fallback.c | 2 +-
10 files changed, 282 insertions(+), 40 deletions(-)

--
2.33.0