Re: [PATCH net 1/4] Revert "net/smc: don't wait for send buffer space when data was already sent"

Jakub Kicinski
2021-10-27T15:47:13Z

On Wed, 27 Oct 2021 17:38:27 +0200 Karsten Graul wrote:
> What we found out was that applications called sendmsg() with large data
> buffers using blocking sockets. This led to the described situation, were the
> solution was to early return to user space even if not all data were sent yet.
> Userspace applications should not have a problem with the fact that sendmsg()
> returns a smaller byte count than requested.
>
> Reverting this patch would bring back the stalled connection problem.

I'm not sure. The man page for send says:

When the message does not fit into the send buffer of the socket,
send() normally blocks, unless the socket has been placed in nonblock‐
ing I/O mode. In nonblocking mode it would fail with the error EAGAIN
or EWOULDBLOCK in this case.

dunno if that's required by POSIX or just a best practice.