Hi Rasmus,

On Fri, 18 Oct 2024 at 08:55, Simon Glass <s...@chromium.org> wrote:
>
> Hi Rasmus,
>
> On Fri, 18 Oct 2024 at 01:05, Rasmus Villemoes <r...@prevas.dk> wrote:
> >
> > On tor, okt 17 2024, Simon Glass <s...@chromium.org> wrote:
> >
> > >
> > >   membuf: Support a flag for being full
> > >
> >
> > No, that is the worst of all worlds, especially with it being a
> > build-time flag. The right implementation is the one where the head and
> > tail indices are free-running, where you get such a "flag" for
> > free, because you're not wasting the top bits of the indices.
> >
> > https://www.snellman.net/blog/archive/2016-12-13-ring-buffers/
>
> Thanks for the link. It is an interesting read, including the
> comments. I've only written one ring buffer in my life and this is it
> :-)
>
> Which option do you suggest? We don't currently restrict the size to a
> power of two and that does seem like a strange restriction. It will
> make it less useful, e.g. in extlinux_fill_info() and potentially
> replacing memgets().
>
> We actually don't have to worry (today) about threading, so option two
> could work, I suppose. I don't like the 'length' field any more than
> the author, but we could have a simple function to turn it into
> (pointer plus an empty/full flag)
>
> The power-of-two restriction could be lifted by use division instead
> of masking and making sure that the indexes keep to reasonable values
> (say no more than twice the buffer size). In fact with the limit, we
> could just subtract the length from the index when accessing it, if
> needed.
>
> But overall I think I'm with Chris.
>
> >
> > If you want to do the churn of renaming anyway, I suggest doing it by
> > adding an implementation using the proper scheme under the new name,
> > switch users over, and dropping the old. IMO, this series as-is brings
> > no value (except for the tests, of course).
>
> OK. Do you think this series gets us closer to that, or further away?

I didn't get a response to this (which is not a problem, I miss things
all the time). Anyway I don't like the power-of-two restriction and
you can see my other responses above. I've applied this to my tree as
I want to have the tests in place.

Regards,
SImon

Reply via email to