Re: number of elements or bytes for kfifo_in etc

From: Stefani Seibold
Date: Thu Aug 19 2010 - 02:53:08 EST


Am Donnerstag, den 19.08.2010, 09:15 +0800 schrieb Huang Ying:
> On Thu, 2010-08-19 at 08:32 +0800, Huang Ying wrote:
> > Hi, Stefani,
> >
> > On Thu, 2010-08-19 at 00:35 +0800, Stefani Seibold wrote:
> > > Am Mittwoch, den 18.08.2010, 13:29 +0800 schrieb Huang Ying:
> > > > Hi, Stefani,
> > > >
> > > > In new kfifo implementation in 2.6.36-rc1, description of the third
> > > > parameter is:
> > > >
> > > > "@n: number of elements to be added"
> > > >
> > > > But if my understanding is correct, the actual implementation is:
> > > >
> > > > "@n: number of bytes to be added"
> > > >
> > >
> > > Number of bytes is wrong, this is only valid for byte stream fifo's
> > > where an element is a byte.
> > >
> > > Have a look at samples/kfifo/inttype-example.c where an element is a int
> > > type.
> >
> > Yes. You are right. I misunderstood your code. Sorry for bothering.
>
> And I found __kfifo->esize is used in __kfifo_in/out etc to convert
> between elements and bytes. Maybe we can pull the conversion code to
> corresponding macro, because where esize is constant and may be
> optimized to bit shifting or nothing. What do you think about that?
>

esize isn't constant, especially from the point of view inside
__kfifo_in and so on. The is ony good reason not to pass the size of the
element using sizeof(*fifo->type) as a parameter, it will generate more
code. Storing the size of the element in the kfifo structure is the
better decision.

But if you found a better way and can prove it under any circumstance
with a list of measurement results u will get an ack!

- Stefani


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