Re: [take24 0/6] kevent: Generic event handling mechanism.

From: Evgeniy Polyakov
Date: Fri Nov 24 2006 - 06:01:05 EST


On Thu, Nov 23, 2006 at 12:34:50PM -0800, Ulrich Drepper (drepper@xxxxxxxxxx) wrote:
> Evgeniy Polyakov wrote:
> >>>Btw, what about putting aditional multiplexer into add/remove/modify
> >>>switch? There will be logical 'ready' addon?
> >>Is it needed? Usually this is done with a *_wait call with a timeout of
> >>zero. That code path might have to be optimized but it should already
> >>be there.
> >
> >It does not allow to mark events as ready.
> >And current interfaces wake up when either timeout is zero (in this case
> >thread itself does not sleep and can process events), or when there is
> >_new_ work - since there is no _new_ work, when thread awakened to
> >process it was killed, kernel does not think that something is wrong.
>
> Rather than mark an existing entry as ready, how about a call to inject
> a new ready event?
>
> This would be useful to implement functionality at userlevel and still
> use an event queue to announce the availability. Without this type of
> functionality we'd need to use indirect notification via signal or pipe
> or something like that.

With provided patch it is possible to wakeup 'for-free' - just call
kevent_ctl(ready) with zero number of ready events, so thread will be
awakened if it was in poll(kevent_fd), kevent_wait() or
kevent_get_events().

> --
> â Ulrich Drepper â Red Hat, Inc. â 444 Castro St â Mountain View,
> CA â

--
Evgeniy Polyakov
-
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/