linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3] kasan: add kasan mode messages when kasan init
@ 2021-10-20  9:48 Kuan-Ying Lee
  2021-10-20  9:58 ` Marco Elver
  2021-10-22 12:28 ` David Hildenbrand
  0 siblings, 2 replies; 5+ messages in thread
From: Kuan-Ying Lee @ 2021-10-20  9:48 UTC (permalink / raw)
  To: Andrey Ryabinin, Alexander Potapenko, Andrey Konovalov,
	Dmitry Vyukov, Catalin Marinas, Will Deacon, Andrew Morton,
	Matthias Brugger, Marco Elver
  Cc: chinwen.chang, yee.lee, nicholas.tang, kasan-dev,
	linux-arm-kernel, linux-kernel, linux-mm, linux-mediatek,
	Kuan-Ying Lee

There are multiple kasan modes. It makes sense that we add some messages
to know which kasan mode is when booting up. see [1].

Link: https://bugzilla.kernel.org/show_bug.cgi?id=212195 [1]
Signed-off-by: Kuan-Ying Lee <Kuan-Ying.Lee@mediatek.com>
---
v3:
 - Rebase to linux-next
 - Move kasan_mode_info() into hw_tags.c
v2:
 - Rebase to linux-next
 - HW-tag based mode need to consider asymm mode
 - Thanks Marco's suggestion

 arch/arm64/mm/kasan_init.c |  2 +-
 mm/kasan/hw_tags.c         | 14 +++++++++++++-
 mm/kasan/sw_tags.c         |  2 +-
 3 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/arch/arm64/mm/kasan_init.c b/arch/arm64/mm/kasan_init.c
index 5b996ca4d996..6f5a6fe8edd7 100644
--- a/arch/arm64/mm/kasan_init.c
+++ b/arch/arm64/mm/kasan_init.c
@@ -309,7 +309,7 @@ void __init kasan_init(void)
 	kasan_init_depth();
 #if defined(CONFIG_KASAN_GENERIC)
 	/* CONFIG_KASAN_SW_TAGS also requires kasan_init_sw_tags(). */
-	pr_info("KernelAddressSanitizer initialized\n");
+	pr_info("KernelAddressSanitizer initialized (generic)\n");
 #endif
 }
 
diff --git a/mm/kasan/hw_tags.c b/mm/kasan/hw_tags.c
index dc892119e88f..7355cb534e4f 100644
--- a/mm/kasan/hw_tags.c
+++ b/mm/kasan/hw_tags.c
@@ -106,6 +106,16 @@ static int __init early_kasan_flag_stacktrace(char *arg)
 }
 early_param("kasan.stacktrace", early_kasan_flag_stacktrace);
 
+static inline const char *kasan_mode_info(void)
+{
+	if (kasan_mode == KASAN_MODE_ASYNC)
+		return "async";
+	else if (kasan_mode == KASAN_MODE_ASYMM)
+		return "asymm";
+	else
+		return "sync";
+}
+
 /* kasan_init_hw_tags_cpu() is called for each CPU. */
 void kasan_init_hw_tags_cpu(void)
 {
@@ -177,7 +187,9 @@ void __init kasan_init_hw_tags(void)
 		break;
 	}
 
-	pr_info("KernelAddressSanitizer initialized\n");
+	pr_info("KernelAddressSanitizer initialized (hw-tags, mode=%s, stacktrace=%s)\n",
+		kasan_mode_info(),
+		kasan_stack_collection_enabled() ? "on" : "off");
 }
 
 void kasan_alloc_pages(struct page *page, unsigned int order, gfp_t flags)
diff --git a/mm/kasan/sw_tags.c b/mm/kasan/sw_tags.c
index bd3f540feb47..77f13f391b57 100644
--- a/mm/kasan/sw_tags.c
+++ b/mm/kasan/sw_tags.c
@@ -42,7 +42,7 @@ void __init kasan_init_sw_tags(void)
 	for_each_possible_cpu(cpu)
 		per_cpu(prng_state, cpu) = (u32)get_cycles();
 
-	pr_info("KernelAddressSanitizer initialized\n");
+	pr_info("KernelAddressSanitizer initialized (sw-tags)\n");
 }
 
 /*
-- 
2.18.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v3] kasan: add kasan mode messages when kasan init
  2021-10-20  9:48 [PATCH v3] kasan: add kasan mode messages when kasan init Kuan-Ying Lee
@ 2021-10-20  9:58 ` Marco Elver
  2021-10-20 22:29   ` Andrew Morton
  2021-10-22 12:28 ` David Hildenbrand
  1 sibling, 1 reply; 5+ messages in thread
From: Marco Elver @ 2021-10-20  9:58 UTC (permalink / raw)
  To: Kuan-Ying Lee
  Cc: Andrey Ryabinin, Alexander Potapenko, Andrey Konovalov,
	Dmitry Vyukov, Catalin Marinas, Will Deacon, Andrew Morton,
	Matthias Brugger, chinwen.chang, yee.lee, nicholas.tang,
	kasan-dev, linux-arm-kernel, linux-kernel, linux-mm,
	linux-mediatek

On Wed, 20 Oct 2021 at 11:48, Kuan-Ying Lee <Kuan-Ying.Lee@mediatek.com> wrote:
>
> There are multiple kasan modes. It makes sense that we add some messages
> to know which kasan mode is when booting up. see [1].
>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=212195 [1]
> Signed-off-by: Kuan-Ying Lee <Kuan-Ying.Lee@mediatek.com>

Reviewed-by: Marco Elver <elver@google.com>

Thank you.

Because this is rebased on the changes in the arm64 tree, and also
touches arch/arm64, it probably has to go through the arm64 tree.

> ---
> v3:
>  - Rebase to linux-next
>  - Move kasan_mode_info() into hw_tags.c
> v2:
>  - Rebase to linux-next
>  - HW-tag based mode need to consider asymm mode
>  - Thanks Marco's suggestion
>
>  arch/arm64/mm/kasan_init.c |  2 +-
>  mm/kasan/hw_tags.c         | 14 +++++++++++++-
>  mm/kasan/sw_tags.c         |  2 +-
>  3 files changed, 15 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm64/mm/kasan_init.c b/arch/arm64/mm/kasan_init.c
> index 5b996ca4d996..6f5a6fe8edd7 100644
> --- a/arch/arm64/mm/kasan_init.c
> +++ b/arch/arm64/mm/kasan_init.c
> @@ -309,7 +309,7 @@ void __init kasan_init(void)
>         kasan_init_depth();
>  #if defined(CONFIG_KASAN_GENERIC)
>         /* CONFIG_KASAN_SW_TAGS also requires kasan_init_sw_tags(). */
> -       pr_info("KernelAddressSanitizer initialized\n");
> +       pr_info("KernelAddressSanitizer initialized (generic)\n");
>  #endif
>  }

Note: Other architectures may want to update their message once they
support any one of the tags modes. But currently that's not yet the
case.

You could also consider leaving out the "(generic)" bit if it's the
generic mode to avoid adding this to all arch/**/kasan_init.c. Both is
fine with me. I leave it to you.

> diff --git a/mm/kasan/hw_tags.c b/mm/kasan/hw_tags.c
> index dc892119e88f..7355cb534e4f 100644
> --- a/mm/kasan/hw_tags.c
> +++ b/mm/kasan/hw_tags.c
> @@ -106,6 +106,16 @@ static int __init early_kasan_flag_stacktrace(char *arg)
>  }
>  early_param("kasan.stacktrace", early_kasan_flag_stacktrace);
>
> +static inline const char *kasan_mode_info(void)
> +{
> +       if (kasan_mode == KASAN_MODE_ASYNC)
> +               return "async";
> +       else if (kasan_mode == KASAN_MODE_ASYMM)
> +               return "asymm";
> +       else
> +               return "sync";
> +}
> +
>  /* kasan_init_hw_tags_cpu() is called for each CPU. */
>  void kasan_init_hw_tags_cpu(void)
>  {
> @@ -177,7 +187,9 @@ void __init kasan_init_hw_tags(void)
>                 break;
>         }
>
> -       pr_info("KernelAddressSanitizer initialized\n");
> +       pr_info("KernelAddressSanitizer initialized (hw-tags, mode=%s, stacktrace=%s)\n",
> +               kasan_mode_info(),
> +               kasan_stack_collection_enabled() ? "on" : "off");
>  }
>
>  void kasan_alloc_pages(struct page *page, unsigned int order, gfp_t flags)
> diff --git a/mm/kasan/sw_tags.c b/mm/kasan/sw_tags.c
> index bd3f540feb47..77f13f391b57 100644
> --- a/mm/kasan/sw_tags.c
> +++ b/mm/kasan/sw_tags.c
> @@ -42,7 +42,7 @@ void __init kasan_init_sw_tags(void)
>         for_each_possible_cpu(cpu)
>                 per_cpu(prng_state, cpu) = (u32)get_cycles();
>
> -       pr_info("KernelAddressSanitizer initialized\n");
> +       pr_info("KernelAddressSanitizer initialized (sw-tags)\n");
>  }
>
>  /*
> --
> 2.18.0

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v3] kasan: add kasan mode messages when kasan init
  2021-10-20  9:58 ` Marco Elver
@ 2021-10-20 22:29   ` Andrew Morton
  2021-10-21  8:55     ` Will Deacon
  0 siblings, 1 reply; 5+ messages in thread
From: Andrew Morton @ 2021-10-20 22:29 UTC (permalink / raw)
  To: Marco Elver
  Cc: Kuan-Ying Lee, Andrey Ryabinin, Alexander Potapenko,
	Andrey Konovalov, Dmitry Vyukov, Catalin Marinas, Will Deacon,
	Matthias Brugger, chinwen.chang, yee.lee, nicholas.tang,
	kasan-dev, linux-arm-kernel, linux-kernel, linux-mm,
	linux-mediatek

On Wed, 20 Oct 2021 11:58:26 +0200 Marco Elver <elver@google.com> wrote:

> On Wed, 20 Oct 2021 at 11:48, Kuan-Ying Lee <Kuan-Ying.Lee@mediatek.com> wrote:
> >
> > There are multiple kasan modes. It makes sense that we add some messages
> > to know which kasan mode is when booting up. see [1].
> >
> > Link: https://bugzilla.kernel.org/show_bug.cgi?id=212195 [1]
> > Signed-off-by: Kuan-Ying Lee <Kuan-Ying.Lee@mediatek.com>
> 
> Reviewed-by: Marco Elver <elver@google.com>
> 
> Thank you.
> 
> Because this is rebased on the changes in the arm64 tree, and also
> touches arch/arm64, it probably has to go through the arm64 tree.

That would be OK, as long as it doesn't also have dependencies on
pending changes elsewhere in the -mm tree.

To solve both potential problems, I've queued it in -mm's
post-linux-next section, so it gets sent to Linus after both -mm and
arm have merged up.


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v3] kasan: add kasan mode messages when kasan init
  2021-10-20 22:29   ` Andrew Morton
@ 2021-10-21  8:55     ` Will Deacon
  0 siblings, 0 replies; 5+ messages in thread
From: Will Deacon @ 2021-10-21  8:55 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Marco Elver, Kuan-Ying Lee, Andrey Ryabinin, Alexander Potapenko,
	Andrey Konovalov, Dmitry Vyukov, Catalin Marinas,
	Matthias Brugger, chinwen.chang, yee.lee, nicholas.tang,
	kasan-dev, linux-arm-kernel, linux-kernel, linux-mm,
	linux-mediatek

On Wed, Oct 20, 2021 at 03:29:09PM -0700, Andrew Morton wrote:
> On Wed, 20 Oct 2021 11:58:26 +0200 Marco Elver <elver@google.com> wrote:
> 
> > On Wed, 20 Oct 2021 at 11:48, Kuan-Ying Lee <Kuan-Ying.Lee@mediatek.com> wrote:
> > >
> > > There are multiple kasan modes. It makes sense that we add some messages
> > > to know which kasan mode is when booting up. see [1].
> > >
> > > Link: https://bugzilla.kernel.org/show_bug.cgi?id=212195 [1]
> > > Signed-off-by: Kuan-Ying Lee <Kuan-Ying.Lee@mediatek.com>
> > 
> > Reviewed-by: Marco Elver <elver@google.com>
> > 
> > Thank you.
> > 
> > Because this is rebased on the changes in the arm64 tree, and also
> > touches arch/arm64, it probably has to go through the arm64 tree.
> 
> That would be OK, as long as it doesn't also have dependencies on
> pending changes elsewhere in the -mm tree.
> 
> To solve both potential problems, I've queued it in -mm's
> post-linux-next section, so it gets sent to Linus after both -mm and
> arm have merged up.

Works for me -- I'll ignore this patch then.

Will

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v3] kasan: add kasan mode messages when kasan init
  2021-10-20  9:48 [PATCH v3] kasan: add kasan mode messages when kasan init Kuan-Ying Lee
  2021-10-20  9:58 ` Marco Elver
@ 2021-10-22 12:28 ` David Hildenbrand
  1 sibling, 0 replies; 5+ messages in thread
From: David Hildenbrand @ 2021-10-22 12:28 UTC (permalink / raw)
  To: Kuan-Ying Lee, Andrey Ryabinin, Alexander Potapenko,
	Andrey Konovalov, Dmitry Vyukov, Catalin Marinas, Will Deacon,
	Andrew Morton, Matthias Brugger, Marco Elver
  Cc: chinwen.chang, yee.lee, nicholas.tang, kasan-dev,
	linux-arm-kernel, linux-kernel, linux-mm, linux-mediatek

On 20.10.21 11:48, Kuan-Ying Lee wrote:
> There are multiple kasan modes. It makes sense that we add some messages
> to know which kasan mode is when booting up. see [1].

s/is/is active/ ?

Looks reasonable to me

Reviewed-by: David Hildenbrand <david@redhat.com>

> 
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=212195 [1]
> Signed-off-by: Kuan-Ying Lee <Kuan-Ying.Lee@mediatek.com>
> ---
> v3:
>  - Rebase to linux-next
>  - Move kasan_mode_info() into hw_tags.c
> v2:
>  - Rebase to linux-next
>  - HW-tag based mode need to consider asymm mode
>  - Thanks Marco's suggestion
> 
>  arch/arm64/mm/kasan_init.c |  2 +-
>  mm/kasan/hw_tags.c         | 14 +++++++++++++-
>  mm/kasan/sw_tags.c         |  2 +-
>  3 files changed, 15 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm64/mm/kasan_init.c b/arch/arm64/mm/kasan_init.c
> index 5b996ca4d996..6f5a6fe8edd7 100644
> --- a/arch/arm64/mm/kasan_init.c
> +++ b/arch/arm64/mm/kasan_init.c
> @@ -309,7 +309,7 @@ void __init kasan_init(void)
>  	kasan_init_depth();
>  #if defined(CONFIG_KASAN_GENERIC)
>  	/* CONFIG_KASAN_SW_TAGS also requires kasan_init_sw_tags(). */
> -	pr_info("KernelAddressSanitizer initialized\n");
> +	pr_info("KernelAddressSanitizer initialized (generic)\n");
>  #endif
>  }
>  
> diff --git a/mm/kasan/hw_tags.c b/mm/kasan/hw_tags.c
> index dc892119e88f..7355cb534e4f 100644
> --- a/mm/kasan/hw_tags.c
> +++ b/mm/kasan/hw_tags.c
> @@ -106,6 +106,16 @@ static int __init early_kasan_flag_stacktrace(char *arg)
>  }
>  early_param("kasan.stacktrace", early_kasan_flag_stacktrace);
>  
> +static inline const char *kasan_mode_info(void)
> +{
> +	if (kasan_mode == KASAN_MODE_ASYNC)
> +		return "async";
> +	else if (kasan_mode == KASAN_MODE_ASYMM)
> +		return "asymm";
> +	else
> +		return "sync";
> +}
> +
>  /* kasan_init_hw_tags_cpu() is called for each CPU. */
>  void kasan_init_hw_tags_cpu(void)
>  {
> @@ -177,7 +187,9 @@ void __init kasan_init_hw_tags(void)
>  		break;
>  	}
>  
> -	pr_info("KernelAddressSanitizer initialized\n");
> +	pr_info("KernelAddressSanitizer initialized (hw-tags, mode=%s, stacktrace=%s)\n",
> +		kasan_mode_info(),
> +		kasan_stack_collection_enabled() ? "on" : "off");
>  }
>  
>  void kasan_alloc_pages(struct page *page, unsigned int order, gfp_t flags)
> diff --git a/mm/kasan/sw_tags.c b/mm/kasan/sw_tags.c
> index bd3f540feb47..77f13f391b57 100644
> --- a/mm/kasan/sw_tags.c
> +++ b/mm/kasan/sw_tags.c
> @@ -42,7 +42,7 @@ void __init kasan_init_sw_tags(void)
>  	for_each_possible_cpu(cpu)
>  		per_cpu(prng_state, cpu) = (u32)get_cycles();
>  
> -	pr_info("KernelAddressSanitizer initialized\n");
> +	pr_info("KernelAddressSanitizer initialized (sw-tags)\n");
>  }
>  
>  /*
> 


-- 
Thanks,

David / dhildenb


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-10-22 12:30 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-20  9:48 [PATCH v3] kasan: add kasan mode messages when kasan init Kuan-Ying Lee
2021-10-20  9:58 ` Marco Elver
2021-10-20 22:29   ` Andrew Morton
2021-10-21  8:55     ` Will Deacon
2021-10-22 12:28 ` David Hildenbrand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).