Re: [PATCH v9] zswap: replace RB tree with xarray

From: Johannes Weiner
Date: Tue Mar 26 2024 - 16:48:59 EST


On Tue, Mar 26, 2024 at 11:35:43AM -0700, Chris Li wrote:
> /*
> - * When reading into the swapcache, invalidate our entry. The
> + * When reading into the swapcache, erase our entry. The
> * swapcache can be the authoritative owner of the page and
> * its mappings, and the pressure that results from having two
> * in-memory copies outweighs any benefits of caching the

Not sure why you editorialized this? Your patch doesn't change those
semantics, for which "invalidation" of the backing copy is a much
better description, given we're also marking the folio dirty again etc.

Can you please send a delta fix to undo that?

> @@ -1649,8 +1581,12 @@ bool zswap_load(struct folio *folio)
> * the fault fails. We remain the primary owner of the entry.)
> */
> if (swapcache)
> - zswap_rb_erase(&tree->rbroot, entry);
> - spin_unlock(&tree->lock);
> + entry = xa_erase(tree, offset);
> + else
> + entry = xa_load(tree, offset);
> +
> + if (!entry)
> + return false;
>
> if (entry->length)
> zswap_decompress(entry, page);

Otherwise, looks good to me

Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx>