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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id EA868C19F28 for ; Wed, 3 Aug 2022 17:46:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 31E306B0072; Wed, 3 Aug 2022 13:46:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2CCB76B0073; Wed, 3 Aug 2022 13:46:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 16E818E0001; Wed, 3 Aug 2022 13:46:32 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 089156B0072 for ; Wed, 3 Aug 2022 13:46:32 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id BF74841591 for ; Wed, 3 Aug 2022 17:46:31 +0000 (UTC) X-FDA: 79759010982.19.A15ED33 Received: from mail-yb1-f181.google.com (mail-yb1-f181.google.com [209.85.219.181]) by imf24.hostedemail.com (Postfix) with ESMTP id 28DF018012F for ; Wed, 3 Aug 2022 17:46:31 +0000 (UTC) Received: by mail-yb1-f181.google.com with SMTP id g5so5122399ybg.11 for ; Wed, 03 Aug 2022 10:46:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc; bh=kVM/3uyhal6qaeACSB8divgbMh2p6Q9rmvW6JHSngAY=; b=ECfvFXHNoWfUFidh9Eguf3fa6Bq7Cr+ZBwO3g+v5R26inMZJ+PprF07thBS/iAUDOv KoHKoNk3p1CD7oA+XYhLMGnLx1UM64+m/oZTxYGBm1ui3mSKNDJXkbXHNHZNWwYMPM25 no6Xk74r5H+HlvFMAu7VhmjjTkqjGEorYK/E1NNrmLycAfwGb5T8CDwMPzi10MsKfcDt CXm/wIg4qaq6nACUNqANSQ4Cc+ljRsHsBpUSMvB1FXN+xTv+VW9BrlbK48uMvV02e1hS ZJi1UEudP/SKw5sBgAoFnA38ohuro2kf26ubLWtfiJ2mUlp6waOtZ04l1TvBymZ8hC+a h9yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc; bh=kVM/3uyhal6qaeACSB8divgbMh2p6Q9rmvW6JHSngAY=; b=p8qxPNYijQUmA2QbTf43+kGleXzQucmQatfV2AlMAdct5P87Pp+Cp5nyx+8luocD2B i3Q7bruMwBDdeBoa9Pvbm/YHMkp96MjpftjotXeZVlIXvV+1rc1g86J6wTaTyeajyPuN 9rMlKyc/i4g3Q0MS2ziG7wfrQ4vpRxQP+oKGDMSLyFKJGUeEwVRQVcztfikuqL6M/k6g HeGuR2X6THtbQ+YDzSYcXfrZKN1gz7w+TwFDTKpWhDTVpCoBG06aIwiN3IkRiyg9/X9o kZpxj5NGpuBR5ArQx7ZzmJLIHMpPfYuC2ZQ7vJkwlfAkUTFouHo3/xcheDfwKXa9EhTZ u2YA== X-Gm-Message-State: ACgBeo1rHsyrPvEwv6dQebAek7S3KcyeX1uHObXQ/kNj5Fy9C4QLmlR5 2PnurLXNyUbEL6mq0Wrfd583UUAkX+Sf0SQQd0MASQ== X-Google-Smtp-Source: AA6agR4g1FyYUH5thYLF9ivxcDKGh7mHOG7nULxadr/VqkcQq6xewq/huMh2sMi+U779TLv1Uc8ZMhJh1Xgb5KuhJ1U= X-Received: by 2002:a25:b9d1:0:b0:671:49f9:4e01 with SMTP id y17-20020a25b9d1000000b0067149f94e01mr22124946ybj.398.1659548790205; Wed, 03 Aug 2022 10:46:30 -0700 (PDT) MIME-Version: 1.0 References: <20220701142310.2188015-1-glider@google.com> <20220701142310.2188015-12-glider@google.com> In-Reply-To: From: Alexander Potapenko Date: Wed, 3 Aug 2022 19:45:53 +0200 Message-ID: Subject: Re: [PATCH v4 11/45] kmsan: add KMSAN runtime core To: Marco Elver Cc: Alexander Viro , Alexei Starovoitov , Andrew Morton , Andrey Konovalov , Andy Lutomirski , Arnd Bergmann , Borislav Petkov , Christoph Hellwig , Christoph Lameter , David Rientjes , Dmitry Vyukov , Eric Dumazet , Greg Kroah-Hartman , Herbert Xu , Ilya Leoshkevich , Ingo Molnar , Jens Axboe , Joonsoo Kim , Kees Cook , Mark Rutland , Matthew Wilcox , "Michael S. Tsirkin" , Pekka Enberg , Peter Zijlstra , Petr Mladek , Steven Rostedt , Thomas Gleixner , Vasily Gorbik , Vegard Nossum , Vlastimil Babka , kasan-dev , Linux Memory Management List , Linux-Arch , LKML Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1659548791; a=rsa-sha256; cv=none; b=NPv4vEc9CQ+FzF2q0eGg1v1I+7m0TBF23PYKwCUFDEvgLEK8B4PFFUJmbzWccJ/J9Wcpx3 lr4LDVSwGzA5+TsKPa6sdWvYLBHY9g8rZO5CcwN3CHVsbihY1iARitzj3W42yNzpcHYKTm n2lBuFxPLKET57lh9QMcaKBLiSvAvf8= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=ECfvFXHN; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf24.hostedemail.com: domain of glider@google.com designates 209.85.219.181 as permitted sender) smtp.mailfrom=glider@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1659548791; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=kVM/3uyhal6qaeACSB8divgbMh2p6Q9rmvW6JHSngAY=; b=Fngf+0kiWUz9+fVAFgIbJRFrrCWyDJsPD8I7vjPIN0GSZ/vrEbfNohO04oxxosb2oq6+ws xLVMUuXgudOuJNVtHU6NPdZ1oJ3wgN5KGsO+zWN60r6VbOj2bXkbM9cSLa7lfyopAp+PoA 8ssJCndbNIrAkulFxW8fiEAODbiT43U= Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=ECfvFXHN; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf24.hostedemail.com: domain of glider@google.com designates 209.85.219.181 as permitted sender) smtp.mailfrom=glider@google.com X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 28DF018012F X-Rspam-User: X-Stat-Signature: fu7pba79rduihj5i16dfacjs5a3a4kud X-HE-Tag: 1659548791-228669 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, Jul 13, 2022 at 12:04 PM Marco Elver wrote: > > On Fri, Jul 01, 2022 at 04:22PM +0200, 'Alexander Potapenko' via kasan-de= v wrote: > [...] > > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > > index 2e24db4bff192..59819e6fa5865 100644 > > --- a/lib/Kconfig.debug > > +++ b/lib/Kconfig.debug > > @@ -963,6 +963,7 @@ config DEBUG_STACKOVERFLOW > > > > source "lib/Kconfig.kasan" > > source "lib/Kconfig.kfence" > > +source "lib/Kconfig.kmsan" > > > > endmenu # "Memory Debugging" > > > > diff --git a/lib/Kconfig.kmsan b/lib/Kconfig.kmsan > > new file mode 100644 > > index 0000000000000..8f768d4034e3c > > --- /dev/null > > +++ b/lib/Kconfig.kmsan > > @@ -0,0 +1,50 @@ > > +# SPDX-License-Identifier: GPL-2.0-only > > +config HAVE_ARCH_KMSAN > > + bool > > + > > +config HAVE_KMSAN_COMPILER > > + # Clang versions <14.0.0 also support -fsanitize=3Dkernel-memory,= but not > > + # all the features necessary to build the kernel with KMSAN. > > + depends on CC_IS_CLANG && CLANG_VERSION >=3D 140000 > > + def_bool $(cc-option,-fsanitize=3Dkernel-memory -mllvm -msan-disa= ble-checks=3D1) > > + > > +config HAVE_KMSAN_PARAM_RETVAL > > + # Separate check for -fsanitize-memory-param-retval support. > > This comment doesn't add much value, maybe instead say that "Supported > only by Clang >=3D 15." Fixed. > > + depends on CC_IS_CLANG && CLANG_VERSION >=3D 140000 > > Why not just "depends on HAVE_KMSAN_COMPILER"? (All > fsanitize-memory-param-retval supporting compilers must also be KMSAN > compilers.) Good idea, will do. > > + def_bool $(cc-option,-fsanitize=3Dkernel-memory -fsanitize-memory= -param-retval) > > + > > + > > HAVE_KMSAN_PARAM_RETVAL should be moved under "if KMSAN" so that this > isn't unnecessarily evaluated in every kernel build (saving 1 shelling > out to clang in most builds). Ack. > > +config KMSAN > > + bool "KMSAN: detector of uninitialized values use" > > + depends on HAVE_ARCH_KMSAN && HAVE_KMSAN_COMPILER > > + depends on SLUB && DEBUG_KERNEL && !KASAN && !KCSAN > > + select STACKDEPOT > > + select STACKDEPOT_ALWAYS_INIT > > + help > > + KernelMemorySanitizer (KMSAN) is a dynamic detector of uses of > > + uninitialized values in the kernel. It is based on compiler > > + instrumentation provided by Clang and thus requires Clang to bu= ild. > > + > > + An important note is that KMSAN is not intended for production = use, > > + because it drastically increases kernel memory footprint and sl= ows > > + the whole system down. > > + > > + See for more details. > > + > > +if KMSAN > > + > > +config KMSAN_CHECK_PARAM_RETVAL > > + bool "Check for uninitialized values passed to and returned from = functions" > > + default HAVE_KMSAN_PARAM_RETVAL > > This can be enabled even if !HAVE_KMSAN_PARAM_RETVAL. Should this be: > > default y > depends on HAVE_KMSAN_PARAM_RETVAL > > instead? > Ack --=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, Liana Sebastian Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg