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

Evgeniy Polyakov
2007-02-27T17:10:22Z

On Tue, Feb 27, 2007 at 05:58:14PM +0100, Eric Dumazet (dada1@cosmosbay.com) wrote:
> I believe one advantage of epoll is it uses standard mechanism (mandated for
> poll()/select() ), while kevent adds some glue and kevent_storage in some
> structures (struct inode, struct file, ...), thus adding some extra code and
> extra storage in hot paths. Yes there might be a gain IF most users of these
> path want kevent. But other users pay the price (larger kernel code and
> data), that you cannot easily bench.
>
> Using or not epoll has nearly zero cost over standard kernel (only struct file
> has some extra storage)

Well, that's a price - any event which wants to be supported needs to
store for events - kevent_storage is a list_head plus spinlock and
pointer to itself (with all current users that pointer can be removed and
access transferred to container_of()) - it is exactly as in epoll storage -
both were created with the smallest possible overhead in mind.

--
Evgeniy Polyakov