Inter-revision diff: cover letter

Comparing v10 (message) to v20 (message)

--- 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
+
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help