Re: [PATCH 2.6.23-rc6 Resending] NETWORKING : Edge Triggered EPOLLOUT events get missed for TCP sockets

Davide Libenzi
2007-09-21T17:45:59Z

On Thu, 20 Sep 2007, Nagendra Tomar wrote:

> > That's not what POLLOUT means in the Unix meaning. POLLOUT indicates the
> > ability to write, and it is not meant as to signal every time a packet
> > (skb) is sent on the wire (and the buffer released).
>
> Aren't they both the same ? Everytime an incoming ACK frees up a buffer
> from the retransmit queue, the writability condition is freshly asserted,
> much the same way as the readability condition is asserted everytime a
> new data is queued in the socket receive queue (irrespective of
> whether there was data already waiting to be read in the receive queue).
>
> This difference in meaning of POLLOUT only arises in the ET case, which was
> not what traditional Unix poll referred to.

Again, events here are "readability" and "writeability" and the fact that
the lower network layer freed a buffer is not, per se, an event (unless
before, "writeability" was tested and reported as unavailable).
In you case the solution looks pretty simple. Just create appropriately
sized buffers, split the single sendfile into multiple buffer-sized ones,
and recycle the buffer once each of them completes.

- Davide