Re: [PATCH v5 06/78] xarray: Change definition of sibling entries

From: Kirill A. Shutemov
Date: Tue Dec 26 2017 - 12:22:05 EST


On Fri, Dec 15, 2017 at 02:03:38PM -0800, Matthew Wilcox wrote:
> From: Matthew Wilcox <mawilcox@xxxxxxxxxxxxx>
>
> Instead of storing a pointer to the slot containing the canonical entry,
> store the offset of the slot. Produces slightly more efficient code
> (~300 bytes) and simplifies the implementation.
>
> Signed-off-by: Matthew Wilcox <mawilcox@xxxxxxxxxxxxx>
> ---
> include/linux/xarray.h | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++
> lib/radix-tree.c | 65 +++++++++++----------------------------
> 2 files changed, 100 insertions(+), 47 deletions(-)
>
> diff --git a/include/linux/xarray.h b/include/linux/xarray.h
> index 49fffc354431..f175350560fd 100644
> --- a/include/linux/xarray.h
> +++ b/include/linux/xarray.h
> @@ -49,6 +49,17 @@ static inline bool xa_is_value(const void *entry)
> return (unsigned long)entry & 1;
> }
>
> +/**
> + * xa_is_internal() - Is the entry an internal entry?
> + * @entry: Entry retrieved from the XArray
> + *
> + * Return: %true if the entry is an internal entry.
> + */

What does it mean "internal entry"? Is it just a term for non-value and
non-data pointer entry? Do we allow anybody besides xarray implementation to
use internal entires?

Do we have it documented?

--
Kirill A. Shutemov