2023-12-12 17:16:29

by Catalin Marinas

[permalink] [raw]
Subject: Re: [PATCH v9 1/4] arm64: mte: implement CONFIG_ARM64_MTE_COMP

On Mon, Nov 13, 2023 at 11:52:30AM +0100, Alexander Potapenko wrote:
> The config implements the algorithm compressing memory tags for ARM MTE
> during swapping.
>
> The algorithm is based on RLE and specifically targets buffers of tags
> corresponding to a single page. In many cases a buffer can be compressed
> into 63 bits, making it possible to store it without additional memory
> allocation.
>
> Suggested-by: Evgenii Stepanov <[email protected]>
> Signed-off-by: Alexander Potapenko <[email protected]>

Acked-by: Catalin Marinas <[email protected]>

> +void mte_tags_to_ranges(u8 *tags, u8 *out_tags, unsigned short *out_sizes,
> + size_t *out_len)
> +{
[...]
> +}
> +EXPORT_SYMBOL_NS(mte_tags_to_ranges, MTECOMP);

I may have asked before, what the reason for EXPORT_SYMBOL_NS? Is it for
the kunit tests? Otherwise we don't expect those to be accessed from
modules.

--
Catalin


2023-12-13 12:16:53

by Will Deacon

[permalink] [raw]
Subject: Re: [PATCH v9 1/4] arm64: mte: implement CONFIG_ARM64_MTE_COMP

On Tue, Dec 12, 2023 at 05:16:15PM +0000, Catalin Marinas wrote:
> On Mon, Nov 13, 2023 at 11:52:30AM +0100, Alexander Potapenko wrote:
> > The config implements the algorithm compressing memory tags for ARM MTE
> > during swapping.
> >
> > The algorithm is based on RLE and specifically targets buffers of tags
> > corresponding to a single page. In many cases a buffer can be compressed
> > into 63 bits, making it possible to store it without additional memory
> > allocation.
> >
> > Suggested-by: Evgenii Stepanov <[email protected]>
> > Signed-off-by: Alexander Potapenko <[email protected]>
>
> Acked-by: Catalin Marinas <[email protected]>
>
> > +void mte_tags_to_ranges(u8 *tags, u8 *out_tags, unsigned short *out_sizes,
> > + size_t *out_len)
> > +{
> [...]
> > +}
> > +EXPORT_SYMBOL_NS(mte_tags_to_ranges, MTECOMP);
>
> I may have asked before, what the reason for EXPORT_SYMBOL_NS? Is it for
> the kunit tests? Otherwise we don't expect those to be accessed from
> modules.

It looks like it. The Kconfig option for the test is tristate and it calls
this symbol directly.

Will

2023-12-14 09:28:03

by Alexander Potapenko

[permalink] [raw]
Subject: Re: [PATCH v9 1/4] arm64: mte: implement CONFIG_ARM64_MTE_COMP

On Wed, Dec 13, 2023 at 1:16 PM Will Deacon <[email protected]> wrote:
>
> On Tue, Dec 12, 2023 at 05:16:15PM +0000, Catalin Marinas wrote:
> > On Mon, Nov 13, 2023 at 11:52:30AM +0100, Alexander Potapenko wrote:
> > > The config implements the algorithm compressing memory tags for ARM MTE
> > > during swapping.
> > >
> > > The algorithm is based on RLE and specifically targets buffers of tags
> > > corresponding to a single page. In many cases a buffer can be compressed
> > > into 63 bits, making it possible to store it without additional memory
> > > allocation.
> > >
> > > Suggested-by: Evgenii Stepanov <[email protected]>
> > > Signed-off-by: Alexander Potapenko <[email protected]>
> >
> > Acked-by: Catalin Marinas <[email protected]>
> >
> > > +void mte_tags_to_ranges(u8 *tags, u8 *out_tags, unsigned short *out_sizes,
> > > + size_t *out_len)
> > > +{
> > [...]
> > > +}
> > > +EXPORT_SYMBOL_NS(mte_tags_to_ranges, MTECOMP);
> >
> > I may have asked before, what the reason for EXPORT_SYMBOL_NS? Is it for
> > the kunit tests? Otherwise we don't expect those to be accessed from
> > modules.
>
> It looks like it. The Kconfig option for the test is tristate and it calls
> this symbol directly.
>
> Will

What Will said.