From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755635AbdKNRPT (ORCPT ); Tue, 14 Nov 2017 12:15:19 -0500 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:40168 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753633AbdKNRPM (ORCPT ); Tue, 14 Nov 2017 12:15:12 -0500 Date: Tue, 14 Nov 2017 09:15:05 -0800 From: "Paul E. McKenney" To: Alan Stern Cc: Peter Zijlstra , parri.andrea@gmail.com, will.deacon@arm.com, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, linux-kernel@vger.kernel.org, elena.reshetova@intel.com Subject: Re: Prototype patch for Linux-kernel memory model Reply-To: paulmck@linux.vnet.ibm.com References: <20171114075925.apzztfksn4f4y5ue@hirez.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-TM-AS-GCONF: 00 x-cbid: 17111417-0056-0000-0000-000003E9A283 X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00008066; HX=3.00000241; KW=3.00000007; PH=3.00000004; SC=3.00000240; SDB=6.00945822; UDB=6.00477369; IPR=6.00726119; BA=6.00005690; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009; ZB=6.00000000; ZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00018013; XFM=3.00000015; UTC=2017-11-14 17:15:09 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17111417-0057-0000-0000-00000820C11D Message-Id: <20171114171505.GS3624@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-11-14_08:,, 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-1711140234 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Nov 14, 2017 at 10:19:21AM -0500, Alan Stern wrote: > On Tue, 14 Nov 2017, Peter Zijlstra wrote: > > > On Mon, Nov 13, 2017 at 10:40:31AM -0800, Paul E. McKenney wrote: > > > commit 82a1431549b4eae531e83298fd72cd0acea08540 > > > Author: Paul E. McKenney > > > Date: Mon Nov 13 10:30:07 2017 -0800 > > > > > > tools: Automate memory-barriers.txt; provide Linux-kernel memory model > > > > > > There is some reason to believe that Documentation/memory-barriers.txt > > > could use some help, and a major purpose of this patch is to provide > > > that help in the form of a design-time tool that can produce all valid > > > executions of a small fragment of concurrent Linux-kernel code, which is > > > called a "litmus test". This tool's functionality is roughly similar to > > > a full state-space search. Please note that this is a design-time tool, > > > not useful for regression testing. However, we hope that the underlying > > > Linux-kernel memory model will be incorporated into other tools capable > > > of analyzing large bodies of code for regression-testing purposes. > > > > > > The main tool is herd7, together with the linux-kernel.bell, > > > linux-kernel.cat, linux-kernel.cfg, linux-kernel.def, and lock.cat files > > > added by this patch. The herd7 executable takes the other files as input, > > > and all of these files collectively define the Linux-kernel memory memory > > > model. A brief description of each of these other files is provided > > > in the README file. Although this tool does have its limitations, > > > which are documented in the README file, it does improve on the version > > > reported on in the LWN series (https://lwn.net/Articles/718628/ and > > > https://lwn.net/Articles/720550/) by supporting locking and arithmetic, > > > including a much wider variety of read-modify-write atomic operations. > > > Please note that herd7 is not part of this submission, but is freely > > > available from http://diy.inria.fr/sources/index.html (and via "git" > > > at https://github.com/herd/herdtools7). > > > > > > A second tool is klitmus7, which converts litmus tests to loadable > > > kernel modules for direct testing. As with herd7, the klitmus7 > > > code is freely available from http://diy.inria.fr/sources/index.html > > > (and via "git" at https://github.com/herd/herdtools7). > > > > > > Of course, litmus tests are not always the best way to fully understand a > > > memory model, so this patch also includes Documentation/explanation.txt, > > > which describes the memory model in detail. In addition, > > > Documentation/recipes.txt provides example known-good and known-bad use > > > cases for those who prefer working by example. > > > > > > This patch also includes a few sample litmus tests, and a great many > > > more litmus tests are available at https://github.com/paulmckrcu/litmus. > > > > > > Signed-off-by: Alan Stern > > > Signed-off-by: Andrea Parri > > > Signed-off-by: Will Deacon > > > Signed-off-by: Peter Zijlstra > > > Signed-off-by: Boqun Feng > > > Signed-off-by: Nicholas Piggin > > > Signed-off-by: David Howells > > > Signed-off-by: Jade Alglave > > > Signed-off-by: Luc Maranget > > > Signed-off-by: "Paul E. McKenney" > > > Cc: > > > > So I think that SoB chains like that are utter crap. I think you meant > > to have all but the one from you be an Ack or similar. > > That's right. Git doesn't understand the concept of multiple > authorship. Accepted practice is to have one Signed-off-by line and a > bunch of Acked-by or Reviewed-by tags. > > When there's a chain of Signed-off-by tags, it means the first person > was the author, who submitted it to the second person's tree, and it > went from there to the third person's tree, etc. (which would imply > multiple levels of maintainers and submaintainers). I could add a paragraph just before the Signed-off-by/Acked-by/etc. block describing the roles and contributions, convert the people who were directly involved to Reviewed-by and everyone else to Acked-by (unless they explicitly provided a Reviewed-by). Would that work, or does someone have a better approach? Thanx, Paul