Re: [PATCH v2] kasan: Support for r/w instrumentation control
From: Dmitry Vyukov
Date: Tue Dec 13 2016 - 03:59:11 EST
On Tue, Dec 13, 2016 at 6:57 AM, Maninder Singh <maninder1.s@xxxxxxxxxxx> wrote:
> This provide option to control sanity of read and write operations
> Both read and write instrumentation increase size of uImage, So using
> this option read or write instrumentation can be avoided if not required.
> Useful in case of module sanity, using this uImage sanity can be avoided.
> Also user space ASAN provides this support for read/write instrumentation
> Signed-off-by: Vaneet narang <v.narang@xxxxxxxxxxx>
> Signed-off-by: Maninder Singh <maninder1.s@xxxxxxxxxxx>
> Reviewed-by: Ajeet Yadav <ajeet.y@xxxxxxxxxxx>
> v1 -> v2: Added Documentation for the same.
> Documentation/dev-tools/kasan.rst | 16 ++++++++++++++++
> lib/Kconfig.kasan | 16 ++++++++++++++++
> scripts/Makefile.kasan | 4 ++++
> 3 files changed, 36 insertions(+)
> diff --git a/Documentation/dev-tools/kasan.rst b/Documentation/dev-tools/kasan.rst
> index f7a18f2..b8147df 100644
> --- a/Documentation/dev-tools/kasan.rst
> +++ b/Documentation/dev-tools/kasan.rst
> @@ -40,6 +40,22 @@ similar to the following to the respective kernel Makefile:
> KASAN_SANITIZE := n
> +Control Over Read/Write Instrumentation of kernel::
double colon at the end of line
> +- To Disable Read Instrumentation of kernel with:
Strange choice of capital letters.
> + CONFIG_KASAN_READS = n
Are configs ever set to = n? I can't find any cases in my .config file.
I thought configs are disabled with:
# CONFIG_KASAN_READS is not set
> +Because in some cases we need to check only memory write sanitization
> +for better performance, read instrumentation can be disabled.
> +- To Disable Write Instrumentation of kernel with:
I am not a native speaker but this looks malformed.
I would say either "Disable write instrumentation of kernel with" or
"To disable write instrumentation of kernel set"
> + CONFIG_KASAN_WRITES = n
> +In case when to instrument only external modules, not the entire kernel
> +for read or write intrumentation or both.
I propose something along these lines:
@@ -40,6 +40,14 @@ similar to the following to the respective kernel Makefile:
KASAN_SANITIZE := n
+Sometimes it may be useful to disable instrumentation of reads, or writes
+or both for the entire kernel. For example, if binary size is a concern,
+it may be useful to disable instrumentation of reads to reduce binary size but
+still catch more harmful bugs on writes. Or, if one is interested only in
+sanitization of a particular module and performance is a concern, she can
+disable instrumentation of both reads and writes for kernel code.
+Instrumentation can be disabled with CONFIG_KASAN_READS and