mbox series

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

Message ID 20231113130041.58124-1-linyunsheng@huawei.com (mailing list archive)
Headers show
Series A possible proposal for intergating dmabuf to page pool | expand

Message

Yunsheng Lin Nov. 13, 2023, 1 p.m. UTC
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@infradead.org/
2. https://lore.kernel.org/all/20231106024413.2801438-1-almasrymina@google.com/

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(-)