[Bloat] extending SO_SNDLOWAT and SO_RCVLOWAT to udp?

Dave Taht dave at taht.net
Thu Apr 6 10:55:07 EDT 2017


I recently hit a several circumstances where it would have been nice to
have SO_SNDLOWAT and SO_RCVLOWAT options working for udp (and netlink)
sockets.

In poking about the kernel it looks like these are implemented for TCP
only. (?) I'm curious if anyone has tried to extend them to more socket
types? It seems like it would be useful to have for things like QUIC in
particular. NFS?

I hit it 3 different ways:

* select was returning a socket writable (because it had a byte
available), but then EAGAIN when I tried to write a full size
packet, so I went back to the select, which returned immediately
so I went back to the EAGAIN....

* I completely flooded a multicast queue (11 minutes worth) - while
that issue was in the driver, after I fix that, having some means
of further backpressure up the stack would be good.

* I actually wanted to have recvmmsg block til it had a few
packets in it.


More information about the Bloat mailing list