From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.3 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_2 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 76F95CA9EC5 for ; Wed, 30 Oct 2019 14:34:10 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 190BC20656 for ; Wed, 30 Oct 2019 14:34:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lca.pw header.i=@lca.pw header.b="mxfwVtIe" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 190BC20656 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=lca.pw Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id B2C6C6B0008; Wed, 30 Oct 2019 10:34:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id ADCE46B000C; Wed, 30 Oct 2019 10:34:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 97DB26B000E; Wed, 30 Oct 2019 10:34:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0008.hostedemail.com [216.40.44.8]) by kanga.kvack.org (Postfix) with ESMTP id 6F0F56B0008 for ; Wed, 30 Oct 2019 10:34:09 -0400 (EDT) Received: from smtpin16.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with SMTP id 0BA648249980 for ; Wed, 30 Oct 2019 14:34:09 +0000 (UTC) X-FDA: 76100695818.16.tray06_7091221ee71d X-HE-Tag: tray06_7091221ee71d X-Filterd-Recvd-Size: 14898 Received: from mail-qt1-f196.google.com (mail-qt1-f196.google.com [209.85.160.196]) by imf45.hostedemail.com (Postfix) with ESMTP for ; Wed, 30 Oct 2019 14:34:08 +0000 (UTC) Received: by mail-qt1-f196.google.com with SMTP id y39so3546944qty.0 for ; Wed, 30 Oct 2019 07:34:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lca.pw; s=google; h=message-id:subject:from:to:cc:date:in-reply-to:references :mime-version:content-transfer-encoding; bh=MGpeVCuK3KZ3lSFwxBi2IONH4qCn/KhyZgnRwXrGY1M=; b=mxfwVtIefkMOYZU0dXNbLJGOMpH1lDgniuqRKDJRi/EEivB8poYZIuxP1k8kszLPba uxZgtTxmQQZALgakjO9/LkJIU7PRDjrf/MrFJD18oyisRiG9rd+T8ijFl73FrMW9Gi8+ Rh8Ok+Cx0kDGKIP/u1s07Ri1p253XvM6NOo64UWAnYE0DHydpV2DdRXoqoUGFpufrQSx ygIVZF6EHyFig63Gm01CLwqiDUyB0AZJzR8OJ7xk3Oub4e5Sh/1FJqYp7FSsrK9VpUWo UI7PhuRF0OCBCeDX11QUC4ezKo2pTXcOp3kVYMN19d8k9cD2LQjhsZtyo0DJreTZKf67 lVjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:mime-version:content-transfer-encoding; bh=MGpeVCuK3KZ3lSFwxBi2IONH4qCn/KhyZgnRwXrGY1M=; b=NFDkU6Eurr8NlBd9r3/XhMoP7S3J4GIOj/mZezonzvB1MrLZjuaRwUtj2ISOL4zFK0 6hOks4gF1SAyK5AeUe385P8T7SPYb/n6+5Obmf4sGI4fgFsPIyIB9NvwhYuRNgfX8WWz nN2Wdx8XIj0SyalJI2XlSvJdxtJgM17yyYhkiBvQoR0k8TMFq7rPrZCfbwCzt0or/Buc BfuwKtTCTNpgc7x9KuDREnjATJe01u01EzwuYqKmPvr+Rxha5oD7L60mo5NOHK+0SRmb mKGF04XhIPs/zPNIIbo5kkYHsMN+l6Rwa5q7UEPDViU8TGqo216tzw9Aww5Wn+Jeugrh kL6w== X-Gm-Message-State: APjAAAWNbPj2TvUs1YZfCcGZlBgKcqD/jdhi88BGdKczJU7mi5bn1jHl E1/OKUDPRnnoRP4D37KdNuuhoQ== X-Google-Smtp-Source: APXvYqwXTJS65YzlKvLc/9A5emO5n0Me9Hf2TZwrmu6zQMKm85nzePZhXIFAMnYKVN84JaFPkUhz8w== X-Received: by 2002:ac8:4890:: with SMTP id i16mr290989qtq.141.1572446047387; Wed, 30 Oct 2019 07:34:07 -0700 (PDT) Received: from dhcp-41-57.bos.redhat.com (nat-pool-bos-t.redhat.com. [66.187.233.206]) by smtp.gmail.com with ESMTPSA id z72sm91150qka.115.2019.10.30.07.34.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 30 Oct 2019 07:34:06 -0700 (PDT) Message-ID: <1572446043.5937.100.camel@lca.pw> Subject: Re: [PATCH RFC v2 14/25] kmsan: Kconfig changes to disable options incompatible with KMSAN From: Qian Cai To: glider@google.com, Herbert Xu , Harry Wentland , Vegard Nossum , Dmitry Vyukov , linux-mm@kvack.org Cc: viro@zeniv.linux.org.uk, akpm@linux-foundation.org, aryabinin@virtuozzo.com, luto@kernel.org, ard.biesheuvel@linaro.org, arnd@arndb.de, hch@lst.de, dmitry.torokhov@gmail.com, edumazet@google.com, ericvh@gmail.com, gregkh@linuxfoundation.org, mingo@elte.hu, axboe@kernel.dk, martin.petersen@oracle.com, schwidefsky@de.ibm.com, mst@redhat.com, monstr@monstr.eu, pmladek@suse.com, sergey.senozhatsky@gmail.com, rostedt@goodmis.org, tiwai@suse.com, tytso@mit.edu, tglx@linutronix.de, wsa@the-dreams.de, gor@linux.ibm.com, iii@linux.ibm.com, mark.rutland@arm.com, willy@infradead.org, rdunlap@infradead.org, andreyknvl@google.com, elver@google.com Date: Wed, 30 Oct 2019 10:34:03 -0400 In-Reply-To: <20191030142237.249532-15-glider@google.com> References: <20191030142237.249532-1-glider@google.com> <20191030142237.249532-15-glider@google.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.22.6 (3.22.6-10.el7) Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Wed, 2019-10-30 at 15:22 +0100, glider@google.com wrote: > Certain config options are currently incompatible with KMSAN, disable > them. It would be useful to describe the reasons why each option is incompatible with KMSAN at the moment to make life easier for someone who might want to fix some of them in the future. > > Signed-off-by: Alexander Potapenko > Acked-by: Harry Wentland > To: Alexander Potapenko > Cc: Herbert Xu > Cc: Harry Wentland > Cc: Vegard Nossum > Cc: Dmitry Vyukov > Cc: linux-mm@kvack.org > > --- > > 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