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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 94F0AC6FA8E for ; Thu, 2 Mar 2023 15:13:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229688AbjCBPNw (ORCPT ); Thu, 2 Mar 2023 10:13:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45528 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229607AbjCBPNu (ORCPT ); Thu, 2 Mar 2023 10:13:50 -0500 Received: from mail-ua1-x92f.google.com (mail-ua1-x92f.google.com [IPv6:2607:f8b0:4864:20::92f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5B37055B2 for ; Thu, 2 Mar 2023 07:13:49 -0800 (PST) Received: by mail-ua1-x92f.google.com with SMTP id f20so6377784uam.3 for ; Thu, 02 Mar 2023 07:13:49 -0800 (PST) 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:subject:date :message-id:reply-to; bh=H2cHLqdllPliHQfcCj7lym6e5ewTgURvCIfBNx7SCko=; b=ikUsdVcNgtnIXHXltHp1Oq8CF97RiSySooyPoONAmpw3Y/PAua4f5xRjAU/L67FH2C Rs0IJEC8Wvw0AaHN4c5V37eSHjxmsHIl450kEJ/+BDmL9UfiPfmP/7p+3FPP1fmx717O CK3xF1sVVJmaHcWAp00OrWLkGrCxufREaVR4N9LyRHsIRjMmR7IUvJ3eTdRxGLr8K7v+ 5GvhrD/SoRBQRhZaQ+RoDXMnwgZ98ZH3TGduO3inFG7VoILhwGxhpHVR325ZfTjq6vre +2KkdcMinXy1Z76xwoxOfE5XZU3uWXIHFd8V6huUHEIIFg6XSqWokUInJNnW6lOOAXxV NMmw== 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 :subject:date:message-id:reply-to; bh=H2cHLqdllPliHQfcCj7lym6e5ewTgURvCIfBNx7SCko=; b=CIYBs1xjaGyoPAcxlJUVpgS4nKz8rKkH5GoECSRJrGY6lkQ382MdHQvZhxTLM8Q1mJ orFbuS7SU8uk0/3+W7N84/Qroz/FwnLeRE0yoLiGn2w8ccLB/WFXqpgL1LBqfrN7dkxT FpYYjuLMFaM/w/j7b0221gUGS6gjY0knNekdNNyfgrrCnWjLBJthuzmSjgODeNQyU0WB X1/IAtrutrtITjM93S1E3o6zC7yh/UnExY78uu47AnHeMaV0datxooyLyLdFi7DVDvtT 6xBbDT6FtdIlljh8MpCH73IlTxs6njQB7oztngh6Hyv4SmJx/fajz9aygNqxypffzH9z VHBw== X-Gm-Message-State: AO0yUKXR9JP9lTfAXzM0hQSAlVIf9A1NGXFsG3nCOiXGJ5APxzpYWNF7 L1smEKy5BYBYSWeJuYXmSpU4gv1r/+zLlCgxn6rYWQ== X-Google-Smtp-Source: AK7set/GcwBOjcTFsgk/DbmJ9D0TZt2yW0e3Oau6qlGq/CFy0t7Fp+vUEvcNwe2GpSTcIsPBMwawsaQE2J8JV/Vklf0= X-Received: by 2002:ab0:5b59:0:b0:68b:9eed:1c7d with SMTP id v25-20020ab05b59000000b0068b9eed1c7dmr6233732uae.0.1677770028306; Thu, 02 Mar 2023 07:13:48 -0800 (PST) MIME-Version: 1.0 References: <20230301143933.2374658-1-glider@google.com> In-Reply-To: From: Marco Elver Date: Thu, 2 Mar 2023 16:13:12 +0100 Message-ID: Subject: Re: [PATCH 1/4] x86: kmsan: Don't rename memintrinsics in uninstrumented files To: Alexander Potapenko Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org, dave.hansen@linux.intel.com, hpa@zytor.com, akpm@linux-foundation.org, dvyukov@google.com, nathan@kernel.org, ndesaulniers@google.com, kasan-dev@googlegroups.com, Kees Cook Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 2 Mar 2023 at 15:28, Alexander Potapenko wrote: > > On Thu, Mar 2, 2023 at 12:14=E2=80=AFPM Marco Elver wr= ote: > > > > On Wed, 1 Mar 2023 at 15:39, Alexander Potapenko wr= ote: > > > > > > KMSAN should be overriding calls to memset/memcpy/memmove and their > > > > You mean that the compiler will override calls? > > All supported compilers that have fsanitize=3Dkernel-memory replace > > memintrinsics with __msan_mem*() calls, right? > > Right. Changed to: > > KMSAN already replaces calls to to memset/memcpy/memmove and their > __builtin_ versions with __msan_memset/__msan_memcpy/__msan_memmove in > instrumented files, so there is no need to override them. But it's not KMSAN - KMSAN is the combined end result of runtime and compiler - in this case we need to be specific and point out it's the compiler that's doing it. There is no code in the Linux kernel that does this replacement. > > > > > > __builtin_ versions in instrumented files, so there is no need to > > > override them. In non-instrumented versions we are now required to > > > leave memset() and friends intact, so we cannot replace them with > > > __msan_XXX() functions. > > > > > > Cc: Kees Cook > > > Suggested-by: Marco Elver > > > Signed-off-by: Alexander Potapenko > > > > Other than that, > > > > Reviewed-by: Marco Elver > Thanks!