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=-14.4 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL 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 9511BC2BD09 for ; Thu, 5 Dec 2019 14:51:17 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 3F4B22245C for ; Thu, 5 Dec 2019 14:51:17 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="RJDM1R8Q" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3F4B22245C Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id CE6466B10B6; Thu, 5 Dec 2019 09:51:16 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C6F606B10B7; Thu, 5 Dec 2019 09:51:16 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AE97D6B10B8; Thu, 5 Dec 2019 09:51:16 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0157.hostedemail.com [216.40.44.157]) by kanga.kvack.org (Postfix) with ESMTP id 8D1836B10B6 for ; Thu, 5 Dec 2019 09:51:16 -0500 (EST) Received: from smtpin15.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with SMTP id 332CD180AD811 for ; Thu, 5 Dec 2019 14:51:16 +0000 (UTC) X-FDA: 76231375752.15.aunt60_45301d95fb24d X-HE-Tag: aunt60_45301d95fb24d X-Filterd-Recvd-Size: 16461 Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by imf42.hostedemail.com (Postfix) with ESMTP for ; Thu, 5 Dec 2019 14:51:15 +0000 (UTC) Received: by mail-wm1-f67.google.com with SMTP id p9so4183565wmg.0 for ; Thu, 05 Dec 2019 06:51:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=n4/9SpaWJ4DtDxXXRc3DLnBNDOkg6AtaLKEoBpCjkU0=; b=RJDM1R8QkeZ0LrgYdTlI/SBYDfzRUa7WgJtMayJk1/vYxecLDb+uMaCEY2P75YjmVk 54H+b9mH3Ck7enc3qHbdDv1g4QVHYtnnwGJB6Oj61zwA5kBdSTn869UtsED/kRKxgBma TJH1o8d/AD9+/vsAGLln3I2NQLvABmsgEX3eWVk4KG+lHEwTHp3nKbYOuAwubv1dzRZ6 adzvL6NXiBKqvVG7EeIOGCQHknHovzV0VO2nhFgoNRdAYRc+/r2/CYDrBNadcHFETOc8 oXAQlpg3AAblXJtKNqnDewJQ+4unxt5wJXOPznV1asF1gYu9jZtMUCxYIXSpvqkVTukN qm1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=n4/9SpaWJ4DtDxXXRc3DLnBNDOkg6AtaLKEoBpCjkU0=; b=pzu9uzu/ut4wwTv8+wWfwjnBLLqe1TNV/uMGqrfR2vptPjQhW80Iew1gW+l7x5jRZs r4FR0CsbdaIMzDuLVYikiHlkp8fkdZFQjvGFqnFHd548GSbdsjlnvrnpSDLXssA6OCP0 BsGg42YfPM5GRvNqgz6gTL1fhoBiH3Aug/vPozJCZvVKnScu9T3oY6CoIAtKpQZzlO2R jCSkh9b+jgLvuaJBfaEC1e+OggaWi3HKp3aNpZM/EYK+rsPB2yXN6NBxSdtPAKwcHSTQ rYo99O4jso/KxW3ZtikqxZEZM6LMmA5voFysyDILO/RNYU0dW/7709zkEWPjlZ0EWagb PRAA== X-Gm-Message-State: APjAAAWU952x/mhNwGcDcq+5xtipm+2gBFZwgR4PgXGMePtCjvOLgqed 8jWMqbmKGf1T5GD5/jBnCv9VDeYLK0+X+K1C86ry2A== X-Google-Smtp-Source: APXvYqwKYpQWM9q3PoMZ7Sx9uIAsMGyVZC7sxJIb0w9+TgU32zCYO014Fxgiz5U+KjEbUnNNXnQSoTtBF7L4F20uzD0= X-Received: by 2002:a7b:c632:: with SMTP id p18mr5421689wmk.175.1575557473759; Thu, 05 Dec 2019 06:51:13 -0800 (PST) MIME-Version: 1.0 References: <20191122112621.204798-1-glider@google.com> <20191122112621.204798-17-glider@google.com> In-Reply-To: From: Alexander Potapenko Date: Thu, 5 Dec 2019 15:51:02 +0100 Message-ID: Subject: Re: [PATCH RFC v3 16/36] crypto: kmsan: disable accelerated configs under KMSAN To: Marco Elver Cc: Herbert Xu , "David S. Miller" , Vegard Nossum , Dmitry Vyukov , Linux Memory Management List , Al Viro , Andreas Dilger , Andrew Morton , Andrey Konovalov , Andrey Ryabinin , Andy Lutomirski , Ard Biesheuvel , Arnd Bergmann , Christoph Hellwig , Christoph Hellwig , "Darrick J. Wong" , Dmitry Torokhov , Eric Biggers , Eric Dumazet , Eric Van Hensbergen , Greg Kroah-Hartman , Harry Wentland , Ilya Leoshkevich , Ingo Molnar , Jason Wang , Jens Axboe , Marek Szyprowski , Mark Rutland , "Martin K. Petersen" , Martin Schwidefsky , Matthew Wilcox , "Michael S. Tsirkin" , Michal Simek , Petr Mladek , Qian Cai , Randy Dunlap , Robin Murphy , Sergey Senozhatsky , Steven Rostedt , Takashi Iwai , "Theodore Ts'o" , Thomas Gleixner , Vasily Gorbik , Wolfram Sang Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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 Mon, Dec 2, 2019 at 2:25 PM Marco Elver wrote: > > On Fri, 22 Nov 2019 at 12:27, wrote: > > > > KMSAN is unable to understand when initialized values come from assembl= y. > > Disable accelerated configs in KMSAN builds to prevent false positive > > reports. > > > > Signed-off-by: Alexander Potapenko > > To: Alexander Potapenko > > Cc: Herbert Xu > > Cc: "David S. Miller" > > Cc: Vegard Nossum > > Cc: Dmitry Vyukov > > Cc: linux-mm@kvack.org > > --- > > > > Change-Id: Iddc71a2a27360e036d719c0940ebf15553cf8de8 > > --- > > crypto/Kconfig | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ > > 1 file changed, 52 insertions(+) > > > > diff --git a/crypto/Kconfig b/crypto/Kconfig > > index 9e524044d312..502a75f1b597 100644 > > --- a/crypto/Kconfig > > +++ b/crypto/Kconfig > > @@ -309,11 +309,15 @@ config CRYPTO_AEGIS128 > > config CRYPTO_AEGIS128_SIMD > > bool "Support SIMD acceleration for AEGIS-128" > > depends on CRYPTO_AEGIS128 && ((ARM || ARM64) && KERNEL_MODE_NE= ON) > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > Probably fine to put this on one line: > > depends on !KMSAN # avoid false positives from assembly Done in v4. > likewise for all below. > > > default y > > > > config CRYPTO_AEGIS128_AESNI_SSE2 > > tristate "AEGIS-128 AEAD algorithm (x86_64 AESNI+SSE2 implement= ation)" > > depends on X86 && 64BIT > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_AEAD > > select CRYPTO_SIMD > > help > > @@ -571,6 +575,8 @@ config CRYPTO_CRC32C > > config CRYPTO_CRC32C_INTEL > > tristate "CRC32c INTEL hardware acceleration" > > depends on X86 > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_HASH > > help > > In Intel processor with SSE4.2 supported, the processor will > > @@ -611,6 +617,8 @@ config CRYPTO_CRC32 > > config CRYPTO_CRC32_PCLMUL > > tristate "CRC32 PCLMULQDQ hardware acceleration" > > depends on X86 > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_HASH > > select CRC32 > > help > > @@ -649,6 +657,8 @@ config CRYPTO_CRCT10DIF > > config CRYPTO_CRCT10DIF_PCLMUL > > tristate "CRCT10DIF PCLMULQDQ hardware acceleration" > > depends on X86 && 64BIT && CRC_T10DIF > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_HASH > > help > > For x86_64 processors with SSE4.2 and PCLMULQDQ supported, > > @@ -695,6 +705,8 @@ config CRYPTO_POLY1305 > > config CRYPTO_POLY1305_X86_64 > > tristate "Poly1305 authenticator algorithm (x86_64/SSE2/AVX2)" > > depends on X86 && 64BIT > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_POLY1305 > > help > > Poly1305 authenticator algorithm, RFC7539. > > @@ -814,6 +826,8 @@ config CRYPTO_SHA1 > > config CRYPTO_SHA1_SSSE3 > > tristate "SHA1 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)" > > depends on X86 && 64BIT > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_SHA1 > > select CRYPTO_HASH > > help > > @@ -825,6 +839,8 @@ config CRYPTO_SHA1_SSSE3 > > config CRYPTO_SHA256_SSSE3 > > tristate "SHA256 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)" > > depends on X86 && 64BIT > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_SHA256 > > select CRYPTO_HASH > > help > > @@ -837,6 +853,8 @@ config CRYPTO_SHA256_SSSE3 > > config CRYPTO_SHA512_SSSE3 > > tristate "SHA512 digest algorithm (SSSE3/AVX/AVX2)" > > depends on X86 && 64BIT > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_SHA512 > > select CRYPTO_HASH > > help > > @@ -1011,6 +1029,8 @@ config CRYPTO_WP512 > > config CRYPTO_GHASH_CLMUL_NI_INTEL > > tristate "GHASH hash function (CLMUL-NI accelerated)" > > depends on X86 && 64BIT > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_CRYPTD > > help > > This is the x86_64 CLMUL-NI accelerated implementation of > > @@ -1064,6 +1084,8 @@ config CRYPTO_AES_TI > > config CRYPTO_AES_NI_INTEL > > tristate "AES cipher algorithms (AES-NI)" > > depends on X86 > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_AEAD > > select CRYPTO_LIB_AES > > select CRYPTO_ALGAPI > > @@ -1190,6 +1212,8 @@ config CRYPTO_BLOWFISH_COMMON > > config CRYPTO_BLOWFISH_X86_64 > > tristate "Blowfish cipher algorithm (x86_64)" > > depends on X86 && 64BIT > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_BLKCIPHER > > select CRYPTO_BLOWFISH_COMMON > > help > > @@ -1221,6 +1245,8 @@ config CRYPTO_CAMELLIA_X86_64 > > tristate "Camellia cipher algorithm (x86_64)" > > depends on X86 && 64BIT > > depends on CRYPTO > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_BLKCIPHER > > select CRYPTO_GLUE_HELPER_X86 > > help > > @@ -1238,6 +1264,8 @@ config CRYPTO_CAMELLIA_AESNI_AVX_X86_64 > > tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)" > > depends on X86 && 64BIT > > depends on CRYPTO > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_BLKCIPHER > > select CRYPTO_CAMELLIA_X86_64 > > select CRYPTO_GLUE_HELPER_X86 > > @@ -1258,6 +1286,8 @@ config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 > > tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)" > > depends on X86 && 64BIT > > depends on CRYPTO > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_CAMELLIA_AESNI_AVX_X86_64 > > help > > Camellia cipher algorithm module (x86_64/AES-NI/AVX2). > > @@ -1303,6 +1333,8 @@ config CRYPTO_CAST5 > > config CRYPTO_CAST5_AVX_X86_64 > > tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)" > > depends on X86 && 64BIT > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_BLKCIPHER > > select CRYPTO_CAST5 > > select CRYPTO_CAST_COMMON > > @@ -1325,6 +1357,8 @@ config CRYPTO_CAST6 > > config CRYPTO_CAST6_AVX_X86_64 > > tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)" > > depends on X86 && 64BIT > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_BLKCIPHER > > select CRYPTO_CAST6 > > select CRYPTO_CAST_COMMON > > @@ -1360,6 +1394,8 @@ config CRYPTO_DES_SPARC64 > > config CRYPTO_DES3_EDE_X86_64 > > tristate "Triple DES EDE cipher algorithm (x86-64)" > > depends on X86 && 64BIT > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_BLKCIPHER > > select CRYPTO_LIB_DES > > help > > @@ -1426,6 +1462,8 @@ config CRYPTO_CHACHA20 > > config CRYPTO_CHACHA20_X86_64 > > tristate "ChaCha stream cipher algorithms (x86_64/SSSE3/AVX2/AV= X-512VL)" > > depends on X86 && 64BIT > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_BLKCIPHER > > select CRYPTO_CHACHA20 > > help > > @@ -1462,6 +1500,8 @@ config CRYPTO_SERPENT > > config CRYPTO_SERPENT_SSE2_X86_64 > > tristate "Serpent cipher algorithm (x86_64/SSE2)" > > depends on X86 && 64BIT > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_BLKCIPHER > > select CRYPTO_GLUE_HELPER_X86 > > select CRYPTO_SERPENT > > @@ -1481,6 +1521,8 @@ config CRYPTO_SERPENT_SSE2_X86_64 > > config CRYPTO_SERPENT_SSE2_586 > > tristate "Serpent cipher algorithm (i586/SSE2)" > > depends on X86 && !64BIT > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_BLKCIPHER > > select CRYPTO_GLUE_HELPER_X86 > > select CRYPTO_SERPENT > > @@ -1500,6 +1542,8 @@ config CRYPTO_SERPENT_SSE2_586 > > config CRYPTO_SERPENT_AVX_X86_64 > > tristate "Serpent cipher algorithm (x86_64/AVX)" > > depends on X86 && 64BIT > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_BLKCIPHER > > select CRYPTO_GLUE_HELPER_X86 > > select CRYPTO_SERPENT > > @@ -1520,6 +1564,8 @@ config CRYPTO_SERPENT_AVX_X86_64 > > config CRYPTO_SERPENT_AVX2_X86_64 > > tristate "Serpent cipher algorithm (x86_64/AVX2)" > > depends on X86 && 64BIT > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_SERPENT_AVX_X86_64 > > help > > Serpent cipher algorithm, by Anderson, Biham & Knudsen. > > @@ -1615,6 +1661,8 @@ config CRYPTO_TWOFISH_586 > > config CRYPTO_TWOFISH_X86_64 > > tristate "Twofish cipher algorithm (x86_64)" > > depends on (X86 || UML_X86) && 64BIT > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_ALGAPI > > select CRYPTO_TWOFISH_COMMON > > help > > @@ -1631,6 +1679,8 @@ config CRYPTO_TWOFISH_X86_64 > > config CRYPTO_TWOFISH_X86_64_3WAY > > tristate "Twofish cipher algorithm (x86_64, 3-way parallel)" > > depends on X86 && 64BIT > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_BLKCIPHER > > select CRYPTO_TWOFISH_COMMON > > select CRYPTO_TWOFISH_X86_64 > > @@ -1652,6 +1702,8 @@ config CRYPTO_TWOFISH_X86_64_3WAY > > config CRYPTO_TWOFISH_AVX_X86_64 > > tristate "Twofish cipher algorithm (x86_64/AVX)" > > depends on X86 && 64BIT > > + # Disable under KMSAN to prevent false positives from assembly. > > + depends on !KMSAN > > select CRYPTO_BLKCIPHER > > select CRYPTO_GLUE_HELPER_X86 > > select CRYPTO_SIMD > > -- > > 2.24.0.432.g9d3f5f5b63-goog > > --=20 Alexander Potapenko Software Engineer Google Germany GmbH Erika-Mann-Stra=C3=9Fe, 33 80636 M=C3=BCnchen Gesch=C3=A4ftsf=C3=BChrer: Paul Manicle, Halimah DeLaine Prado Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg