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 6E760C678D4 for ; Thu, 2 Mar 2023 14:50:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230356AbjCBOuq (ORCPT ); Thu, 2 Mar 2023 09:50:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38916 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230165AbjCBOu0 (ORCPT ); Thu, 2 Mar 2023 09:50:26 -0500 Received: from mail-io1-xd32.google.com (mail-io1-xd32.google.com [IPv6:2607:f8b0:4864:20::d32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7EE72580C9 for ; Thu, 2 Mar 2023 06:49:17 -0800 (PST) Received: by mail-io1-xd32.google.com with SMTP id m22so6423492ioy.4 for ; Thu, 02 Mar 2023 06:49:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=2l3NQJUTH3/qN89xY5bS6AJLfJmHgspkf61yJ8LdA9c=; b=of2jhdzOcdjd7DQ6Tq21PylhQsmdLVKDDUtwGRfyti5a2grEHicj+B5+0rN5PDc5/Y LBw6tRMCjLlZ5ez7ZKnYjla+ELS9V0Ld2CEgNGmgaR4w82Kf3LXYHjPL8bJe8V5Jb/WR TRYslK1gqqOKs5Ahu4RwvElOU+k+JyqSJurGBe4/9r4Hz1kEVoU5OyT76rxrpkleI6Q8 AnA5URzhdkZmdteg3mxnzbH3at7Nyft5++/ZMwlWqGwrRbdNnODJ4rafR59Fo0sNpK7n ZZqKsJa5KxyNuAFhmiUlqdV2e4NR215YdRFfqvPmsHA/wmtFOLvHUPfCEXJ0DRYcEcVp VSzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=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=2l3NQJUTH3/qN89xY5bS6AJLfJmHgspkf61yJ8LdA9c=; b=rPio6Ruf/onp9IDDmmFLHEpHntRF6A4jdk/0fIdzggZW/hCZVqWYJ/VUCG4l8b+QNC rHt7sq1u0Rmo4Gm4EWx5JHN48GGmKLZBPToik3gD24ux6yLgbfpP+fViuYbjv9vcIBpw uBWRCK8Msy6HLTOurASgsrNvcQ3c8MzdDfbSy5WsTKrvrZxS6RLMmZDoDQKcvFL0/R4k fFxX3Ge8bqSNcyIo8wAD+Bn0t3RayjHSyNvcLg9lWW50s1/O73k/6+N9doitGoAnzC2b P92FGD3mBeLvZtb3OjbEdhsTzcrJVCCYJefriRu0TnUckjVh1cQMx8VBWTvkWvX3/8wY yKUg== X-Gm-Message-State: AO0yUKUF4YkiT/iVjlawlT5dGHaomm21rRdDQBUVfIa0Uh5MveeqMpBV mfc4QiqVf2AFgBtyxWXwPlrX04RTyoOIgQeFMDtb+Q== X-Google-Smtp-Source: AK7set9vxIW4luvgv9ZCJRtoXbzkPMhY416bO+ZbNnqrH34wjctqll14EMcVeH8tsDabgrQ0nlI9q4fRKqF1GawM9zg= X-Received: by 2002:a02:940a:0:b0:3ea:f622:3c7 with SMTP id a10-20020a02940a000000b003eaf62203c7mr4693665jai.5.1677768545351; Thu, 02 Mar 2023 06:49:05 -0800 (PST) MIME-Version: 1.0 References: <20230301143933.2374658-1-glider@google.com> <20230301143933.2374658-2-glider@google.com> In-Reply-To: From: Alexander Potapenko Date: Thu, 2 Mar 2023 15:48:29 +0100 Message-ID: Subject: Re: [PATCH 2/4] kmsan: another take at fixing memcpy tests To: Marco Elver 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 Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > > +#define DO_NOT_OPTIMIZE(var) asm("" ::: "memory") > > That's just a normal "barrier()" - use that instead? Ok, will do (I still think I'd better hide it behind a macro so that we can change the implementation of DO_NOT_OPTIMIZE in the future if the compiler starts outsmarting us again. > > +/* > > + * Test case: ensure that memcpy() correctly copies initialized values. > > + */ > > +static void test_init_memcpy(struct kunit *test) > > +{ > > + EXPECTATION_NO_REPORT(expect); > > + volatile int src; > > + volatile int dst = 0; > > + > > + // Ensure DO_NOT_OPTIMIZE() does not cause extra checks. > > ^^ this comment seems redundant now, given DO_NOT_OPTIMIZE() has a > comment (it's also using //-style comment). Moved it to the test description: /* * Test case: ensure that memcpy() correctly copies initialized values. * Also serves as a regression test to ensure DO_NOT_OPTIMIZE() does not cause * extra checks. */ I think it's still relevant here.