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