On Fri, Aug 12, 2022, 12:49 AM Jin-oh Kang <jinoh.kang.kr@gmail.com> wrote:
On Thu, Aug 11, 2022, 3:02 AM Zebediah Figura (she/her) <zfigura@codeweavers.com> wrote:
Doesn't this mean that we can get POLLOUT from the host but then be
unable to write data? That sounds like a spec violation.

Unset POLLOUT does not necessarily imply that sendmsg() will block. On Linux (as of v5.19), POLLOUT is signaled on a connected TCP socket (that has not shut down) only if sk_wmem_queued is at least two thirds of sk_sndbuf (see __sk_stream_is_writeable). In contrast, sendmsg() will happily accept however much buffer space is left.

s/at least/at most/g.  Also modulo rounding error in sk_stream_min_wspace.