Re: [PATCH net-next v10 4/5] net: devmem: document NETDEV_A_DMABUF_AUTORELEASE netlink attribute

Bobby Eshleman
2026-01-21T05:44:14Z

On Tue, Jan 20, 2026 at 04:36:50PM -0800, Jakub Kicinski wrote:
> On Thu, 15 Jan 2026 21:02:15 -0800 Bobby Eshleman wrote:
> > +- Once a system-wide autorelease mode is selected (via the first binding),
> > + all subsequent bindings must use the same mode. Attempts to create bindings
> > + with a different mode will be rejected with -EBUSY.
>
> Why?
>

Originally I was using EINVAL, but when writing the tests I noticed this
might be a confusing case for users to interpret EINVAL (i.e., some
binding possibly made by someone else is in a different mode). I thought
EBUSY could capture the semantic "the system is locked up in a different
mode, try again when it isn't".

I'm not married to it though. Happy to go back to EINVAL or another
errno.

> > +- Applications using manual release mode (autorelease=0) must ensure all tokens
> > + are returned via SO_DEVMEM_DONTNEED before socket close to avoid resource
> > + leaks during the lifetime of the dmabuf binding. Tokens not released before
> > + close() will only be freed when all RX queues are unbound AND all sockets
> > + that called recvmsg() are closed.
>
> Could you add a short example on how? by calling shutdown()?

Show an example of the three steps: returning the tokens, unbinding, and closing the
sockets (TCP/NL)?

Best,
Bobby