From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
To: Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
paulus@samba.org, mpe@ellerman.id.au,
linuxppc-dev@lists.ozlabs.org,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH V2 07/10] kasan: Make INLINE KASan support arch selectable
Date: Sun, 30 Aug 2015 18:20:21 +0530 [thread overview]
Message-ID: <87613xq6sy.fsf@linux.vnet.ibm.com> (raw)
In-Reply-To: <CAPAsAGyG89ABf4WqvhtDqxF18UnmMh+Kn2gFRqH3-x4guGOiVQ@mail.gmail.com>
Andrey Ryabinin <ryabinin.a.a@gmail.com> writes:
> 2015-08-26 11:26 GMT+03:00 Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>:
>> Some of the archs, may find it difficult to support inline KASan
>> mode. Add HAVE_ARCH_KASAN_INLINE so that we can disable inline
>> support at config time.
>>
>> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>> ---
>> arch/x86/Kconfig | 1 +
>> lib/Kconfig.kasan | 2 ++
>> scripts/Makefile.kasan | 28 ++++++++++++++--------------
>> 3 files changed, 17 insertions(+), 14 deletions(-)
>>
>> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
>> index b3a1a5d77d92..4416f80580fb 100644
>> --- a/arch/x86/Kconfig
>> +++ b/arch/x86/Kconfig
>> @@ -78,6 +78,7 @@ config X86
>> select HAVE_ARCH_HUGE_VMAP if X86_64 || X86_PAE
>> select HAVE_ARCH_JUMP_LABEL
>> select HAVE_ARCH_KASAN if X86_64 && SPARSEMEM_VMEMMAP
>> + select HAVE_ARCH_KASAN_INLINE if X86_64 && SPARSEMEM_VMEMMAP
>
> This will not work because config HAVE_ARCH_KASAN_INLINE is not defined.
> Instead of you can just add following in this file:
>
> config HAVE_ARCH_KASAN_INLINE
> def_bool y
> depends on KASAN
>
Missed cherry-pick
diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan
index e9d1bb1175b8..5dba03bc3f01 100644
--- a/lib/Kconfig.kasan
+++ b/lib/Kconfig.kasan
@@ -1,6 +1,9 @@
config HAVE_ARCH_KASAN
bool
+config HAVE_ARCH_KASAN_INLINE
+ bool
+
if HAVE_ARCH_KASAN
config KASAN
>
>> select HAVE_ARCH_KGDB
>> select HAVE_ARCH_KMEMCHECK
>> select HAVE_ARCH_SECCOMP_FILTER
>> diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan
>> index 39f24d6721e5..e9d1bb1175b8 100644
>> --- a/lib/Kconfig.kasan
>> +++ b/lib/Kconfig.kasan
>> @@ -32,6 +32,7 @@ config KASAN_OUTLINE
>> however it doesn't bloat size of kernel's .text section so
>> much as inline does.
>>
>> +if HAVE_ARCH_KASAN_INLINE
>> config KASAN_INLINE
>> bool "Inline instrumentation"
>
> depends on HAVE_ARCH_KASAN_INLINE
>
>> help
>> @@ -40,6 +41,7 @@ config KASAN_INLINE
>> it gives about x2 boost over outline instrumentation), but
>> make kernel's .text size much bigger.
>> This requires a gcc version of 5.0 or later.
>> +endif
>>
>> endchoice
>>
>> diff --git a/scripts/Makefile.kasan b/scripts/Makefile.kasan
>> index 3f874d24234f..c1c06e9e107a 100644
>> --- a/scripts/Makefile.kasan
>> +++ b/scripts/Makefile.kasan
>> @@ -1,29 +1,29 @@
>> ifdef CONFIG_KASAN
>> -ifdef CONFIG_KASAN_INLINE
>> - call_threshold := 10000
>> -else
>> - call_threshold := 0
>> -endif
>> -
>> -CFLAGS_KASAN_MINIMAL := -fsanitize=kernel-address
>>
>> CFLAGS_KASAN := $(call cc-option, -fsanitize=kernel-address \
>> - -fasan-shadow-offset=$(CONFIG_KASAN_SHADOW_OFFSET) \
>> - --param asan-stack=1 --param asan-globals=1 \
>> - --param asan-instrumentation-with-call-threshold=$(call_threshold))
>> -
>> -ifeq ($(call cc-option, $(CFLAGS_KASAN_MINIMAL) -Werror),)
>> + --param asan-instrumentation-with-call-threshold=0)
>> +ifeq ($(CFLAGS_KASAN),)
>> ifneq ($(CONFIG_COMPILE_TEST),y)
>> $(warning Cannot use CONFIG_KASAN: \
>> -fsanitize=kernel-address is not supported by compiler)
>> endif
>> else
>> - ifeq ($(CFLAGS_KASAN),)
>> +
>> + ifdef CONFIG_KASAN_INLINE
>> + CFLAGS_KASAN_INLINE := $(call cc-option, -fsanitize=kernel-address \
>> + -fasan-shadow-offset=$(CONFIG_KASAN_SHADOW_OFFSET) \
>> + --param asan-stack=1 --param asan-globals=1 \
>> + --param asan-instrumentation-with-call-threshold=10000)
>> +
>> + ifeq ($(CFLAGS_KASAN_INLINE),)
>> ifneq ($(CONFIG_COMPILE_TEST),y)
>> $(warning CONFIG_KASAN: compiler does not support all options.\
>> Trying minimal configuration)
>> endif
>> - CFLAGS_KASAN := $(CFLAGS_KASAN_MINIMAL)
>> + else
>> + CFLAGS_KASAN := $(CFLAGS_KASAN_INLINE)
>> endif
>> + endif
>> +
>
> This removes stack and globals for CONFIG_KASAN_OUTLINE=y. Why?
> Those are completely separate features. So this patch shouldn't touch
> this Makefile at all.
> Depends on HAVE_ARCH_KASAN_INLINE in CONFIG_KASAN_INLINE should be enough.
Correct. I have changes that will make kasan_global and kasan_stack as
config items. I didn't add it as part of this series because I still
haven't got outline global and stack work on ppc64. Right now the split
config only applies to ppc64. Hence didn't want to make the patch more
complicated.
>
> But you need to disable 'asan-stack' and 'asan-globals' for pcc64.
> I'd suggest to introduce CFLAGS_ARCH_KASAN.
> Define it in ppc64 Makefile:
>
> CFLAGS_ARCH_KASAN := --param asan-globals=0 --param asan-stack=0
>
> and add these flags to CFLAGS_KASAN_MINIMAL and CFLAGS_KASAN in Makefile.kasan.
>
>
>> endif
>> endif
>>
-aneesh
next prev parent reply other threads:[~2015-08-30 12:50 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-26 8:26 [PATCH V2 00/10] KASan ppc64 support Aneesh Kumar K.V
2015-08-26 8:26 ` [PATCH V2 01/10] powerpc/mm: Add virt_to_pfn and use this instead of opencoding Aneesh Kumar K.V
2015-08-26 8:26 ` [PATCH V2 02/10] kasan: MODULE_VADDR is not available on all archs Aneesh Kumar K.V
2015-08-26 17:00 ` Andrey Ryabinin
2015-08-30 12:33 ` Aneesh Kumar K.V
2015-08-26 8:26 ` [PATCH V2 03/10] kasan: Rename kasan_enabled to kasan_report_enabled Aneesh Kumar K.V
2015-08-26 17:02 ` Andrey Ryabinin
2015-08-26 8:26 ` [PATCH V2 04/10] kasan: Don't use kasan shadow pointer in generic functions Aneesh Kumar K.V
2015-08-26 8:54 ` Aneesh Kumar K.V
2015-08-27 9:42 ` Andrey Ryabinin
2015-08-26 8:26 ` [PATCH V2 05/10] kasan: Enable arch to hook into kasan callbacks Aneesh Kumar K.V
2015-08-27 9:46 ` Andrey Ryabinin
2015-08-30 12:41 ` Aneesh Kumar K.V
2015-08-26 8:26 ` [PATCH V2 06/10] kasan: Allow arch to overrride kasan shadow offsets Aneesh Kumar K.V
2015-08-27 9:48 ` Andrey Ryabinin
2015-08-26 8:26 ` [PATCH V2 07/10] kasan: Make INLINE KASan support arch selectable Aneesh Kumar K.V
2015-08-27 11:55 ` Andrey Ryabinin
2015-08-30 12:50 ` Aneesh Kumar K.V [this message]
2015-08-26 8:26 ` [PATCH V2 08/10] kasan: Update feature support file Aneesh Kumar K.V
2015-08-26 8:26 ` [PATCH V2 09/10] kasan: Prevent deadlock in kasan reporting Aneesh Kumar K.V
2015-08-27 12:08 ` Andrey Ryabinin
2015-08-30 12:53 ` Aneesh Kumar K.V
2015-08-26 8:26 ` [PATCH V2 10/10] powerpc/mm: kasan: Add kasan support for ppc64 Aneesh Kumar K.V
2015-08-27 12:16 ` Andrey Ryabinin
2015-08-26 16:37 ` [PATCH V2 00/10] KASan ppc64 support Andrey Ryabinin
2015-08-26 17:14 ` Aneesh Kumar K.V
2018-07-05 16:33 ` Christophe LEROY
2018-07-06 14:11 ` Aneesh Kumar K.V
2018-07-06 14:13 ` Christophe LEROY
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87613xq6sy.fsf@linux.vnet.ibm.com \
--to=aneesh.kumar@linux.vnet.ibm.com \
--cc=benh@kernel.crashing.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=paulus@samba.org \
--cc=ryabinin.a.a@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.