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 50D83C432C0 for ; Fri, 29 Nov 2019 15:55:55 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 0296C216F4 for ; Fri, 29 Nov 2019 15:55:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="PzEChAVa" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0296C216F4 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 A689B6B05AC; Fri, 29 Nov 2019 10:55:54 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A1AE86B05AD; Fri, 29 Nov 2019 10:55:54 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 930556B05AE; Fri, 29 Nov 2019 10:55:54 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0048.hostedemail.com [216.40.44.48]) by kanga.kvack.org (Postfix) with ESMTP id 7A96E6B05AC for ; Fri, 29 Nov 2019 10:55:54 -0500 (EST) Received: from smtpin13.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with SMTP id 473084995E6 for ; Fri, 29 Nov 2019 15:55:54 +0000 (UTC) X-FDA: 76209765828.13.sock72_8ac74b7f3fa03 X-HE-Tag: sock72_8ac74b7f3fa03 X-Filterd-Recvd-Size: 8093 Received: from mail-pj1-f66.google.com (mail-pj1-f66.google.com [209.85.216.66]) by imf20.hostedemail.com (Postfix) with ESMTP for ; Fri, 29 Nov 2019 15:55:53 +0000 (UTC) Received: by mail-pj1-f66.google.com with SMTP id g4so606660pjs.10 for ; Fri, 29 Nov 2019 07:55:53 -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; bh=78smvaG9FhvyVKOGV3NBn+Hdb3f+5AOgPBrWLs00heo=; b=PzEChAVarwgd9tUizaPgCCdqpO42CHcHJytBEXF61zbdF0vps8Fhih7jbF0Vm2uPPI D4gQ6KCGEOev5z/PQ3YQnV38TmBdzt9FXy569bt85pGMK2hkCyFdZwRITtTPmM0iDam7 ZDY1vcsUvPxIDTyLCwPiIoKbsoXG5Kj/QthOBCUKTZRJAwXga6Nsma5s3zhCN31HQ6cx Baepg77b2Jk4iPvxbfnZQfcTEEd8uxgs7R1aQN+VG8Cxnf24I3hGwR0oPFoYHaP7RZne vpHs0OZsxQX1zJmGaRlHeCzPt60JYkjYjKI0Ijp2ao1hLDg7w623+D6L0p7hUAJZ+e0g Zo4w== 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; bh=78smvaG9FhvyVKOGV3NBn+Hdb3f+5AOgPBrWLs00heo=; b=bk+9hzAv7r4fbT37U489gh3CACGdSvlfhkgYOCOcjUCbNrdg7Gno6GPb2zF7E8DO/R F9j/T/lU+wqzcrEuZOyMSG2vmqxo7pA32ooT6RSJfqNGav6Pfarn1PSICOnHJltwjpB3 2Qi6GcIIN8G6XtTaKt6GY34FdPf2itspARNhbGZCVfPxZyF5PvLGcNUDfcRY1asbPxEQ GQB9FD8ETgZpRH9GnzeIE5bjo1b04g7fZjM0J1FcI8j6qm8h2fV51s1c5mrruuLqVY5H ow/ZwXkHLyFjp8hgTU7QczD93ZjhE2qDRet82q7u3ioRmNqkI4XkL02TLp0c98VSlgaH dgkQ== X-Gm-Message-State: APjAAAVH0QhnkL06bzorvEVL37gZW0OKQheOuMaIeXr4RejVOVxjwqIM Sa8zvrweoxs1iCqi1zBpbDl4kyKy0vWILR6RMDJr5A== X-Google-Smtp-Source: APXvYqwn/dK2AXmLUpt394JhEUrHI6nSOEFkhfXsZpZzSWXcEyG/cIiGRfygQCRrWMwFU03pLUG4x0tvh4e9i4fVFVc= X-Received: by 2002:a17:90a:a4cb:: with SMTP id l11mr19488901pjw.47.1575042951926; Fri, 29 Nov 2019 07:55:51 -0800 (PST) MIME-Version: 1.0 References: <20191122112621.204798-1-glider@google.com> <20191122112621.204798-29-glider@google.com> In-Reply-To: <20191122112621.204798-29-glider@google.com> From: Andrey Konovalov Date: Fri, 29 Nov 2019 16:55:40 +0100 Message-ID: Subject: Re: [PATCH RFC v3 28/36] kmsan: enable KMSAN builds To: Alexander Potapenko Cc: Jens Axboe , Andy Lutomirski , Vegard Nossum , Dmitry Vyukov , Linux Memory Management List , Alexander Viro , Andreas Dilger , Andrew Morton , Andrey Ryabinin , Ard Biesheuvel , Arnd Bergmann , Christoph Hellwig , Christoph Hellwig , darrick.wong@oracle.com, "David S. Miller" , Dmitry Torokhov , Eric Biggers , Eric Dumazet , ericvh@gmail.com, Greg Kroah-Hartman , harry.wentland@amd.com, Herbert Xu , iii@linux.ibm.com, mingo@elte.hu, Jason Wang , Marek Szyprowski , Marco Elver , Mark Rutland , "Martin K. Petersen" , Martin Schwidefsky , Matthew Wilcox , "Michael S . Tsirkin" , Michal Simek , pmladek@suse.com, Qian Cai , Randy Dunlap , Robin Murphy , sergey.senozhatsky@gmail.com, Steven Rostedt , Takashi Iwai , "Theodore Ts'o" , Thomas Gleixner , gor@linux.ibm.com, wsa@the-dreams.de Content-Type: text/plain; charset="UTF-8" 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: Archived-At: List-Archive: List-Post: On Fri, Nov 22, 2019 at 12:27 PM wrote: > > Make KMSAN usable by adding the necessary Makefile bits and calling > KMSAN initialization routines (kmsan_initialize_shadow() and > kmsan_initialize()) from init/main.c I think it makes sense to split these two parts into separate patches as well. > > Signed-off-by: Alexander Potapenko > To: Alexander Potapenko > Cc: Jens Axboe > Cc: Andy Lutomirski > Cc: Vegard Nossum > Cc: Dmitry Vyukov > Cc: linux-mm@kvack.org > > --- > This patch was previously called "kmsan: Changing existing files to > enable KMSAN builds". Logically unrelated parts of it were split away. > > Change-Id: I37e0b7f2d2f2b0aeac5753ff9d6b411485fc374e > --- > Makefile | 3 ++- > init/main.c | 3 +++ > mm/Makefile | 1 + > scripts/Makefile.lib | 6 ++++++ > 4 files changed, 12 insertions(+), 1 deletion(-) > > diff --git a/Makefile b/Makefile > index 79be70bf2899..181ae2dac415 100644 > --- a/Makefile > +++ b/Makefile > @@ -478,7 +478,7 @@ export KBUILD_HOSTCXXFLAGS KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS LDFLAGS_MODULE > > export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS KBUILD_LDFLAGS > export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE > -export CFLAGS_KASAN CFLAGS_KASAN_NOSANITIZE CFLAGS_UBSAN > +export CFLAGS_KASAN CFLAGS_KASAN_NOSANITIZE CFLAGS_UBSAN CFLAGS_KMSAN > export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE > export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE > export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL > @@ -898,6 +898,7 @@ KBUILD_CFLAGS += $(call cc-option,-fcf-protection=none) > endif > > include scripts/Makefile.kasan > +include scripts/Makefile.kmsan > include scripts/Makefile.extrawarn > include scripts/Makefile.ubsan > > diff --git a/init/main.c b/init/main.c > index 91f6ebb30ef0..afcca2a38348 100644 > --- a/init/main.c > +++ b/init/main.c > @@ -32,6 +32,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -554,6 +555,7 @@ static void __init mm_init(void) > */ > page_ext_init_flatmem(); > report_meminit(); > + kmsan_initialize_shadow(); > mem_init(); > kmem_cache_init(); > kmemleak_init(); > @@ -625,6 +627,7 @@ asmlinkage __visible void __init start_kernel(void) > sort_main_extable(); > trap_init(); > mm_init(); > + kmsan_initialize(); > > ftrace_init(); > > diff --git a/mm/Makefile b/mm/Makefile > index d996846697ef..419e6e02dfaf 100644 > --- a/mm/Makefile > +++ b/mm/Makefile > @@ -71,6 +71,7 @@ obj-$(CONFIG_PAGE_POISONING) += page_poison.o > obj-$(CONFIG_SLAB) += slab.o > obj-$(CONFIG_SLUB) += slub.o > obj-$(CONFIG_KASAN) += kasan/ > +obj-$(CONFIG_KMSAN) += kmsan/ > obj-$(CONFIG_FAILSLAB) += failslab.o > obj-$(CONFIG_MEMORY_HOTPLUG) += memory_hotplug.o > obj-$(CONFIG_MEMTEST) += memtest.o > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib > index 179d55af5852..f9f38f7c1cd4 100644 > --- a/scripts/Makefile.lib > +++ b/scripts/Makefile.lib > @@ -140,6 +140,12 @@ _c_flags += $(if $(patsubst n%,, \ > $(CFLAGS_KASAN), $(CFLAGS_KASAN_NOSANITIZE)) > endif > > +ifeq ($(CONFIG_KMSAN),y) > +_c_flags += $(if $(patsubst n%,, \ > + $(KMSAN_SANITIZE_$(basetarget).o)$(KMSAN_SANITIZE)y), \ > + $(CFLAGS_KMSAN)) > +endif > + > ifeq ($(CONFIG_UBSAN),y) > _c_flags += $(if $(patsubst n%,, \ > $(UBSAN_SANITIZE_$(basetarget).o)$(UBSAN_SANITIZE)$(CONFIG_UBSAN_SANITIZE_ALL)), \ > -- > 2.24.0.432.g9d3f5f5b63-goog >