On Wed, 31 Oct 2012 10:11:06 +0200 Janne Kulmala <janne.t.kulm...@tut.fi> wrote:
> On 10/31/2012 08:52 AM, Andrew Morton wrote: > > On Wed, 31 Oct 2012 07:30:33 +0100 Stefani Seibold <stef...@seibold.net> > > wrote: > > > >>> Yes, and I guess the same to give them a 64-element one. > >>> > >>>> > >>>> If there's absolutely no prospect that the kfifo code will ever support > >>>> 100-byte fifos then I guess we should rework the API so that the caller > >>>> has to pass in log2 of the size, not the size itself. That way there > >>>> will be no surprises and no mistakes. > >>>> > >>>> That being said, the power-of-2 limitation isn't at all intrinsic to a > >>>> fifo, so we shouldn't do this. Ideally, we'd change the kfifo > >>>> implementation so it does what the caller asked it to do! > >>> > >>> I'm fine with removing the power-of-2 limitation. Stefani, what's your > >>> comment on that? > >>> > >> > >> You can't remove the power-of-2-limitation, since this would result in a > >> performance decrease (bit wise and vs. modulo operation). > > > > Probably an insignificant change in performance. > > > > It could be made much smaller by just never doing the modulus operation > > - instead do > > > > if (++index == max) > > index = 0; > > > > This can not be done, since the index manipulation kfifo does not use locks. Oh come on. Look: __kfifo->out++; \ and look: * Note that with only one concurrent reader and one concurrent * writer, you don't need extra locking to use these macro. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/