Re: [take19 1/4] kevent: Core files.
From: Evgeniy Polyakov
Date: Mon Oct 16 2006 - 03:34:52 EST
On Sun, Oct 15, 2006 at 04:22:45PM -0700, Ulrich Drepper (drepper@xxxxxxxxxx) wrote:
> Evgeniy Polyakov wrote:
> >Existing design does not allow overflow.
>
> And I've pointed out a number of times that this is not practical at
> best. There are event sources which can create events which cannot be
> coalesced into one single event as it would be required with your design.
>
> Signals are one example, specifically realtime signals. If we do not
> want the design to be limited from the start this approach has to be
> thought over.
The whole idea of mmap buffer seems to be broken, since those who asked
for creation do not like existing design and do not show theirs...
According to signals and possibility to overflow in existing ring buffer
implementation.
You seems to not checked the code - each event can be marked as ready
only one time, which means only one copy and so on.
It was done _specially_. And it is not limitation, but "new" approach.
Queue of the same signals or any other events has fundamental flawness
(as any other ring buffer implementation, which has queue size) -
it's size of the queue and extremely bad case of the overflow.
So, the same event may not be ready several times. Any design which
allows to create infinite number of events generated for the same case
is broken, since consumer can be in situation, when it can not handle
that flow. That is why poll() returns only POLLIN when data is ready in
network stack, but is not trying to generate some kind of a signal for
each byte/packet/MTU/MSS received.
RT signals have design problems, and I will not repeate the same error
with similar limits in kevent.
> >>So zap mmap() support completely, since it is not usable at all. We wont
> >>discuss on it.
> >
> >Initial implementation did not have it.
> >But I was requested to do it, and it is ready now.
> >No one likes it, but no one provides an alternative implementation.
> >We are stuck.
>
> We need the mapped ring buffer. The current design (before it was
> removed) was broken but this does not mean it shouldn't be implemented.
> We just need more time to figure out how to implement it correctly.
In the latest patchset it was removed. I'm waiting for your code.
Mmap implementation can be added separately, since it does not affect
kevent core.
> --
> â 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/