Messages in this thread | | | From | kuznet@ms2 ... | Subject | Re: Fw: Re: [Patch][RFC] epoll and half closed TCP connections | Date | Mon, 14 Jul 2003 21:39:25 +0400 (MSD) |
| |
Hello!
> it looks as though _every_ TCP ACK you receive will cause epoll to wake up > a task which is interested in _any_ socket events,
This is not quite true. sk->write_space() is called only after write queue is full, and it is exactly one wakeup until the next overflow.
But, actually, yes, it is right observation: one wait queue for all the socket events is painful. Note, that with current poll() improvements are suboptimal, tcp_poll() does not know _what_ this poll polls for, so it has to stand in all the wait queues. The same thing kills lots of possible improvements.
> further, we might as well admit that POLLHUP should be called > POLLWRHUP.)
No, really. POLLHUP=POLLRDHUP&POLLWRHUP, plus POLLHUP is unmaskable event. Yes, SVR4 screwed up its semantics in such extent that it is mostly meaningless.
Alexey - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |