Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp1151229ybc; Tue, 12 Nov 2019 15:21:51 -0800 (PST) X-Google-Smtp-Source: APXvYqx3uOFc4bT9gE95DSgELyc5BrAc5XQAUj+Zbve/9nZpfc0gJywsZ6kxlua+oHScjsax7pCJ X-Received: by 2002:a50:970e:: with SMTP id c14mr363327edb.20.1573600911027; Tue, 12 Nov 2019 15:21:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1573600911; cv=none; d=google.com; s=arc-20160816; b=pNOzQIWtm6aqZci2hH50jQWUicxqimye0i/pdII3sucnHH5RFjiZOGbYmdE2GXvj8s NQF3LQZY32rPiVEHFgmnUlxGtQj6zb/08Y0MKOsbV1cI2G9fuAxGzUfo7Sy+GCxpGnac HEv8bzxZVoq3ab/WvhUgxcaNgFT74lGd5mtR15zy8Pchk4f1LSiUTpy282hLSiIXXaxh XLORj7ii0yO0rEiV7xzUCfJVaNda8xQpkXiU4UHdPjIGK8VDo0SCk6bcdYq0VxeH5831 h6ZbhcOPWxiWtS2uXLnhjEklc7++a1WwtZwWVc2YsPwAlvXgFtKFf4gi+Pb4mplJ0eRF /PfQ== 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=2wmRZDK37oUqP6+uI5Wq9SWuQ2Hmj0XKslCBjAECKVc=; b=xDw1GlWnir7wsCWIi3BaxaPBmdj994+PSbrY2qdrOI96h1k8O7yv1u7bZConmpJJWf K0oXcv6jYXv7tCNhCUufIOovXt48pmgVgNRnuvstb/jCoA+2yRmiPt0MlMDYbQ/z6tmd f7CVTX3BvWj+FKrCy9vvhrgCAqx61f9ukJDPdWjfDA4Q6Hf1O5WoXhSnPZGnOckaUj2O sLhEduwmeaJ18Yz884D30lzzJ36nQtzoyW5JQpSK26ZiaCKBOjUy2G7oDc7/9bhd+v6O oLQ/GrHm04m95uzOvoRfW1deytFICj3RCuhnTnmhXtX5ZexFiBYJtzBnHCI79eDajpRU IGNg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=pfU5LFrM; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v26si14329edd.364.2019.11.12.15.21.26; Tue, 12 Nov 2019 15:21:51 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=pfU5LFrM; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727284AbfKLXR6 (ORCPT + 99 others); Tue, 12 Nov 2019 18:17:58 -0500 Received: from mail-il1-f196.google.com ([209.85.166.196]:35621 "EHLO mail-il1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726978AbfKLXR6 (ORCPT ); Tue, 12 Nov 2019 18:17:58 -0500 Received: by mail-il1-f196.google.com with SMTP id z12so17250241ilp.2 for ; Tue, 12 Nov 2019 15:17:58 -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=2wmRZDK37oUqP6+uI5Wq9SWuQ2Hmj0XKslCBjAECKVc=; b=pfU5LFrMse1pSEkfylHbI3ThR2Y+Cw7OHPuSu2xiSoUYEvgyeHgdPu8QvG6CkhvCoe WJYwzI1mqsA88zP/CjDJaF5Oz69q6+PW1qcnYJeuXy1pMh7Ba4hEZxRqZ+Q0u6o/dWM/ sVhx8vWPyecAQJtPiHMSx17SBrSEkZR+JDy3lcS/miLEsPYK9TNgNf8HPBTsr9f3Oh0r /LBvR7yiViw18qkXpc4NKNV2xoNgEMV7UtGA0PvfFyCtlbsuCrP3VYbIQ/XHEnPScUkB 9GbS5RJ0I5dG+TQeq409bAOKeH6NU5DeP7mupTUsfMdSQGpJlr8ppG2clQtN7+vkfXSO v7CA== 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=2wmRZDK37oUqP6+uI5Wq9SWuQ2Hmj0XKslCBjAECKVc=; b=X9RZULHlNkRqAfTHJbuZ/QKSDJF/8B8g0JAkU0kKquVv/suiaDc1P1Vde8R/pw/MPV OOu+dfHqWtINNSxb5FcVhhlTTpbC9dbFnMJzhhemNDTscqt0Eey2YqMapYoAXpDZZbXO z95ObCa1jjz0jyxTQ/bksjIWBJpnw7LbbJkWZ6eHq8Ns2PiHtiG+MIZO/eZ9sHBItFAy oztpKyuxoJBi7VboO52XLDyiZQRX5XcRA1J9wW+vaZT3hJw104MEKrBC3wT4jLylE0VI NWMpBVQTiGaZp0F6n513yNPDR8lOZVeY4+D5qxhK4f9rV2KJ/exS/odlQA27DnwbHXgs LkjQ== X-Gm-Message-State: APjAAAWWiL6ohCxFMhPKpWSV24eP6Al05+VGCw9EfhQeGIjcAg3PyQUd GbnZ8AHiaXau13/QHuBWJ/tmvNn2IW+E5ic/Do1kkA== X-Received: by 2002:a92:7e0d:: with SMTP id z13mr505883ilc.168.1573600677105; Tue, 12 Nov 2019 15:17:57 -0800 (PST) MIME-Version: 1.0 References: <20191112224441.2kxmt727qy4l4ncb@ast-mbp.dhcp.thefacebook.com> In-Reply-To: <20191112224441.2kxmt727qy4l4ncb@ast-mbp.dhcp.thefacebook.com> From: Eric Dumazet Date: Tue, 12 Nov 2019 15:17:44 -0800 Message-ID: Subject: Re: KCSAN: data-race in __alloc_file / __alloc_file To: Alexei Starovoitov Cc: Alan Stern , Linus Torvalds , Marco Elver , Eric Dumazet , syzbot , linux-fsdevel , Linux Kernel Mailing List , syzkaller-bugs , Al Viro , Andrea Parri , "Paul E. McKenney" , LKMM Maintainers -- Akira Yokosawa 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, Nov 12, 2019 at 2:44 PM Alexei Starovoitov wrote: > > On Tue, Nov 12, 2019 at 02:07:03PM -0800, Eric Dumazet wrote: > > > > I would prefer some kind of explicit marking, instead of a comment. > > > > Even if we prefer having a sane compiler, having these clearly > > annotated can help > > code readability quite a lot. > > Annotating every line where tsk->min_flt is used with a comment > or explicit macro seems like a lot of churn. > How about adding an attribute to a field ? > Or an attribute to a type? > > clang attributes can be easily exteneded. We add bpf specific attributes > that are known to clang only when 'clang -target bpf' is used. > There could be x86 or generic attributes. > Then one can do: > typedef unsigned long __attribute__((ignore_data_race)) racy_u64; > struct task_struct { > racy_u64 min_flt; > }; > > Hopefully less churn and clear signal to clang. Hmm we have the ' volatile' attribute on jiffies, and it causes confusion already :p arch/x86/kernel/apic/apic.c:904: jif_start = READ_ONCE(jiffies); arch/x86/kernel/apic/apic.c:927: unsigned long jif_now = READ_ONCE(jiffies); kernel/sched/wait_bit.c:218: unsigned long now = READ_ONCE(jiffies); kernel/sched/wait_bit.c:232: unsigned long now = READ_ONCE(jiffies); kernel/time/timer.c:891: jnow = READ_ONCE(jiffies); kernel/time/timer.c:1681: unsigned long now = READ_ONCE(jiffies); net/rxrpc/conn_client.c:1111: now = READ_ONCE(jiffies);