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

From: Davide Libenzi
Date: Mon Feb 26 2007 - 21:19:21 EST


On Mon, 26 Feb 2007, Evgeniy Polyakov wrote:

> 2. its notifications do not go through the second loop, i.e. it is O(1),
> not O(ready_num), and notifications happens directly from internals of
> the appropriate subsystem, which does not require special wakeup
> (although it can be done too).

Sorry if I do not read kevent code correctly, but in kevent_user_wait()
there is a:

while (num < max_nr && ((k = kevent_dequeue_ready(u)) != NULL)) {
...
}

loop, that make it O(ready_num). From a mathematical standpoint, they're
both O(ready_num), but epoll is doing three passes over the ready set.
I always though that if the number of ready events is so big that the more
passes over the ready set becomes relevant, probably the "work" done by
userspace for each fetched event would make the extra cost irrelevant.
But that can be fixed by a patch that will follow on lkml ...



- Davide


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/