Re: really generic, type save and type definable.

From: Henrik Rydberg
Date: Fri May 28 2010 - 07:12:25 EST


Stefani Seibold wrote:
> Am Freitag, den 28.05.2010, 09:43 +0200 schrieb Henrik Rydberg:
>> stefani@xxxxxxxxxxx wrote:
>> [...]
>>> The main goal was to provide an API which is very intuitive, save and easy
>>> to use. So linux will get now a powerful fifo API which provides all what
>>> a developer needs. This will save in the future a lot of kernel space, since
>>> there is no need to write an own implementation. Most of the device driver
>>> developers need a fifo, and also deep kernel development will gain benefit
>>> from this API.
>> The meaning of the term "multiple readers" referred to in the header is somewhat
>> ambiguous. It could in principle refer to concurrent reading of the same
>> position, or concurrent reading from different positions. Imaginably, those
>> cases also have different locking behavior.
>>
>> What happens if two fifos are initialized with the same memory buffer?
>>
>
> That would be a big nonsense! Tell me a real use case for such kind of
> request...

I am referring to a buffer where one thread writes data to the queue, and
several other threads read the _same_ data from the queue. Such a queue would
most likely have separate storage for the (buffer, head) on one hand, and the
tails on the other hand. I was interested in whether anyone had put any thought
into it, in particular with regard to a possible lock-less implementation.

I understand that it is not a good idea to use the same memory buffer in your
kfifo implementation, I was merely suggesting the documentation say so as well.

>
>> What about one-to-many and many-to-one cases? The input system and the logging
>> facilities could serve as examples where such buffers would be useful.
>>
>
> There is no ne-to-many and many-to-one cases since the API will handle
> this. You can not read more data then fit in the fifo, also u can not
> write more data the fifo can handle.

I am not sure is this comment means "the API will not allow it", or if we simply
got off on the wrong foot. If there is no interest in a one-to-many buffer, all
is fine. Otherwise, this thread seems like an appropriate place for such a
discussion, does it not?

Henrik
--
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/