I think what John means, and what Jamie has also brought up in a
separate note is that now when an event happens on an fd, in some cases
there are tests for 3 kinds of callbacks that get triggered -- the wait
queue for poll type registrations, the fasync list for sigio, and the
new epoll file send notify type callbacks. There is a little overhead
(not sure if significant) for each kind of test ...
>
>
> > > It fits _exactly_
> > >the rt-signal hooks. One of the design goals for me was to add almost
> > >nothing on the main path. You can lookup here for a quick compare between
> > >aio poll and epoll for a test where events delivery efficency does matter
> > >( pipetest ) :
> > >
> > This is a comparison of the cost of using epoll to the cost of using aio
> > in one particular situation. It is irrelevant to the point I was making.
>
> See, I believe numbers talks. And it does make a pretty clear point
> indeed.
>
>
>
> > My understanding of the efficiency of the epoll event notification
> > subsystem is:
> >
> > 1) Unlike the current aio poll, it amortizes the cost of interest
> > registration/deregistration across multiple events for a given connection.
>
> Yep
>
Adding persistent iocb support to aio doesn't appear too hard, and
to be fair to aio, it does seem to help it come much closer to epoll,
in fact very much closer at least for pipetest with a quickly hacked
version that I tried. There still appears to be a gap remaining to
be covered i.e epoll continuing to lead :) albeit by a smaller margin.
A little more magic is going on than just interest registration
amortization (and I suspect its not just the threading argument),
worth analysing if not for any other reason but to gain a better
understanding of these 2 event delivery mechanisms the core for both
of which are now in the mainline kernel.
Regards
Suparna
-- Suparna Bhattacharya (suparna@in.ibm.com) Linux Technology Center IBM Software Labs, India- 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/