[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <41bc01fa-ce02-4005-a3c2-abfabe1c6927@huaweicloud.com>
Date: Mon, 27 May 2024 15:40:13 +0200
From: Jonas Oberhauser <jonas.oberhauser@...weicloud.com>
To: Andrea Parri <parri.andrea@...il.com>,
Hernan Ponce de Leon <hernan.poncedeleon@...weicloud.com>
Cc: stern@...land.harvard.edu, will@...nel.org, peterz@...radead.org,
boqun.feng@...il.com, npiggin@...il.com, dhowells@...hat.com,
j.alglave@....ac.uk, luc.maranget@...ia.fr, paulmck@...nel.org,
akiyks@...il.com, dlustig@...dia.com, joel@...lfernandes.org,
linux-kernel@...r.kernel.org, linux-arch@...r.kernel.org
Subject: Re: [PATCH] tools/memory-model: Document herd7 (internal)
representation
Am 5/27/2024 um 3:28 PM schrieb Andrea Parri:
>>> + | smp_store_mb | W[once] ->po F[mb] |
>>
>> I expect this one to be hard-coded in herd7 source code, but I cannot find
>> it. Can you give me a pointer?
>
> smp_store_mb() is currently mapped to { __store{once}(X,V); __fence{mb}; } in
> the .def file, so it's semantically equivalent to "WRITE_ONCE(); smp_mb();".
By the way, I experimented a little with these kind of mappings to see
if we can just explicitly encode the mapping there. E.g., I had an idea
to use
{ __fence{mb-successful-rmw}; __cmpxchg{once}...;
__fence{mb-successful-rmw}; }
for defining (almost) the current mapping of cmpxchg explicitly.
But none of the changes I made were accepted by herd7.
Do you know how the syntax works?
jonas
Powered by blists - more mailing lists