Re: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3

Ingo Molnar
2007-03-01T11:49:24Z

* Evgeniy Polyakov <johnpol@2ka.mipt.ru> wrote:

> I also changed client socket to nonblocking mode with the same result
> in epoll server. If you will find it broken, please send me corrected
> to test too.

this line in evserver_kevent.c looks a bit fishy:

err = recv(s, buf, 100, 0);

because on the evserver_epoll.c side the following is done:

err = recv(s, buf, 4096, 0);

now, for 'ab', the request size is 76 bytes, so it should fit fine
functionality-wise. But, the TCP stack might decide differently of
whether to return with a partial packet depending on how much data is
requested. I dont know whether it actually makes a difference in the TCP
flow decisions, and whether it makes a performance difference in your
test, but safest would be to use 4096 in both cases.

in general, please make sure the exact same system calls are done in the
client function. (except of course for the event queueing syscalls
themselves)

Ingo