--- v10
+++ v20
@@ -1,3 +1,228 @@
+v20: https://patchwork.kernel.org/project/netdevbpf/list/?series=879373&state=*
+====
+
+v20 aims to resolve a couple of bug reports against v19, and addresses
+some review comments around the page_pool_check_memory_provider
+mechanism.
+
+Major changes:
+- Test edge cases such as header split disabled in selftest.
+- Change `offset = 0` back to `offset = offset - start` to resolve issue
+ found in RX path by Taehee (thanks!)
+- Address a few comments around page_pool_check_memory_provider() from
+ Pavel & Jakub.
+- Removed some unnecessary includes across various patches in the
+ series.
+- Removed unnecessary EXPORT_SYMBOL(page_pool_mem_providers) (Jakub).
+- Fix regression caused by incorrect dev_get_max_mp_channel check, along
+ with rename (Jakub).
+
+Full devmem TCP changes including the full GVE driver implementation is
+here:
+
+https://github.com/mina/linux/commits/tcpdevmem-v20/
+
+v19: https://patchwork.kernel.org/project/netdevbpf/list/?series=876852&state=*
+====
+
+v18 got a thorough review (thanks!), and this iteration addresses the
+feedback.
+
+Major changes:
+- Prevent deactivating mp bound queues.
+- Prevent installing xdp on mp bound netdevs, or installing mps on xdp
+ installed netdevs.
+- Fix corner cases in netlink API vis-a-vis missing attributes.
+- Iron out the unreadable netmem driver support story. To be honest, the
+ conversation with Jakub & Pavel got a bit confusing for me. I've
+ implemented an approach in this set that makes sense to me, and
+ AFAICT, addresses the requirements. It may be good as-is, or it
+ may be a conversation starter/continuer. To be honest IMO there
+ are many ways to skin this cat and I don't see an extremely strong
+ reason to go for one approach over another. Here is one approach you
+ may like.
+- Don't reset niov dma_addr on allocation & free.
+- Add some tests to the selftest that catches some of the issues around
+ missing netlink attributes or deactivating mp-bound queues.
+
+Full devmem TCP changes including the full GVE driver implementation is
+here:
+
+https://github.com/mina/linux/commits/tcpdevmem-v19/
+
+v18: https://patchwork.kernel.org/project/netdevbpf/list/?series=874848&state=*
+====
+
+v17 got minor feedback: (a) to beef up the description on patch 1 and (b)
+to remove the leading underscores in the header definition.
+
+I applied (a). (b) seems to be against current conventions so I did not
+apply before further discussion.
+
+Full devmem TCP changes including the full GVE driver implementation is
+here:
+
+https://github.com/mina/linux/commits/tcpdevmem-v17/
+
+v17: https://patchwork.kernel.org/project/netdevbpf/list/?series=869900&state=*
+====
+
+v16 also got a very thorough review and some testing (thanks again!).
+Thes version addresses all the concerns reported on v15, in terms of
+feedback and issues reported.
+
+Major changes:
+- Use ASSERT_RTNL.
+- Moved around some of the page_pool helpers definitions so I can hide
+ some netmem helpers in private files as Jakub suggested.
+- Don't make every net_iov hold a ref on the binding as Jakub suggested.
+- Fix issue reported by Taehee where we access queues after they have
+ been freed.
+
+Full devmem TCP changes including the full GVE driver implementation is
+here:
+
+https://github.com/mina/linux/commits/tcpdevmem-v17/
+
+v16: https://patchwork.kernel.org/project/netdevbpf/list/?series=866353&state=*
+====
+
+v15 got a thorough review and some testing, and this version addresses almost
+all the feedback. Some more minor comments where the authors said it
+could be done later, I left out.
+
+Major changes:
+- Addition of dma-buf introspection to page-pool-get and queue-get.
+- Fixes to selftests suggested by Taehee.
+- Fixes to documentation suggested by Donald.
+- A couple of suggestions and fixes to TCP patches by Eric and David.
+- Fixes to number assignements suggested by Arnd.
+- Use rtnl_lock()ing to guard against queue reconfiguration while the
+ page_pool initialization is happening. (Jakub).
+- Fixes to a few warnings reproduced by Taehee.
+- Fixes to dma-buf binding suggested by Taehee and Jakub.
+- Fixes to netlink UAPI suggested by Jakub
+- Applied a number of Reviewed-bys and Acked-bys (including ones I lost
+ from v13+).
+
+Full devmem TCP changes including the full GVE driver implementation is
+here:
+
+https://github.com/mina/linux/commits/tcpdevmem-v16/
+
+One caveat: Taehee reproduced a KASAN warning and reported it here:
+
+https://lore.kernel.org/netdev/CAMArcTUdCxOBYGF3vpbq=eBvqZfnc44KBaQTN7H-wqdUxZdziw@mail.gmail.com/
+
+I estimate the issue to be minor and easily fixable:
+
+https://lore.kernel.org/netdev/CAHS8izNgaqC--GGE2xd85QB=utUnOHmioCsDd1TNxJWKemaD_g@mail.gmail.com/
+
+I hope to be able to follow up with a fix to net tree as net-next closes
+imminently, but if this iteration doesn't make it in, I will repost with
+a fix squashed after net-next reopens, no problem.
+
+v15: https://patchwork.kernel.org/project/netdevbpf/list/?series=865481&state=*
+====
+
+No material changes in this version, only a fix to linking against
+libynl.a from the last version. Per Jakub's instructions I've pulled one
+of his patches into this series, and now use the new libynl.a correctly,
+I hope.
+
+As usual, the full devmem TCP changes including the full GVE driver
+implementation is here:
+
+https://github.com/mina/linux/commits/tcpdevmem-v15/
+
+v14: https://patchwork.kernel.org/project/netdevbpf/list/?series=865135&archive=both&state=*
+====
+
+No material changes in this version. Only rebase and re-verification on
+top of net-next. v13, I think, raced with commit ebad6d0334793
+("net/ipv4: Use nested-BH locking for ipv4_tcp_sk.") being merged to
+net-next that caused a patchwork failure to apply. This series should
+apply cleanly on commit c4532232fa2a4 ("selftests: net: remove unneeded
+IP_GRE config").
+
+I did not wait the customary 24hr as Jakub said it's OK to repost as soon
+as I build test the rebased version:
+
+https://lore.kernel.org/netdev/20240625075926.146d769d@kernel.org/
+
+v13: https://patchwork.kernel.org/project/netdevbpf/list/?series=861406&archive=both&state=*
+====
+
+Major changes:
+--------------
+
+This iteration addresses Pavel's review comments, applies his
+reviewed-by's, and seeks to fix the patchwork build error (sorry!).
+
+As usual, the full devmem TCP changes including the full GVE driver
+implementation is here:
+
+https://github.com/mina/linux/commits/tcpdevmem-v13/
+
+v12: https://patchwork.kernel.org/project/netdevbpf/list/?series=859747&state=*
+====
+
+Major changes:
+--------------
+
+This iteration only addresses one minor comment from Pavel with regards
+to the trace printing of netmem, and the patchwork build error
+introduced in v11 because I missed doing an allmodconfig build, sorry.
+
+Other than that v11, AFAICT, received no feedback. There is one
+discussion about how the specifics of plugging io uring memory through
+the page pool, but not relevant to content in this particular patchset,
+AFAICT.
+
+As usual, the full devmem TCP changes including the full GVE driver
+implementation is here:
+
+https://github.com/mina/linux/commits/tcpdevmem-v12/
+
+v11: https://patchwork.kernel.org/project/netdevbpf/list/?series=857457&state=*
+====
+
+Major Changes:
+--------------
+
+v11 addresses feedback received in v10. The major change is the removal
+of the memory provider ops as requested by Christoph. We still
+accomplish the same thing, but utilizing direct function calls with if
+statements rather than generic ops.
+
+Additionally address sparse warnings, bugs and review comments from
+folks that reviewed.
+
+As usual, the full devmem TCP changes including the full GVE driver
+implementation is here:
+
+https://github.com/mina/linux/commits/tcpdevmem-v11/
+
+Detailed changelog:
+-------------------
+
+- Fixes in netdev_rx_queue_restart() from Pavel & David.
+- Remove commit e650e8c3a36f5 ("net: page_pool: create hooks for
+custom page providers") from the series to address Christoph's
+feedback and rebased other patches on the series on this change.
+- Fixed build errors with CONFIG_DMA_SHARED_BUFFER &&
+ !CONFIG_GENERIC_ALLOCATOR build.
+- Fixed sparse warnings pointed out by Paolo.
+- Drop unnecessary gro_pull_from_frag0 checks.
+- Added Bagas reviewed-by to docs.
+
+Cc: Bagas Sanjaya <bagasdotme@gmail.com>
+Cc: Steven Rostedt <rostedt@goodmis.org>
+Cc: Christoph Hellwig <hch@infradead.org>
+Cc: Nikolay Aleksandrov <razor@blackwall.org>
+Cc: Taehee Yoo <ap420073@gmail.com>
+Cc: Donald Hunter <donald.hunter@gmail.com>
+
v10: https://patchwork.kernel.org/project/netdevbpf/list/?series=852422&state=*
====
@@ -439,15 +664,11 @@
-Jakub Kicinski (1):
- net: page_pool: create hooks for custom page providers
-
Mina Almasry (13):
netdev: add netdev_rx_queue_restart()
net: netdev netlink api to bind dma-buf to a net device
netdev: support binding dma-buf to netdevice
netdev: netdevice devmem allocator
- page_pool: convert to use netmem
page_pool: devmem support
memory-provider: dmabuf devmem memory provider
net: support non paged skb frags
@@ -456,60 +677,68 @@
net: add SO_DEVMEM_DONTNEED setsockopt to release RX frags
net: add devmem TCP documentation
selftests: add ncdevmem, netcat for devmem TCP
-
- Documentation/netlink/specs/netdev.yaml | 57 +++
- Documentation/networking/devmem.rst | 258 +++++++++++
+ netdev: add dmabuf introspection
+
+ Documentation/netlink/specs/netdev.yaml | 61 +++
+ Documentation/networking/devmem.rst | 269 +++++++++++
Documentation/networking/index.rst | 1 +
arch/alpha/include/uapi/asm/socket.h | 6 +
arch/mips/include/uapi/asm/socket.h | 6 +
arch/parisc/include/uapi/asm/socket.h | 6 +
arch/sparc/include/uapi/asm/socket.h | 6 +
+ include/linux/netdevice.h | 2 +
include/linux/skbuff.h | 61 ++-
- include/linux/skbuff_ref.h | 11 +-
+ include/linux/skbuff_ref.h | 9 +-
include/linux/socket.h | 1 +
- include/net/devmem.h | 124 ++++++
+ include/net/devmem.h | 128 ++++++
+ include/net/mp_dmabuf_devmem.h | 44 ++
include/net/netdev_rx_queue.h | 5 +
- include/net/netmem.h | 208 ++++++++-
- include/net/page_pool/helpers.h | 153 +++++--
- include/net/page_pool/types.h | 33 +-
+ include/net/netmem.h | 169 ++++++-
+ include/net/page_pool/helpers.h | 39 +-
+ include/net/page_pool/types.h | 22 +-
include/net/sock.h | 2 +
include/net/tcp.h | 5 +-
- include/trace/events/page_pool.h | 29 +-
+ include/trace/events/page_pool.h | 12 +-
include/uapi/asm-generic/socket.h | 6 +
- include/uapi/linux/netdev.h | 19 +
+ include/uapi/linux/netdev.h | 13 +
include/uapi/linux/uio.h | 17 +
- net/bpf/test_run.c | 5 +-
net/core/Makefile | 3 +-
net/core/datagram.c | 6 +
- net/core/dev.c | 6 +-
- net/core/devmem.c | 384 +++++++++++++++++
- net/core/gro.c | 8 +-
+ net/core/dev.c | 22 +-
+ net/core/devmem.c | 374 +++++++++++++++
+ net/core/gro.c | 3 +-
net/core/netdev-genl-gen.c | 23 +
net/core/netdev-genl-gen.h | 6 +
- net/core/netdev-genl.c | 103 +++++
- net/core/netdev_rx_queue.c | 74 ++++
- net/core/page_pool.c | 368 +++++++++-------
- net/core/skbuff.c | 83 +++-
- net/core/sock.c | 61 +++
+ net/core/netdev-genl.c | 118 +++++
+ net/core/netdev_rx_queue.c | 81 ++++
+ net/core/netmem_priv.h | 31 ++
+ net/core/page_pool.c | 117 +++--
+ net/core/page_pool_priv.h | 31 ++
+ net/core/page_pool_user.c | 29 ++
+ net/core/skbuff.c | 77 +++-
+ net/core/sock.c | 68 +++
+ net/ethtool/common.c | 8 +
net/ipv4/esp4.c | 3 +-
- net/ipv4/tcp.c | 254 ++++++++++-
+ net/ipv4/tcp.c | 261 ++++++++++-
net/ipv4/tcp_input.c | 13 +-
- net/ipv4/tcp_ipv4.c | 10 +
+ net/ipv4/tcp_ipv4.c | 16 +
net/ipv4/tcp_minisocks.c | 2 +
net/ipv4/tcp_output.c | 5 +-
net/ipv6/esp6.c | 3 +-
net/packet/af_packet.c | 4 +-
- tools/include/uapi/linux/netdev.h | 19 +
+ tools/include/uapi/linux/netdev.h | 13 +
tools/testing/selftests/net/.gitignore | 1 +
- tools/testing/selftests/net/Makefile | 5 +
- tools/testing/selftests/net/ncdevmem.c | 542 ++++++++++++++++++++++++
- 46 files changed, 2738 insertions(+), 267 deletions(-)
+ tools/testing/selftests/net/Makefile | 9 +
+ tools/testing/selftests/net/ncdevmem.c | 587 ++++++++++++++++++++++++
+ 51 files changed, 2683 insertions(+), 121 deletions(-)
create mode 100644 Documentation/networking/devmem.rst
create mode 100644 include/net/devmem.h
+ create mode 100644 include/net/mp_dmabuf_devmem.h
create mode 100644 net/core/devmem.c
create mode 100644 net/core/netdev_rx_queue.c
+ create mode 100644 net/core/netmem_priv.h
create mode 100644 tools/testing/selftests/net/ncdevmem.c
--
-2.45.1.288.g0e0cd299f1-goog
-
+2.46.0.184.g6999bdac58-goog
+