Received: by 10.223.176.5 with SMTP id f5csp560219wra; Fri, 9 Feb 2018 03:36:03 -0800 (PST) X-Google-Smtp-Source: AH8x2274+sa3ylX/xCvQudlivjRo0hRfsy+GTwqyKS680YVAn1HVl7L6EKz/G0fdqYa+/rh4gwGs X-Received: by 10.98.103.131 with SMTP id t3mr2585482pfj.53.1518176163684; Fri, 09 Feb 2018 03:36:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518176163; cv=none; d=google.com; s=arc-20160816; b=06SIpiHneHTBW46F8pV6/asxfUr4ufqSKC+Wn0nGgIfWdFjyW09Y2GTYjeCmvttLiz bCxRZZluiTfeQsQeiljLVEOxDqYstzHvlRujjCEf6bXazRQ3UN851jZoBJbazufHcA79 2xk767Ydk77IUigbbiC8X1W86RwO1NYyoEFJ+Q5BTZe/OAC7QrZfYfxy7twa8gyWbKl+ FpGkb7phVN7kjscQX2LX9FpPcjJZGAZeNdm85seLkKV4HD9+r/LusmMwqk2GbKIYVI4x OOyfbk1NYAylPecF1PUaM7Qcp39wwsmcCeet8MvVznRtaBe6RpCeuykKtqyMhbCxDtsm 0ksw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:user-agent:in-reply-to :content-disposition:mime-version:references:reply-to:subject:cc:to :from:date:arc-authentication-results; bh=yuaewToWmEBHriTwn6PS7ZTj1fkApQR5D8j2wrGcai8=; b=eIhAz9ZiEXUuv/4oy73D+tP6KCKx5/UFtyrO4uP0RjQojOMhPHDxdYV98qj1ctVOs7 B0Af/6FRz/XzWS9UgU9shdO6xERv/jc2Bxk6+A6e8Y6kxo3SWzF8wCo46tlbv8E/OTt1 dxOJmkrltKVwDdZLQzs/o1EfDknEq6XL0GgKHzTFh8mtlYJbU6MvtAQL53nkyCnA8/Nd Bcys3FS5ra1wIqE82WsjQQp6u/R9BdEjG/BYGiFJEd76MxAKBiqGO9T4RKVHpY8qA0wX Nz5Ue53yrQHwIAWMbXMelqKgcfqTao2hSjJgvOmYbeggltDfiVzhwTjcKjuTPcavC5d+ rJUg== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b33-v6si1413727plb.750.2018.02.09.03.35.49; Fri, 09 Feb 2018 03:36:03 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751048AbeBILdz (ORCPT + 99 others); Fri, 9 Feb 2018 06:33:55 -0500 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:43988 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750918AbeBILdy (ORCPT ); Fri, 9 Feb 2018 06:33:54 -0500 Received: from pps.filterd (m0098421.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w19BTjs4094568 for ; Fri, 9 Feb 2018 06:33:53 -0500 Received: from e11.ny.us.ibm.com (e11.ny.us.ibm.com [129.33.205.201]) by mx0a-001b2d01.pphosted.com with ESMTP id 2g19w8af28-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Fri, 09 Feb 2018 06:33:53 -0500 Received: from localhost by e11.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 9 Feb 2018 06:33:52 -0500 Received: from b01cxnp23033.gho.pok.ibm.com (9.57.198.28) by e11.ny.us.ibm.com (146.89.104.198) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Fri, 9 Feb 2018 06:33:48 -0500 Received: from b01ledav003.gho.pok.ibm.com (b01ledav003.gho.pok.ibm.com [9.57.199.108]) by b01cxnp23033.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w19BXlxL3408272; Fri, 9 Feb 2018 11:33:47 GMT Received: from b01ledav003.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A6CC5B204E; Fri, 9 Feb 2018 06:30:42 -0500 (EST) Received: from paulmck-ThinkPad-W541 (unknown [9.85.160.93]) by b01ledav003.gho.pok.ibm.com (Postfix) with ESMTP id D3AF3B204D; Fri, 9 Feb 2018 06:30:39 -0500 (EST) Received: by paulmck-ThinkPad-W541 (Postfix, from userid 1000) id 149B616C3901; Fri, 9 Feb 2018 03:33:57 -0800 (PST) Date: Fri, 9 Feb 2018 03:33:57 -0800 From: "Paul E. McKenney" To: Patrick Bellasi Cc: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, stern@rowland.harvard.edu, parri.andrea@gmail.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, boqun.feng@gmail.com, will.deacon@arm.com, peterz@infradead.org, npiggin@gmail.com, dhowells@redhat.com, elena.reshetova@intel.com, mhocko@suse.com, akiyks@gmail.com Subject: Re: [GIT PULL tools] Linux kernel memory model Reply-To: paulmck@linux.vnet.ibm.com References: <20180125093440.GA875@linux.vnet.ibm.com> <20180208184106.GA17043@e110439-lin> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180208184106.GA17043@e110439-lin> User-Agent: Mutt/1.5.21 (2010-09-15) X-TM-AS-GCONF: 00 x-cbid: 18020911-2213-0000-0000-0000026A357E X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00008503; HX=3.00000241; KW=3.00000007; PH=3.00000004; SC=3.00000250; SDB=6.00987171; UDB=6.00501049; IPR=6.00766529; BA=6.00005821; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009; ZB=6.00000000; ZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00019456; XFM=3.00000015; UTC=2018-02-09 11:33:52 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18020911-2214-0000-0000-0000590DD3A5 Message-Id: <20180209113357.GV3617@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2018-02-09_06:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1709140000 definitions=main-1802090147 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Feb 08, 2018 at 06:41:06PM +0000, Patrick Bellasi wrote: > Hi Paul, > thanks to you and all the involved guys for this useful tool. > > I give it a try today and found that by installing herd7 by just > following the instruction in herdtools7/INSTALL.md, and precisely > installing it via: > > opam install herdtools7 > > it seems to give you a tool which fails to run the basic example in > your README with this error: > > File "./linux-kernel.def", line 44, characters 29-30: unexpected '-' (in macros) > > As suggested by Will, by building instead herd7 HEAD (commit 44d69c2) > everything works fine. > > Maybe it's a know issue, in case just ignore me. :) > > Otherwise, maybe it can be worth to add to the README a note on which > minimum version of the herd7 tool is required. > > opma version (not working) : 7.47, Rev: exported > master version (working for me) : 7.47+7(dev), Rev: 44d69c2b1b5ca0f97bd138899d31532ee5e4e084 Thank you for trying it out, and apologies for the hassle! These sort of "flag day" updates have happened from time to time due to the occasional need to have coordinated updates adding features to herd7 to enable new features in LKMM. As Andrea pointed out, this particular flag day could be argued to be a bit less necessary than most, and again, apologies for the hassle. We will get this straightened out one way or another... Thanx, Paul > Cheers Patrick > > On 25-Jan 01:34, Paul E. McKenney wrote: > > Hello, Ingo, > > > > This pull request contains a single commit that adds a memory model to > > the tools directory. This memory model can (roughly speaking) be thought > > of as an automated version of memory-barriers.txt. It is written in the > > "cat" language, which is executable by the externally provided "herd7" > > simulator, which exhaustively explores the state space of small litmus > > tests. > > > > This memory model is accompanied by extensive documentation on its use > > and its design. Two versions have been sent to LKML and feedback > > incorporated: > > > > 1. http://lkml.kernel.org/r/20171113184031.GA26302@linux.vnet.ibm.com > > 2. http://lkml.kernel.org/r/20180119035855.GA29296@linux.vnet.ibm.com > > > > This model has been presented and demoed at a number of Linux gatherings, > > including the 2016 LinuxCon EU, the 2016 Linux Plumbers Conference, > > the 2016 Linux Kernel Summit, the 2017 linux.conf.au, and the 2017 Linux > > Plumbers Conference, which featured a workshop helping a number of Linux > > kernel hackers install and use the tool. > > > > This memory model has matured to the point where it would be good to include > > it in the Linux kernel, for example, to allow it to track changes as new > > hardware and use cases are added. We expect the rate of change to be similar > > to that of Documentation/memory-barriers.txt. > > > > This memory model is available in the git repository at: > > > > git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git > > > > for you to fetch changes up to 1c27b644c0fdbc61e113b8faee14baeb8df32486: > > > > Automate memory-barriers.txt; provide Linux-kernel memory model (2018-01-24 20:53:49 -0800) > > > > ---------------------------------------------------------------- > > Paul E. McKenney (1): > > Automate memory-barriers.txt; provide Linux-kernel memory model > > > > tools/memory-model/Documentation/cheatsheet.txt | 30 + > > tools/memory-model/Documentation/explanation.txt | 1840 ++++++++++++++++++++ > > tools/memory-model/Documentation/recipes.txt | 570 ++++++ > > tools/memory-model/Documentation/references.txt | 107 ++ > > tools/memory-model/MAINTAINERS | 15 + > > tools/memory-model/README | 220 +++ > > tools/memory-model/linux-kernel.bell | 53 + > > tools/memory-model/linux-kernel.cat | 124 ++ > > tools/memory-model/linux-kernel.cfg | 21 + > > tools/memory-model/linux-kernel.def | 108 ++ > > .../litmus-tests/CoRR+poonceonce+Once.litmus | 19 + > > .../litmus-tests/CoRW+poonceonce+Once.litmus | 18 + > > .../litmus-tests/CoWR+poonceonce+Once.litmus | 18 + > > .../litmus-tests/CoWW+poonceonce.litmus | 11 + > > .../litmus-tests/IRIW+mbonceonces+OnceOnce.litmus | 35 + > > .../litmus-tests/IRIW+poonceonces+OnceOnce.litmus | 33 + > > .../litmus-tests/ISA2+poonceonces.litmus | 28 + > > ...cerelease+poacquirerelease+poacquireonce.litmus | 28 + > > .../litmus-tests/LB+ctrlonceonce+mbonceonce.litmus | 23 + > > .../LB+poacquireonce+pooncerelease.litmus | 21 + > > .../litmus-tests/LB+poonceonces.litmus | 21 + > > .../litmus-tests/MP+onceassign+derefonce.litmus | 25 + > > tools/memory-model/litmus-tests/MP+polocks.litmus | 24 + > > .../litmus-tests/MP+poonceonces.litmus | 20 + > > .../MP+pooncerelease+poacquireonce.litmus | 20 + > > .../memory-model/litmus-tests/MP+porevlocks.litmus | 24 + > > .../litmus-tests/MP+wmbonceonce+rmbonceonce.litmus | 22 + > > .../memory-model/litmus-tests/R+mbonceonces.litmus | 21 + > > .../memory-model/litmus-tests/R+poonceonces.litmus | 19 + > > tools/memory-model/litmus-tests/README | 125 ++ > > .../memory-model/litmus-tests/S+poonceonces.litmus | 19 + > > .../S+wmbonceonce+poacquireonce.litmus | 20 + > > .../litmus-tests/SB+mbonceonces.litmus | 23 + > > .../litmus-tests/SB+poonceonces.litmus | 21 + > > .../litmus-tests/WRC+poonceonces+Once.litmus | 27 + > > .../WRC+pooncerelease+rmbonceonce+Once.litmus | 28 + > > .../Z6.0+pooncelock+poonceLock+pombonce.litmus | 33 + > > .../Z6.0+pooncelock+pooncelock+pombonce.litmus | 32 + > > ...ooncerelease+poacquirerelease+mbonceonce.litmus | 28 + > > tools/memory-model/lock.cat | 99 ++ > > 40 files changed, 3973 insertions(+) > > create mode 100644 tools/memory-model/Documentation/cheatsheet.txt > > create mode 100644 tools/memory-model/Documentation/explanation.txt > > create mode 100644 tools/memory-model/Documentation/recipes.txt > > create mode 100644 tools/memory-model/Documentation/references.txt > > create mode 100644 tools/memory-model/MAINTAINERS > > create mode 100644 tools/memory-model/README > > create mode 100644 tools/memory-model/linux-kernel.bell > > create mode 100644 tools/memory-model/linux-kernel.cat > > create mode 100644 tools/memory-model/linux-kernel.cfg > > create mode 100644 tools/memory-model/linux-kernel.def > > create mode 100644 tools/memory-model/litmus-tests/CoRR+poonceonce+Once.litmus > > create mode 100644 tools/memory-model/litmus-tests/CoRW+poonceonce+Once.litmus > > create mode 100644 tools/memory-model/litmus-tests/CoWR+poonceonce+Once.litmus > > create mode 100644 tools/memory-model/litmus-tests/CoWW+poonceonce.litmus > > create mode 100644 tools/memory-model/litmus-tests/IRIW+mbonceonces+OnceOnce.litmus > > create mode 100644 tools/memory-model/litmus-tests/IRIW+poonceonces+OnceOnce.litmus > > create mode 100644 tools/memory-model/litmus-tests/ISA2+poonceonces.litmus > > create mode 100644 tools/memory-model/litmus-tests/ISA2+pooncerelease+poacquirerelease+poacquireonce.litmus > > create mode 100644 tools/memory-model/litmus-tests/LB+ctrlonceonce+mbonceonce.litmus > > create mode 100644 tools/memory-model/litmus-tests/LB+poacquireonce+pooncerelease.litmus > > create mode 100644 tools/memory-model/litmus-tests/LB+poonceonces.litmus > > create mode 100644 tools/memory-model/litmus-tests/MP+onceassign+derefonce.litmus > > create mode 100644 tools/memory-model/litmus-tests/MP+polocks.litmus > > create mode 100644 tools/memory-model/litmus-tests/MP+poonceonces.litmus > > create mode 100644 tools/memory-model/litmus-tests/MP+pooncerelease+poacquireonce.litmus > > create mode 100644 tools/memory-model/litmus-tests/MP+porevlocks.litmus > > create mode 100644 tools/memory-model/litmus-tests/MP+wmbonceonce+rmbonceonce.litmus > > create mode 100644 tools/memory-model/litmus-tests/R+mbonceonces.litmus > > create mode 100644 tools/memory-model/litmus-tests/R+poonceonces.litmus > > create mode 100644 tools/memory-model/litmus-tests/README > > create mode 100644 tools/memory-model/litmus-tests/S+poonceonces.litmus > > create mode 100644 tools/memory-model/litmus-tests/S+wmbonceonce+poacquireonce.litmus > > create mode 100644 tools/memory-model/litmus-tests/SB+mbonceonces.litmus > > create mode 100644 tools/memory-model/litmus-tests/SB+poonceonces.litmus > > create mode 100644 tools/memory-model/litmus-tests/WRC+poonceonces+Once.litmus > > create mode 100644 tools/memory-model/litmus-tests/WRC+pooncerelease+rmbonceonce+Once.litmus > > create mode 100644 tools/memory-model/litmus-tests/Z6.0+pooncelock+poonceLock+pombonce.litmus > > create mode 100644 tools/memory-model/litmus-tests/Z6.0+pooncelock+pooncelock+pombonce.litmus > > create mode 100644 tools/memory-model/litmus-tests/Z6.0+pooncerelease+poacquirerelease+mbonceonce.litmus > > create mode 100644 tools/memory-model/lock.cat > > > > -- > #include > > Patrick Bellasi >