[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200717142632.GA1147780@rowland.harvard.edu>
Date: Fri, 17 Jul 2020 10:26:32 -0400
From: Alan Stern <stern@...land.harvard.edu>
To: Eric Biggers <ebiggers@...nel.org>
Cc: linux-kernel@...r.kernel.org, linux-arch@...r.kernel.org,
"Paul E . McKenney" <paulmck@...nel.org>,
linux-fsdevel@...r.kernel.org, Akira Yokosawa <akiyks@...il.com>,
Andrea Parri <parri.andrea@...il.com>,
Boqun Feng <boqun.feng@...il.com>,
Daniel Lustig <dlustig@...dia.com>,
"Darrick J . Wong" <darrick.wong@...cle.com>,
Dave Chinner <david@...morbit.com>,
David Howells <dhowells@...hat.com>,
Jade Alglave <j.alglave@....ac.uk>,
Luc Maranget <luc.maranget@...ia.fr>,
Nicholas Piggin <npiggin@...il.com>,
Peter Zijlstra <peterz@...radead.org>,
Will Deacon <will@...nel.org>
Subject: Re: [PATCH] tools/memory-model: document the "one-time init" pattern
On Thu, Jul 16, 2020 at 09:44:27PM -0700, Eric Biggers wrote:
...
> +Note that when the cmpxchg_release() fails due to another task already
> +having done it, a second smp_load_acquire() is required, since we still
> +need to acquire the data that the other task released.
When people talk about releasing data, they usually mean something
different from what you mean here (i.e., they usually mean
deallocating). Likewise, acquiring data (to the extent that it means
anything) would generally be regarded as meaning a simple read. I
recommend changing the last phrase above to:
... since we still need a load-acquire of the data on which
the other task performed a store-release.
Alan Stern
Powered by blists - more mailing lists