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
>
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.
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."
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
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!