All of lore.kernel.org
 help / color / mirror / Atom feed
From: Harry Wentland <hwentlan@amd.com>
To: "glider@google.com" <glider@google.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>,
	"Wentland, Harry" <Harry.Wentland@amd.com>,
	Vegard Nossum <vegard.nossum@oracle.com>,
	Dmitry Vyukov <dvyukov@google.com>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>
Subject: Re: [PATCH RFC v1 15/26] kmsan: Kconfig changes to disable options incompatible with KMSAN
Date: Mon, 21 Oct 2019 14:11:03 +0000	[thread overview]
Message-ID: <0a1bfd57-d678-87d9-4536-1fd500f978c5@amd.com> (raw)
In-Reply-To: <20191018094304.37056-16-glider@google.com>

On 2019-10-18 5:42 a.m., glider@google.com wrote:
> Certain config options are currently incompatible with KMSAN, disable
> them.
> 
> Signed-off-by: Alexander Potapenko <glider@google.com>
> To: Alexander Potapenko <glider@google.com>
> Cc: Herbert Xu <herbert@gondor.apana.org.au>
> Cc: Harry Wentland <harry.wentland@amd.com>
> Cc: Vegard Nossum <vegard.nossum@oracle.com>
> Cc: Dmitry Vyukov <dvyukov@google.com>
> Cc: linux-mm@kvack.org

Acked-by: Harry Wentland <harry.wentland@amd.com>

Harry

> 
> ---
> 
> Change-Id: I4521f5c764cfaeba2fae79c954925c302c5e3bc0
> ---
>  arch/Kconfig                        |  2 +-
>  arch/x86/Kconfig                    |  1 +
>  arch/x86/Kconfig.debug              |  3 +++
>  crypto/Kconfig                      | 26 ++++++++++++++++++++++++++
>  drivers/gpu/drm/amd/display/Kconfig |  2 +-
>  lib/Kconfig.debug                   |  3 +++
>  6 files changed, 35 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/Kconfig b/arch/Kconfig
> index 5f8a5d84dbbe..d5ca838ae8ad 100644
> --- a/arch/Kconfig
> +++ b/arch/Kconfig
> @@ -843,7 +843,7 @@ config HAVE_ARCH_VMAP_STACK
>  config VMAP_STACK
>  	default y
>  	bool "Use a virtually-mapped stack"
> -	depends on HAVE_ARCH_VMAP_STACK && !KASAN
> +	depends on HAVE_ARCH_VMAP_STACK && !KASAN && !KMSAN
>  	---help---
>  	  Enable this if you want the use virtually-mapped kernel stacks
>  	  with guard pages.  This causes kernel stack overflows to be
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index 3f83a5c53808..6d2b0fb3a871 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -2143,6 +2143,7 @@ config RELOCATABLE
>  config RANDOMIZE_BASE
>  	bool "Randomize the address of the kernel image (KASLR)"
>  	depends on RELOCATABLE
> +	depends on !KMSAN
>  	default y
>  	---help---
>  	  In support of Kernel Address Space Layout Randomization (KASLR),
> diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
> index bf9cd83de777..db3cd6147829 100644
> --- a/arch/x86/Kconfig.debug
> +++ b/arch/x86/Kconfig.debug
> @@ -292,6 +292,9 @@ choice
>  config UNWINDER_ORC
>  	bool "ORC unwinder"
>  	depends on X86_64
> +	# KMSAN doesn't support UNWINDER_ORC yet,
> +	# see https://github.com/google/kmsan/issues/48.
> +	depends on !KMSAN
>  	select STACK_VALIDATION
>  	---help---
>  	  This option enables the ORC (Oops Rewind Capability) unwinder for
> diff --git a/crypto/Kconfig b/crypto/Kconfig
> index 9e524044d312..37a22711012c 100644
> --- a/crypto/Kconfig
> +++ b/crypto/Kconfig
> @@ -309,11 +309,13 @@ config CRYPTO_AEGIS128
>  config CRYPTO_AEGIS128_SIMD
>  	bool "Support SIMD acceleration for AEGIS-128"
>  	depends on CRYPTO_AEGIS128 && ((ARM || ARM64) && KERNEL_MODE_NEON)
> +	depends on !KMSAN
>  	default y
>  
>  config CRYPTO_AEGIS128_AESNI_SSE2
>  	tristate "AEGIS-128 AEAD algorithm (x86_64 AESNI+SSE2 implementation)"
>  	depends on X86 && 64BIT
> +	depends on !KMSAN
>  	select CRYPTO_AEAD
>  	select CRYPTO_SIMD
>  	help
> @@ -571,6 +573,7 @@ config CRYPTO_CRC32C
>  config CRYPTO_CRC32C_INTEL
>  	tristate "CRC32c INTEL hardware acceleration"
>  	depends on X86
> +	depends on !KMSAN
>  	select CRYPTO_HASH
>  	help
>  	  In Intel processor with SSE4.2 supported, the processor will
> @@ -611,6 +614,7 @@ config CRYPTO_CRC32
>  config CRYPTO_CRC32_PCLMUL
>  	tristate "CRC32 PCLMULQDQ hardware acceleration"
>  	depends on X86
> +	depends on !KMSAN
>  	select CRYPTO_HASH
>  	select CRC32
>  	help
> @@ -649,6 +653,7 @@ config CRYPTO_CRCT10DIF
>  config CRYPTO_CRCT10DIF_PCLMUL
>  	tristate "CRCT10DIF PCLMULQDQ hardware acceleration"
>  	depends on X86 && 64BIT && CRC_T10DIF
> +	depends on !KMSAN
>  	select CRYPTO_HASH
>  	help
>  	  For x86_64 processors with SSE4.2 and PCLMULQDQ supported,
> @@ -695,6 +700,7 @@ config CRYPTO_POLY1305
>  config CRYPTO_POLY1305_X86_64
>  	tristate "Poly1305 authenticator algorithm (x86_64/SSE2/AVX2)"
>  	depends on X86 && 64BIT
> +	depends on !KMSAN
>  	select CRYPTO_POLY1305
>  	help
>  	  Poly1305 authenticator algorithm, RFC7539.
> @@ -814,6 +820,7 @@ config CRYPTO_SHA1
>  config CRYPTO_SHA1_SSSE3
>  	tristate "SHA1 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
>  	depends on X86 && 64BIT
> +	depends on !KMSAN
>  	select CRYPTO_SHA1
>  	select CRYPTO_HASH
>  	help
> @@ -825,6 +832,7 @@ config CRYPTO_SHA1_SSSE3
>  config CRYPTO_SHA256_SSSE3
>  	tristate "SHA256 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
>  	depends on X86 && 64BIT
> +	depends on !KMSAN
>  	select CRYPTO_SHA256
>  	select CRYPTO_HASH
>  	help
> @@ -837,6 +845,7 @@ config CRYPTO_SHA256_SSSE3
>  config CRYPTO_SHA512_SSSE3
>  	tristate "SHA512 digest algorithm (SSSE3/AVX/AVX2)"
>  	depends on X86 && 64BIT
> +	depends on !KMSAN
>  	select CRYPTO_SHA512
>  	select CRYPTO_HASH
>  	help
> @@ -1011,6 +1020,7 @@ config CRYPTO_WP512
>  config CRYPTO_GHASH_CLMUL_NI_INTEL
>  	tristate "GHASH hash function (CLMUL-NI accelerated)"
>  	depends on X86 && 64BIT
> +	depends on !KMSAN
>  	select CRYPTO_CRYPTD
>  	help
>  	  This is the x86_64 CLMUL-NI accelerated implementation of
> @@ -1064,6 +1074,7 @@ config CRYPTO_AES_TI
>  config CRYPTO_AES_NI_INTEL
>  	tristate "AES cipher algorithms (AES-NI)"
>  	depends on X86
> +	depends on !KMSAN
>  	select CRYPTO_AEAD
>  	select CRYPTO_LIB_AES
>  	select CRYPTO_ALGAPI
> @@ -1190,6 +1201,7 @@ config CRYPTO_BLOWFISH_COMMON
>  config CRYPTO_BLOWFISH_X86_64
>  	tristate "Blowfish cipher algorithm (x86_64)"
>  	depends on X86 && 64BIT
> +	depends on !KMSAN
>  	select CRYPTO_BLKCIPHER
>  	select CRYPTO_BLOWFISH_COMMON
>  	help
> @@ -1221,6 +1233,7 @@ config CRYPTO_CAMELLIA_X86_64
>  	tristate "Camellia cipher algorithm (x86_64)"
>  	depends on X86 && 64BIT
>  	depends on CRYPTO
> +	depends on !KMSAN
>  	select CRYPTO_BLKCIPHER
>  	select CRYPTO_GLUE_HELPER_X86
>  	help
> @@ -1238,6 +1251,7 @@ config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
>  	tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)"
>  	depends on X86 && 64BIT
>  	depends on CRYPTO
> +	depends on !KMSAN
>  	select CRYPTO_BLKCIPHER
>  	select CRYPTO_CAMELLIA_X86_64
>  	select CRYPTO_GLUE_HELPER_X86
> @@ -1258,6 +1272,7 @@ config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
>  	tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)"
>  	depends on X86 && 64BIT
>  	depends on CRYPTO
> +	depends on !KMSAN
>  	select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
>  	help
>  	  Camellia cipher algorithm module (x86_64/AES-NI/AVX2).
> @@ -1303,6 +1318,7 @@ config CRYPTO_CAST5
>  config CRYPTO_CAST5_AVX_X86_64
>  	tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)"
>  	depends on X86 && 64BIT
> +	depends on !KMSAN
>  	select CRYPTO_BLKCIPHER
>  	select CRYPTO_CAST5
>  	select CRYPTO_CAST_COMMON
> @@ -1325,6 +1341,7 @@ config CRYPTO_CAST6
>  config CRYPTO_CAST6_AVX_X86_64
>  	tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)"
>  	depends on X86 && 64BIT
> +	depends on !KMSAN
>  	select CRYPTO_BLKCIPHER
>  	select CRYPTO_CAST6
>  	select CRYPTO_CAST_COMMON
> @@ -1360,6 +1377,7 @@ config CRYPTO_DES_SPARC64
>  config CRYPTO_DES3_EDE_X86_64
>  	tristate "Triple DES EDE cipher algorithm (x86-64)"
>  	depends on X86 && 64BIT
> +	depends on !KMSAN
>  	select CRYPTO_BLKCIPHER
>  	select CRYPTO_LIB_DES
>  	help
> @@ -1426,6 +1444,7 @@ config CRYPTO_CHACHA20
>  config CRYPTO_CHACHA20_X86_64
>  	tristate "ChaCha stream cipher algorithms (x86_64/SSSE3/AVX2/AVX-512VL)"
>  	depends on X86 && 64BIT
> +	depends on !KMSAN
>  	select CRYPTO_BLKCIPHER
>  	select CRYPTO_CHACHA20
>  	help
> @@ -1462,6 +1481,7 @@ config CRYPTO_SERPENT
>  config CRYPTO_SERPENT_SSE2_X86_64
>  	tristate "Serpent cipher algorithm (x86_64/SSE2)"
>  	depends on X86 && 64BIT
> +	depends on !KMSAN
>  	select CRYPTO_BLKCIPHER
>  	select CRYPTO_GLUE_HELPER_X86
>  	select CRYPTO_SERPENT
> @@ -1481,6 +1501,7 @@ config CRYPTO_SERPENT_SSE2_X86_64
>  config CRYPTO_SERPENT_SSE2_586
>  	tristate "Serpent cipher algorithm (i586/SSE2)"
>  	depends on X86 && !64BIT
> +	depends on !KMSAN
>  	select CRYPTO_BLKCIPHER
>  	select CRYPTO_GLUE_HELPER_X86
>  	select CRYPTO_SERPENT
> @@ -1500,6 +1521,7 @@ config CRYPTO_SERPENT_SSE2_586
>  config CRYPTO_SERPENT_AVX_X86_64
>  	tristate "Serpent cipher algorithm (x86_64/AVX)"
>  	depends on X86 && 64BIT
> +	depends on !KMSAN
>  	select CRYPTO_BLKCIPHER
>  	select CRYPTO_GLUE_HELPER_X86
>  	select CRYPTO_SERPENT
> @@ -1520,6 +1542,7 @@ config CRYPTO_SERPENT_AVX_X86_64
>  config CRYPTO_SERPENT_AVX2_X86_64
>  	tristate "Serpent cipher algorithm (x86_64/AVX2)"
>  	depends on X86 && 64BIT
> +	depends on !KMSAN
>  	select CRYPTO_SERPENT_AVX_X86_64
>  	help
>  	  Serpent cipher algorithm, by Anderson, Biham & Knudsen.
> @@ -1615,6 +1638,7 @@ config CRYPTO_TWOFISH_586
>  config CRYPTO_TWOFISH_X86_64
>  	tristate "Twofish cipher algorithm (x86_64)"
>  	depends on (X86 || UML_X86) && 64BIT
> +	depends on !KMSAN
>  	select CRYPTO_ALGAPI
>  	select CRYPTO_TWOFISH_COMMON
>  	help
> @@ -1631,6 +1655,7 @@ config CRYPTO_TWOFISH_X86_64
>  config CRYPTO_TWOFISH_X86_64_3WAY
>  	tristate "Twofish cipher algorithm (x86_64, 3-way parallel)"
>  	depends on X86 && 64BIT
> +	depends on !KMSAN
>  	select CRYPTO_BLKCIPHER
>  	select CRYPTO_TWOFISH_COMMON
>  	select CRYPTO_TWOFISH_X86_64
> @@ -1652,6 +1677,7 @@ config CRYPTO_TWOFISH_X86_64_3WAY
>  config CRYPTO_TWOFISH_AVX_X86_64
>  	tristate "Twofish cipher algorithm (x86_64/AVX)"
>  	depends on X86 && 64BIT
> +	depends on !KMSAN
>  	select CRYPTO_BLKCIPHER
>  	select CRYPTO_GLUE_HELPER_X86
>  	select CRYPTO_SIMD
> diff --git a/drivers/gpu/drm/amd/display/Kconfig b/drivers/gpu/drm/amd/display/Kconfig
> index 71991a28a775..99585eaf4dd0 100644
> --- a/drivers/gpu/drm/amd/display/Kconfig
> +++ b/drivers/gpu/drm/amd/display/Kconfig
> @@ -6,7 +6,7 @@ config DRM_AMD_DC
>  	bool "AMD DC - Enable new display engine"
>  	default y
>  	select SND_HDA_COMPONENT if SND_HDA_CORE
> -	select DRM_AMD_DC_DCN1_0 if X86 && !(KCOV_INSTRUMENT_ALL && KCOV_ENABLE_COMPARISONS)
> +	select DRM_AMD_DC_DCN1_0 if X86 && !(KCOV_INSTRUMENT_ALL && KCOV_ENABLE_COMPARISONS) && !KMSAN
>  	help
>  	  Choose this option if you want to use the new display engine
>  	  support for AMDGPU. This adds required support for Vega and
> diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
> index 75c36318943d..a3f6f5d68593 100644
> --- a/lib/Kconfig.debug
> +++ b/lib/Kconfig.debug
> @@ -1068,6 +1068,9 @@ menu "Lock Debugging (spinlocks, mutexes, etc...)"
>  config LOCK_DEBUGGING_SUPPORT
>  	bool
>  	depends on TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
> +	# KMSAN is incompatible with lockdep,
> +	# see https://github.com/google/kmsan/issues/57.
> +	depends on !KMSAN
>  	default y
>  
>  config PROVE_LOCKING
> 

  reply	other threads:[~2019-10-21 14:11 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-18  9:42 [PATCH RFC v1 00/26] Add KernelMemorySanitizer infrastructure glider
2019-10-18  9:42 ` [PATCH RFC v1 01/26] stackdepot: check depot_index before accessing the stack slab glider
2019-10-18  9:42 ` [PATCH RFC v1 02/26] stackdepot: prevent Clang from optimizing away stackdepot_memcmp() glider
2019-10-18  9:42 ` [PATCH RFC v1 03/26] kasan: stackdepot: move filter_irq_stacks() to stackdepot.c glider
2019-10-18  9:42 ` [PATCH RFC v1 04/26] stackdepot: reserve 5 extra bits in depot_stack_handle_t glider
2019-10-18  9:42 ` [PATCH RFC v1 05/26] printk_safe: externalize printk_context glider
2019-10-21  9:09   ` Petr Mladek
2019-10-23 17:57     ` Alexander Potapenko
2019-10-23 18:00       ` Alexander Potapenko
2019-10-24 12:46       ` Petr Mladek
2019-10-28 13:09         ` Alexander Potapenko
2019-10-29 12:02           ` Petr Mladek
2019-10-29 12:45             ` Alexander Potapenko
2019-10-18  9:42 ` [PATCH RFC v1 06/26] kasan: compiler.h: rename __no_kasan_or_inline into __no_memory_tool_or_inline glider
2019-10-18  9:42 ` [PATCH RFC v1 07/26] kmsan: add ReST documentation glider
2019-10-18  9:42 ` [PATCH RFC v1 08/26] kmsan: gfp: introduce __GFP_NO_KMSAN_SHADOW glider
2019-10-18  9:42 ` [PATCH RFC v1 09/26] kmsan: introduce __no_sanitize_memory and __SANITIZE_MEMORY__ glider
2019-10-18  9:42 ` [PATCH RFC v1 10/26] kmsan: reduce vmalloc space glider
2019-10-18  9:42 ` [PATCH RFC v1 11/26] kmsan: add KMSAN runtime glider
2019-10-18  9:42 ` [PATCH RFC v1 12/26] kmsan: x86: sync metadata pages on page fault glider
2019-10-18  9:42 ` [PATCH RFC v1 13/26] kmsan: add tests for KMSAN glider
2019-10-18  9:42 ` [PATCH RFC v1 14/26] kmsan: make READ_ONCE_TASK_STACK() return initialized values glider
2019-10-18  9:42 ` [PATCH RFC v1 15/26] kmsan: Kconfig changes to disable options incompatible with KMSAN glider
2019-10-21 14:11   ` Harry Wentland [this message]
2019-10-18  9:42 ` [PATCH RFC v1 16/26] kmsan: Changing existing files to enable KMSAN builds glider
2019-10-18  9:42 ` [PATCH RFC v1 17/26] kmsan: disable KMSAN instrumentation for certain kernel parts glider
2019-10-18  9:42 ` [PATCH RFC v1 18/26] kmsan: mm: call KMSAN hooks from SLUB code glider
2019-10-18 13:22   ` Qian Cai
2019-10-18 13:33     ` Alexander Potapenko
2019-10-18 13:41       ` Qian Cai
2019-10-18 13:55         ` Alexander Potapenko
2019-10-18 14:42           ` Qian Cai
2019-10-18 14:54             ` Alexander Potapenko
2019-10-18 15:13               ` Qian Cai
2019-10-18 15:30                 ` Alexander Potapenko
2019-10-18 16:08                   ` Qian Cai
2019-10-18  9:42 ` [PATCH RFC v1 19/26] kmsan: call KMSAN hooks where needed glider
2019-10-18 15:02   ` Qian Cai
2019-10-29 14:09     ` Alexander Potapenko
2019-10-29 14:56       ` Qian Cai
2019-10-21  9:25   ` Petr Mladek
2019-10-29 13:59     ` Alexander Potapenko
2019-10-18  9:42 ` [PATCH RFC v1 20/26] kmsan: disable instrumentation of certain functions glider
2019-10-18  9:42 ` [PATCH RFC v1 21/26] kmsan: unpoison |tlb| in arch_tlb_gather_mmu() glider
2019-10-18  9:43 ` [PATCH RFC v1 22/26] kmsan: use __msan_memcpy() where possible glider
2019-10-18  9:43 ` [PATCH RFC v1 23/26] kmsan: unpoisoning buffers from devices etc glider
2019-10-18 15:27   ` Christoph Hellwig
2019-10-18 16:22   ` Matthew Wilcox
2019-10-29 14:45     ` Alexander Potapenko
2019-10-30 12:43       ` Alexander Potapenko
2019-10-18  9:43 ` [PATCH RFC v1 24/26] kmsan: hooks for copy_to_user() and friends glider
2019-10-18  9:43 ` [PATCH RFC v1 25/26] kmsan: disable strscpy() optimization under KMSAN glider
2019-10-18  9:43 ` [PATCH RFC v1 26/26] net: kasan: kmsan: support CONFIG_GENERIC_CSUM on x86, enable it for KASAN/KMSAN glider
2019-10-19  3:20   ` Randy Dunlap

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=0a1bfd57-d678-87d9-4536-1fd500f978c5@amd.com \
    --to=hwentlan@amd.com \
    --cc=Harry.Wentland@amd.com \
    --cc=dvyukov@google.com \
    --cc=glider@google.com \
    --cc=herbert@gondor.apana.org.au \
    --cc=linux-mm@kvack.org \
    --cc=vegard.nossum@oracle.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.