On Mon, Feb 26, 2007 at 11:31:17AM +0100, Ingo Molnar ([EMAIL PROTECTED]) wrote: > > * Ingo Molnar <[EMAIL PROTECTED]> wrote: > > > please also try evserver_epoll_threadlet.c that i've attached below - > > it uses epoll as the main event mechanism but does threadlets for > > request handling. > > find updated code below - your evserver_epoll.c spuriously missed event > edges - so i changed it back to level-triggered. While that is not as > fast as edge-triggered, it does not result in spurious hangs and > workflow 'hickups' during the test.
Hmm, exact the same evserver_epoll.c you downloaded works ok for me, although yes, it is buggy in that regard that it does not contain socket close when data is transferred. > Could this be the reason why in your testing kevents outperformed epoll? I will try to check. In theory without _ET it should perfoem much worse, but in practice its performance is essentially the same (the same applies to kevent without KEVENT_REQ_ET flag - since the same socket almost never is used several times, it is purely zero overhead to have or not have that flag set). > Also, i have removed the set-nonblocking calls because they are not > needed under threadlets. > > [ to build this code, copy it into the async-test/ directory and build > it there - or copy the *.h files from async-test/ directory into your > build directory. ] Ok, right now I'm compiling kevent/threadlet tree on my test machines. > Ingo -- Evgeniy Polyakov - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/