![]() | |||||||||||||
Messages in this thread |
* Evgeniy Polyakov <johnpol@2ka.mipt.ru> wrote: > On Mon, Feb 26, 2007 at 01:51:23PM +0100, Ingo Molnar (mingo@elte.hu) wrote: > > > > * Evgeniy Polyakov <johnpol@2ka.mipt.ru> wrote: > > > > > Even having main dispatcher as epoll/kevent loop, the _whole_ > > > threadlet model is absolutely micro-thread in nature and not state > > > machine/event. > > > > Evgeniy, i'm not sure how many different ways to tell this to you, but > > you are not listening, you are not learning and you are still not > > getting it at all. > > > > The scheduler /IS/ a generic work/event queue. And it's pretty damn > > fast. No amount of badmouthing will change that basic fact. Not exactly > > as fast as a special-purpose queueing system (for all the reasons i > > outlined to you, and which you ignored), but it gets pretty damn close > > even for the web workload /you/ identified, and offers a user-space > > programming model that is about 1000 times more useful than > > state-machines. > > Meanwhile on practiceal side: > via epia kevent/epoll/threadlet: > > client: ab -c500 -n5000 $url > > kevent: 849.72 > epoll: 538.16 > threadlet: > gcc ./evserver_epoll_threadlet.c -o ./evserver_epoll_threadlet > In file included from ./evserver_epoll_threadlet.c:30: > ./threadlet.h: In function ‘threadlet_exec’: > ./threadlet.h:46: error: can't find a register in class ‘GENERAL_REGS’ > while reloading ‘asm’ > > That particular asm optimization fails to compile. it's not really an asm optimization but an API glue. I'm using: gcc -O2 -g -Wall -o evserver_epoll_threadlet evserver_epoll_threadlet.c -fomit-frame-pointer does that work for you? Ingo - 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/ | ||||||||||||
| Last update: 2007-02-27 07:35 [from the cache] ©2003-2008 | |||||||||||||