Messages in this thread | | | Date | Mon, 26 Feb 2007 13:43:02 +0300 | From | Evgeniy Polyakov <> | Subject | Re: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3 |
| |
On Mon, Feb 26, 2007 at 11:31:17AM +0100, Ingo Molnar (mingo@elte.hu) wrote: > > * Ingo Molnar <mingo@elte.hu> 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 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/
| |