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

Johann Borck
2007-03-01T19:10:44Z

On Thu, Mar 01, 2007 at 04:41:27PM +0100, Eric Dumazet wrote:
>>
>> I had to loop on accept() :
>>
>> for (i=0; i<num; ++i) {
>> if (event[i].data.fd == main_server_s) {
>> do {
>> err = evtest_callback_main(event[i].data.fd);
>> } while (err != -1);
>> }
>> else
>> err = evtest_callback_client(event[i].data.fd);
>> }
>>
>> Or else we can miss an event forever...
On Thu, 1 Mar 2007, Evgeniy Polyakov wrote:
>
> The same here - I would just enable a debug to find it.
>

I reported this a while ago and suggested to have the number of
pending accepts reported with the event to save that last syscall.
I created an ab replacement based on kevent, and at least with my
machines, which are comparable to each other, the load on client
dropped from 100% to 2% or something. ab just doesn't give meaningful
results (if the client is not way more powerful). With that new client
I get very similar results for epoll and kevent, from 1000 through to
26000 concurrent requests, the results have been posted on
kevent-homepage in october, I just checked it with new version, but
there's no significant difference.

this is the benchmark with kevent-based client:
http://tservice.net.ru/~s0mbre/blog/2006/10/11#2006_10_11
btw, each result is average over 1,000,000 requests

and just for comparison, this is on the same machines using ab: