Received: by 10.223.185.116 with SMTP id b49csp2142834wrg; Thu, 15 Feb 2018 07:12:31 -0800 (PST) X-Google-Smtp-Source: AH8x227pMWiVRPblI5rnRnZFWk2MvoUq8zHfTQouUu0a8iJhOjiecZxGQFw9ak/vxNWng/h/1C+9 X-Received: by 10.167.131.10 with SMTP id t10mr2939040pfm.234.1518707551602; Thu, 15 Feb 2018 07:12:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518707551; cv=none; d=google.com; s=arc-20160816; b=0Tpo0tDQDIsya/q7+kZMQv0YFgk0UVC6H5zTEt4dTS74raOjG3rcauhnKSCcKkxsSB UoPSMd7PcIVde7P49GyZRH10iPdvxgKn9kgK4XlIMaWfqRHf/Fszsu6eSIHLIJHD1S9U gKNucapYOXU/l1maIWVnGZjQvHSzapImsv0EzBvcsn2G1vJCQF8X5PIA4LnYcaNg+AF9 wS3/+HSHHmgTe1s6CvKwM2XL+O+xZx8zxBRz3jPCHRNx4FCxt0uKZUzzOyz4Suo9L7UX Y420iD6O6NKu3eT5+VX7YCcIAlVH/pW4qIozir6KDmeGP4Ko61F4xWkrtbqovrIkv9NV CF4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:in-reply-to :subject:cc:to:from:date:arc-authentication-results; bh=6MBnnRiFYdXZ9ODFe3lYInQKUOypeDyffwZMgDcYUlg=; b=d/Z37mLmjYNW4cIL0zKkCwKIGFxX5Z6UY2faauwoLVLZaz8y1OV9Urp6qi/j+UdNgi Ef1BELKUjGbvc/uwfGUBKX3rK9A7M1iKW5ZMeblExfjSMfh1gr1U57tOj0VHm3Q72cAn LretY8SLMl3qQCtGfoHiSOHqphF7YiMfhMTO6AweNABSXtKnGX5F5oSsndpRbgmFcU+P TE7ufaXn1FU/V+V078vDT9zfnjiHbkRzViMH4ljGzR/Hi/eO4SD998CCCU2n8pxXsH6L sBOt5JjDL5D9cwKpZKFVcIEWyWrlNhqIpZqOlL9ydO53JRbLnCTIwzvE+MlnU6J0pz7r CvvQ== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g4-v6si1625221plp.818.2018.02.15.07.12.16; Thu, 15 Feb 2018 07:12:31 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1033724AbeBOPKE (ORCPT + 99 others); Thu, 15 Feb 2018 10:10:04 -0500 Received: from iolanthe.rowland.org ([192.131.102.54]:57364 "HELO iolanthe.rowland.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1033445AbeBOPKD (ORCPT ); Thu, 15 Feb 2018 10:10:03 -0500 Received: (qmail 4553 invoked by uid 2102); 15 Feb 2018 10:10:02 -0500 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 15 Feb 2018 10:10:02 -0500 Date: Thu, 15 Feb 2018 10:10:02 -0500 (EST) From: Alan Stern X-X-Sender: stern@iolanthe.rowland.org To: "Paul E. McKenney" cc: Akira Yokosawa , , , , , , , , , , , Patrick Bellasi Subject: Re: [PATCH v2] tools/memory-model: Make compat with herd7 7.47 ("-" -> "_") In-Reply-To: <20180214225238.GV3617@linux.vnet.ibm.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 14 Feb 2018, Paul E. McKenney wrote: > Let's see, examining the Z6 litmus tests and running on herd7 version 7.48: > > Z6.0+pooncelock+pooncelock+pombonce Sometimes 1 7 > Z6.0+pooncelock+poonceLock+pombonce Never 0 7 > Z6.0+pooncerelease+poacquirerelease+mbonceonce Sometimes 1 7 > > But Alan stated that the result of the test would be changed by one of > the patches in our "pending" list. I ran with all the patches currently > applied, so I am guessing that Alan was refering to one of the changes > that we have discussed but not yet created. > > Alan, enlightenment? Here's the relevant patch. It may need some manual adjustment, because it was not made against the files currently in the repository. Alan diff --git a/linux-kernel-hardware.cat b/linux-kernel-hardware.cat Index: memory-model/linux-kernel-hardware.cat =================================================================== --- memory-model.orig/linux-kernel-hardware.cat +++ memory-model/linux-kernel-hardware.cat @@ -31,7 +31,7 @@ let strong-fence = mb | gp (* Release Acquire *) let acq-po = [Acquire] ; po ; [M] let po-rel = [M] ; po ; [Release] -let rfi-rel-acq = [Release] ; rfi ; [Acquire] +let rel-rf-acq-po = [Release] ; rf ; [Acquire] ; po (**********************************) (* Fundamental coherence ordering *) @@ -57,13 +57,13 @@ let to-w = rwdep | addrpo | (overwrite & let rdw = po-loc & (fre ; rfe) let detour = po-loc & (coe ; rfe) let rrdep = addr | (dep ; rfi) -let to-r = rrdep | rfi-rel-acq -let fence = strong-fence | wmb | po-rel | rmb | acq-po +let to-r = rrdep +let fence = strong-fence | wmb | po-rel | rmb | acq-po | (rel-rf-acq-po & int) let ppo = to-r | to-w | fence | rdw | detour (* Happens Before *) let A-cumul(r) = rfe? ; r -let cumul-fence = A-cumul(strong-fence | po-rel) | wmb +let cumul-fence = A-cumul(strong-fence | po-rel) | wmb | rel-rf-acq-po let rec prop = (overwrite & ext)? ; cumul-fence ; hb* and hb = ppo | rfe | ((hb* ; prop) & int) Index: memory-model/linux-kernel.cat =================================================================== --- memory-model.orig/linux-kernel.cat +++ memory-model/linux-kernel.cat @@ -31,7 +31,7 @@ let strong-fence = mb | gp (* Release Acquire *) let acq-po = [Acquire] ; po ; [M] let po-rel = [M] ; po ; [Release] -let rfi-rel-acq = [Release] ; rfi ; [Acquire] +let rel-rf-acq-po = [Release] ; rf ; [Acquire] ; po (**********************************) (* Fundamental coherence ordering *) @@ -54,13 +54,13 @@ let rwdep = (dep | ctrl) ; [W] let overwrite = co | fr let to-w = rwdep | (overwrite & int) let rrdep = addr | (dep ; rfi) -let to-r = rrdep | rfi-rel-acq -let fence = strong-fence | wmb | po-rel | rmb | acq-po +let to-r = rrdep +let fence = strong-fence | wmb | po-rel | rmb | acq-po | (rel-rf-acq-po & int) let ppo = to-r | to-w | fence (* Propagation: Ordering from release operations and strong fences. *) let A-cumul(r) = rfe? ; r -let cumul-fence = A-cumul(strong-fence | po-rel) | wmb +let cumul-fence = A-cumul(strong-fence | po-rel) | wmb | rel-rf-acq-po let prop = (overwrite & ext)? ; cumul-fence* ; rfe? (*