Re: [PATCH 1/2] mm: zswap.c: add xarray tree to zswap

From: Matthew Wilcox
Date: Thu Jan 18 2024 - 08:52:55 EST


On Wed, Jan 17, 2024 at 10:20:29PM -0800, Yosry Ahmed wrote:
> > /* walk the tree and free everything */
> > spin_lock(&tree->lock);
> > +
> > + xas_for_each(&xas, e, ULONG_MAX)
>
> Why not use xa_for_each?

xas_for_each() is O(n) while xa_for_each() is O(n log n), as mentioned
in the fine documentation. If you don't need to drop the lock while
in the body of the loop, always prefer xas_for_each().