On Thu, Sep 16, 2021 at 12:12 PM Vlastimil Babka <vbabka@xxxxxxx> wrote: > > On 9/16/21 10:51, Ananda Badmaev wrote: > > ztree is a versatile backend for zswap and potentially zram. It got its name > > due to the usage of red-black trees to store blocks of compressed objects. > > These blocks consist of several consecutive pages and ztree keeps an integer > > number of objects per block. > > > > For zram, ztree has better worst case malloc() and free() times than zsmalloc, > > does not deteriorate over time and has slightly worse but comparable compression > > ratio. For zswap, ztree has better worst case malloc() and free() times than > > z3fold, better compression ratio than z3fold and supports reclaim unlike zsmalloc. > > > > Signed-off-by: Ananda Badmaev <a.badmaev@xxxxxxxxxxxx> > > So how many of these allocators do we need? Minimally IMHO some data should > be provided for the performance comparison claims above. > Sounds like if this is based on z3fold (I haven't actually compared the > code) and better in every aspect, why not just "upgrade" z3fold to ztree then? We have collected a lot of data and it wouldn't fit in the cover message. I believe Ananda will follow up with comparison details on various architectures. I wouldn't say that ztree is completely based on z3fold, the latter might have served as an inspiration and ztree shares the idea that keeping an integral amount of objects per page is a good thing. With that said, ztree operates on blocks, not on pages which allows for more flexibility. ~Vitaly