2023-06-19 10:34:38

by Dmitry Vyukov

[permalink] [raw]
Subject: Re: [PATCH] kasan: fix mention for KASAN_HW_TAGS

On Mon, 19 Jun 2023 at 12:12, Chanho Min <[email protected]> wrote:
>
> This patch removes description of the KASAN_HW_TAGS's memory consumption.
> KASAN_HW_TAGS does not set 1/32nd shadow memory.

The hardware still allocates/uses shadow in MTE.
Though, it may be 1/16-th, not sure.

> Signed-off-by: Chanho Min <[email protected]>
> ---
> lib/Kconfig.kasan | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan
> index fdca89c05745..5be1740234b9 100644
> --- a/lib/Kconfig.kasan
> +++ b/lib/Kconfig.kasan
> @@ -124,8 +124,6 @@ config KASAN_HW_TAGS
> Supported only on arm64 CPUs starting from ARMv8.5 and relies on
> Memory Tagging Extension and Top Byte Ignore.
>
> - Consumes about 1/32nd of available memory.
> -
> May potentially introduce problems related to pointer casting and
> comparison, as it embeds a tag into the top byte of each pointer.
>
> --
> 2.17.1
>


2023-06-19 12:13:39

by Marco Elver

[permalink] [raw]
Subject: Re: [PATCH] kasan: fix mention for KASAN_HW_TAGS

On Mon, 19 Jun 2023 at 12:15, Dmitry Vyukov <[email protected]> wrote:
> On Mon, 19 Jun 2023 at 12:12, Chanho Min <[email protected]> wrote:
> >
> > This patch removes description of the KASAN_HW_TAGS's memory consumption.
> > KASAN_HW_TAGS does not set 1/32nd shadow memory.
>
> The hardware still allocates/uses shadow in MTE.
> Though, it may be 1/16-th, not sure.

I think the point is that it depends on the hardware implementation of
MTE. There are a range of possibilities, but enabling KASAN_HW_TAGS
doesn't consume any extra memory for tags itself if the hardware has
to enable MTE and provision tag space via firmware to begin with.

> > Signed-off-by: Chanho Min <[email protected]>

I think you just have to be a bit clearer in the commit description,
just briefly mentioning how/where the tag space is allocated in
hardware that do support MTE. Then removing this line is probably
fair, if KASAN_HW_TAGS isn't the direct reason for tag memory being
allocated.

2023-06-20 17:23:14

by Andrey Konovalov

[permalink] [raw]
Subject: Re: [PATCH] kasan: fix mention for KASAN_HW_TAGS

On Mon, Jun 19, 2023 at 1:36 PM Marco Elver <[email protected]> wrote:
>
> On Mon, 19 Jun 2023 at 12:15, Dmitry Vyukov <[email protected]> wrote:
> > On Mon, 19 Jun 2023 at 12:12, Chanho Min <[email protected]> wrote:
> > >
> > > This patch removes description of the KASAN_HW_TAGS's memory consumption.
> > > KASAN_HW_TAGS does not set 1/32nd shadow memory.
> >
> > The hardware still allocates/uses shadow in MTE.
> > Though, it may be 1/16-th, not sure.

1/32 is correct: 4 bits for every 16 bytes.

> I think the point is that it depends on the hardware implementation of
> MTE. There are a range of possibilities, but enabling KASAN_HW_TAGS
> doesn't consume any extra memory for tags itself if the hardware has
> to enable MTE and provision tag space via firmware to begin with.

Yeah, saying that HW_TAGS consumes memory is wrong.

But it might reasonable to spell out what happens with memory in the
config options description. Something like:

"Does not consume memory by itself but relies on the 1/32nd of
available memory being reserved by the firmware when MTE is enabled."

2023-06-23 08:23:04

by Chanho Min

[permalink] [raw]
Subject: [PATCH v2] kasan: fix mention for KASAN_HW_TAGS

This patch fixes description of the KASAN_HW_TAGS's memory consumption.
KASAN_HW_TAGS are dependent on the HW implementation and are not reserved
from system memory like shadow memory.

Suggested-by: Andrey Konovalov <[email protected]>
Signed-off-by: Chanho Min <[email protected]>
---
lib/Kconfig.kasan | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan
index fdca89c05745..f8f9e12510b7 100644
--- a/lib/Kconfig.kasan
+++ b/lib/Kconfig.kasan
@@ -124,7 +124,8 @@ config KASAN_HW_TAGS
Supported only on arm64 CPUs starting from ARMv8.5 and relies on
Memory Tagging Extension and Top Byte Ignore.

- Consumes about 1/32nd of available memory.
+ Does not consume memory by itself but relies on the 1/32nd of
+ available memory being reserved by the firmware when MTE is enabled.

May potentially introduce problems related to pointer casting and
comparison, as it embeds a tag into the top byte of each pointer.
--
2.17.1


2023-06-23 12:48:31

by Andrey Konovalov

[permalink] [raw]
Subject: Re: [PATCH v2] kasan: fix mention for KASAN_HW_TAGS

On Fri, Jun 23, 2023 at 9:58 AM Chanho Min <[email protected]> wrote:
>
> This patch fixes description of the KASAN_HW_TAGS's memory consumption.
> KASAN_HW_TAGS are dependent on the HW implementation and are not reserved
> from system memory like shadow memory.
>
> Suggested-by: Andrey Konovalov <[email protected]>
> Signed-off-by: Chanho Min <[email protected]>
> ---
> lib/Kconfig.kasan | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan
> index fdca89c05745..f8f9e12510b7 100644
> --- a/lib/Kconfig.kasan
> +++ b/lib/Kconfig.kasan
> @@ -124,7 +124,8 @@ config KASAN_HW_TAGS
> Supported only on arm64 CPUs starting from ARMv8.5 and relies on
> Memory Tagging Extension and Top Byte Ignore.
>
> - Consumes about 1/32nd of available memory.
> + Does not consume memory by itself but relies on the 1/32nd of
> + available memory being reserved by the firmware when MTE is enabled.
>
> May potentially introduce problems related to pointer casting and
> comparison, as it embeds a tag into the top byte of each pointer.
> --
> 2.17.1
>

Reviewed-by: Andrey Konovalov <[email protected]>

Thank you!