On 10/4/24 6:41 PM, Jens Axboe wrote:
That seems over-engineered. Seems to me that either these things should share a slab cache (why do they need one each, if they are the same sized object?!).
The size of two of the three slab caches is variable.
And if they really do need one, surely something ala: static atomic_long_t slab_index; sprintf(slab_name, "foo-%ld", atomic_inc_return(&slab_index)); would be all you need.
A 32-bit counter wraps around after about 4 billion iterations, isn't it? Thanks, Bart.