|
|
About ::
TODO ::
Blog ::
RSS ::
Old blog ::
Projects ::
GIT ::
Gallery ::
Notes
Tue, 27 Feb 2007
All fights about kevent vs. threadlet are over. [ND]
I hope so, since wasting a time in completely empty discussions
is not a way to have at least some progress.
Eventually we all (Linus, Ingo an me) concluded that better live
in piece and have mixed events and thread design - event ring
can be used for IO completion events, IO itself can be backed (if blocks)
by threadlet.
So, let's calculate what happend:
- we wasted 48 hours in stupid words thrown into each other
- I ran some syslets tests and found that:
- in Ingo web server there are no reschedulings at all in my environments, so threadlets do no work there
as cachemiss threads
- real disk IO case (using Jens Axboe's FIO tool)
shows 30% speed degradation with CFQ scheduler with syslets compared to
libaio
and sync reads, with deadline scheduler degradation is about 8-10%
- threadlets are simpler to program for simple test cases (when the whole logical processing
can be put into single function without any iteraction with other parts), otherwise it can
end up as a disaster to watch synchronization problems
- kevent likely will not be included
- kevent likely has some bugs or I screwed my aio tree (it includes syslets/threadlets and kevent)
- Andrew Morton has a talk at FOSDEM 2007,
where he also mentioned kevent as a good thing, but it fails to get attention, since
it is a big step in a way people use kernel. Either kevent or something similar
could be merged. (Thanks to Xavier Nicollet for pointing that).
My pessimistic prognosis is about kevent declining.
Many thanks to Ingo Molnar, Davide Libenzi, Linus Torvalds and all others for (sometimes) interesting discussion.
/devel/kevent :: Link / Comments (0)
Please solve this captcha to be allowed to post (need to reload in a minute): 53 * 52
|