Received: by 2002:a17:90a:bc8d:0:0:0:0 with SMTP id x13csp2414034pjr; Tue, 19 May 2020 14:47:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwQvD5xwgpTckC9RxDjZEmi+tZ0jDrepdbrUh511oedPiiUsEEyNFCwryuDsI8VWF/+3Ilo X-Received: by 2002:a17:906:c401:: with SMTP id u1mr1095744ejz.151.1589924846594; Tue, 19 May 2020 14:47:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589924846; cv=none; d=google.com; s=arc-20160816; b=pPSXDoqZwKbw/xGTN3Kuq6MjS55CteZ75856nmBYjwXXOreSaCHEcQ52uHYuRXO1+9 XxfWLrP4BRJ5KDzoc83Ni7iF+PqZyXIoh695PTSw6J3ukge9hvegJiUpowofvDl1yXlO VIiaCSMSWcclye+cWp3piSMrPenVm5a8/2h9iBb2DuQwk+wwzqT/GexTjW0tjKYylghG dbA+9X0fnmGE2j8NOckpBozB9QyfgI5R1uBv91Rm6s0RRScz1ae2w7L22pWevpQzXo/s bTykZMuyd/BU1gDr+UsXbxaJ//GSLeFbSEMEValI3KyXtBt/j0MR7huML0detR1vQiCi kH9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=cSRyYwL1zh4grnM+TNINN+oD+vS6Z1eKKyNnOMI4spM=; b=mjeYOAKYH1T4BtQGJZ0fmXo5jLTuRnPubPbom3uYaFwXulcXduMohZbboKCyXYxrL2 J9JSZlwp4l7pIOenTZMni+CbpRFgy6fEyemU4oiCUOd+Qn76vcFDrqLCKHEnPDJou+Fy jdfGD0Jb4biFXNol1etYN82KizPhnAPH/vU+wj4ieMFW/71tcyEGFW2LIy7PPQEcWy0C 9Alf5j8U2CmOvfeMFgZCI44UlNa+kHsZYshazC7kCyjIPtKF7e5bEFX5/yie6T+6D2N7 CZAxQVb5VZakYAP9ej0u1S/Y/3FmewNA/14YrYp9niGJx3dHbJSsiSIPL4yXtmSE7ubG vyAQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lca.pw header.s=google header.b=kooqm401; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id u22si343645eda.225.2020.05.19.14.47.03; Tue, 19 May 2020 14:47:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@lca.pw header.s=google header.b=kooqm401; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726651AbgESVpk (ORCPT + 99 others); Tue, 19 May 2020 17:45:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40632 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726030AbgESVpk (ORCPT ); Tue, 19 May 2020 17:45:40 -0400 Received: from mail-ej1-x642.google.com (mail-ej1-x642.google.com [IPv6:2a00:1450:4864:20::642]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E4FAAC08C5C0 for ; Tue, 19 May 2020 14:45:39 -0700 (PDT) Received: by mail-ej1-x642.google.com with SMTP id l21so777969eji.4 for ; Tue, 19 May 2020 14:45:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lca.pw; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=cSRyYwL1zh4grnM+TNINN+oD+vS6Z1eKKyNnOMI4spM=; b=kooqm401yr9fOYTBZtBz68VkWQLqOCDxgT2Rq5cmtiNGVkoyO+ziEo9wVOwcB6SECM Rk8oAvW39vwRMGGmhe3BmE0pIX+CPBAQFj4V0sW0Q8Mjr3MG9RMFMPPXCTgw+sN7x6T5 SJbSgylBl7DdBAeSrRo97mzs3DWFB9QUsSshAWmL5cqk/iadLv7wzaeBaMOqczn+JNAC Ky5v6fPs21vi7tVclq+4k69VrXLPLYAGdL9OnfSHk2eDEfQJSZdPhkokuw8SPH9Tlpvo wUnkLOyslyQrEbvsZ3MkXnkAtfu6fYm229ySD4pt6W0nyAlDuGq8D8cIz5tHySGCAjdO gzQA== 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=cSRyYwL1zh4grnM+TNINN+oD+vS6Z1eKKyNnOMI4spM=; b=oN07MuxRaCsROek7d3LVLT+NCCByihhqK3rDYo6wkUAIwY1+tShw8mRvors6f1pvuF jC6gm/Xl3dDK6LaKxihvMPc+OdLS0wLOa0qgrw+D+402LSv9iX6Z+iCRs1kX6zpNwNa2 PInZbA6Sz2aLhykoZrzwtPcbxFc0GuNdqPm1MEKn0l2NiOO+bYdlUh1ZIrI0bfkIgDge nb+TyybjrQvFXCxiR9jAO7tMrEbJr16jSAhkrCh69Wj0UA5Sa7D07UtOi7Whb6Lpt4qX Nkc/d9UAPeezgy/ZxTIv3dr/monNaMUCFZJBbqiLkebv8XMLOFZ96AsPz20SKfrKYorS nFHg== X-Gm-Message-State: AOAM531slTwdEw1Skiw97kREUjsguTMO5uuCrtTBNbC0Oi27HZZvs2Vi yiGKY0vQnNmm3bzDQ+//HtjgpM4lz1l+VUWyxPw4fg== X-Received: by 2002:a17:907:2711:: with SMTP id w17mr1256244ejk.8.1589924738593; Tue, 19 May 2020 14:45:38 -0700 (PDT) MIME-Version: 1.0 References: <20200512183839.2373-1-elver@google.com> <20200512190910.GM2957@hirez.programming.kicks-ass.net> In-Reply-To: From: Qian Cai Date: Tue, 19 May 2020 17:45:27 -0400 Message-ID: Subject: Re: [PATCH] READ_ONCE, WRITE_ONCE, kcsan: Perform checks in __*_ONCE variants To: Marco Elver Cc: Peter Zijlstra , Linux Kernel Mailing List , kasan-dev , Will Deacon , Thomas Gleixner , "Paul E . McKenney" , Ingo Molnar Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, May 19, 2020 at 5:26 PM Marco Elver wrote: > > On Tue, 19 May 2020 at 23:10, Qian Cai wrote: > > > > On Tue, May 12, 2020 at 3:09 PM Peter Zijlstra wrote: > > > > > > On Tue, May 12, 2020 at 08:38:39PM +0200, Marco Elver wrote: > > > > diff --git a/include/linux/compiler.h b/include/linux/compiler.h > > > > index 741c93c62ecf..e902ca5de811 100644 > > > > --- a/include/linux/compiler.h > > > > +++ b/include/linux/compiler.h > > > > @@ -224,13 +224,16 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val, > > > > * atomicity or dependency ordering guarantees. Note that this may result > > > > * in tears! > > > > */ > > > > -#define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x)) > > > > +#define __READ_ONCE(x) \ > > > > +({ \ > > > > + kcsan_check_atomic_read(&(x), sizeof(x)); \ > > > > + data_race((*(const volatile __unqual_scalar_typeof(x) *)&(x))); \ > > > > +}) > > > > > > NAK > > > > > > This will actively insert instrumentation into __READ_ONCE() and I need > > > it to not have any. > > > > Any way to move this forward? Due to linux-next commit 6bcc8f459fe7 > > (locking/atomics: Flip fallbacks and instrumentation), it triggers a > > lots of KCSAN warnings due to atomic ops are no longer marked. > > This is no longer the right solution we believe due to the various > requirements that Peter also mentioned. See the discussion here: > https://lkml.kernel.org/r/CANpmjNOGFqhtDa9wWpXs2kztQsSozbwsuMO5BqqW0c0g0zGfSA@mail.gmail.com > > The new solution is here: > https://lkml.kernel.org/r/20200515150338.190344-1-elver@google.com > While it's a little inconvenient that we'll require Clang 11 > (currently available by building yourself from LLVM repo), but until > we get GCC fixed (my patch there still pending :-/), this is probably > the right solution going forward. If possible, please do test! That would be quite unfortunate. The version here is still gcc-8.3.1 and clang-9.0.1 on RHEL 8.2 here. It will probably need many years to be able to get the fixed compilers having versions that high. Sigh... Also, I want to avoid compiling compilers on my own.