[RFC PATCH net-next v1 0/4] net: devmem: TX Path
From: Stanislav Fomichev <sdf@fomichev.me>
Date: 2024-09-13 15:09:16
As discussed in [1], sending the preliminary version of the transmit path. It is somewhat based on [2], but at this point probably nothing of the original patch remains. Since we are not using fake pages anymore, I had to do the following: 1. Add new bind_tx netlink to attach dmabufs to the netdev and export id 2. Ask users to pass that id in SCM_DEVMEM_DMABUF sendmsg 3. The payload chunks are referenced via zero-based iov_base and iov_len Note that this series should be applied on top of [3]. 1: https://lore.kernel.org/netdev/CAHS8izM8e4OhOFjRm9cF2LuN=ePWPgd-EY09fZHSybgcOaH4MA@mail.gmail.com/ (local) 2: https://lore.kernel.org/netdev/20230710223304.1174642-8-almasrymina@google.com/ (local) 3: https://lore.kernel.org/netdev/ZuNgklyeerU5BjqG@mini-arch/T/#t (local) Cc: Mina Almasry <redacted> Stanislav Fomichev (4): net: devmem: Implement TX path selftests: ncdevmem: Implement client side selftests: ncdevmem: Implement loopback mode selftests: ncdevmem: Add TX side to the test Documentation/netlink/specs/netdev.yaml | 13 + include/linux/skbuff.h | 16 +- include/linux/skbuff_ref.h | 17 + include/net/devmem.h | 1 + include/net/sock.h | 1 + include/uapi/linux/netdev.h | 1 + kernel/dma/mapping.c | 18 +- net/core/datagram.c | 52 ++- net/core/devmem.c | 73 ++++- net/core/devmem.h | 28 +- net/core/netdev-genl-gen.c | 13 + net/core/netdev-genl-gen.h | 1 + net/core/netdev-genl.c | 65 +++- net/core/skbuff.c | 21 +- net/core/sock.c | 5 + net/ipv4/tcp.c | 38 ++- net/vmw_vsock/virtio_transport_common.c | 2 +- tools/include/uapi/linux/netdev.h | 1 + tools/testing/selftests/drivers/net/devmem.py | 37 ++- .../testing/selftests/drivers/net/ncdevmem.c | 307 ++++++++++++++++-- 20 files changed, 651 insertions(+), 59 deletions(-) create mode 120000 include/net/devmem.h -- 2.46.0