[PATCH v4 05/66] Maple Tree: Add new data structure

Matthew Wilcox willy at infradead.org
Wed Dec 8 07:47:16 PST 2021

On Tue, Dec 07, 2021 at 04:34:44PM +0100, Vlastimil Babka wrote:
> > +/*
> > + * We also reserve values with the bottom two bits set to '10' which are
> > + * below 4096
> > + */
> > +static inline bool mt_is_reserved(const void *entry)
> > +{
> > +	return ((unsigned long)entry < MAPLE_RESERVED_RANGE) &&
> > +		xa_is_internal(entry);
> It's weird to suddenly see xa_ prefix here (and below). AFAICS it's nowhere
> declared that maple tree is derived from xarray so while it's not completely
> surprising given the overlap of authors, wouldn't it be more robust if maple
> tree had its own independent set of these helpers?

My intent is to merge the maple tree and xarray at some point.  The xarray
has some pretty awful worst-case behaviour that the maple tree avoids.
The maple tree doesn't yet have the search mark feature, and it needs a
new leaf node type for dense nodes.  It also needs a replacement for the
private_list used to trim the excess nodes which store workingset values.

When they get merged, my thinking was that the maple tree nomenclature
would be removed in favour of the xarray API, so I haven't been in too
much hurry to add aliases for all the parts of the xarray API that are
in the maple tree.

More information about the maple-tree mailing list