More

PC conflicts

Alex Duyck

Jakob Keller

Jesse Brandeburg

Johannes Berg

Neal Cardwell

Submitted

Abstract

We'd like to give a follow up talk on devmem TCP & io uring zero copy, without recycling any of the material shared in last year's talks:

Devmem TCP: https://netdevconf.info/0x17/sessions/talk/device-memory-tcp.html

io uring zero copy: https://netdevconf.info/0x17/sessions/talk/fast-zc-rx-data-plane-using-io-uring.html

We'd like to talk about the introduction of the 'network memory' abstraction (netmem). Netmem is an abstraction over the struct page currently used by the page_pool and drivers. By shifting those components to use netmem instead of 'struct page' directly, we open the possibility for support of non-struct paged memory in the net stack. This abstraction will be used to support these currently undergoing efforts:

1. dma-buf memory used in devmem TCP. 2. io uring user memory used in zero copy io uring.

But also can be considered in other use cases, such as:

3. Storage/NVMe/SSD memory. 4. 'remote' memory (DRAM that happens to be not on the current host). 5. GPU virtual addresses (not dma-buf). 6. etc?

Additionally, we would like to talk about real world application results for the io uring zero copy. We would like to share performance results for our disaggregated storage service application utilizing io uring zero copy, as well as challenges in adopting the kernel feature.

Additionally we'd like to talk about the recently merged queue-management ndos:

https://patchwork.kernel.org/project/netdevbpf/list/?series=849760&state=*

The initial version of the queue management ndos allows the core net stack restart individual RX queues on a net device. This is useful for triggering a refill of the RX queue buffers after re configuring the RX queue. We plan to use these ndos to restart RX queues after they have been reconfigured for devmem TCP or io uring ZC. Additionally there are proposals to extend the queue management ndos to be the basic ops that execute various ethtool configurations as well as ndo_open/ndo_stop.

Authors (blind)

Willem de Bruijn (Google) <willemb@google.com>

Jakub Kicinski (Meta) <kuba@kernel.org>

Mina Almasry (Google) <almasrymina@google.com>

Shailend Chand (Google) <shailend@google.com>

David Wei (Meta) <dw@davidwei.uk>

Pavel Begunkov (Meta) <asml.silence@gmail.com>

Submission Type
BoF
Submission Label
Moonshot
Estimated Length Of Time For Presentation (in minutes)
60
Attendance
Physically

To edit this submission, sign in using your email and password.