[Libre-soc-bugs] [Bug 236] Atomics Standard writeup needed
bugzilla-daemon at libre-soc.org
bugzilla-daemon at libre-soc.org
Tue Jul 12 06:47:57 BST 2022
https://bugs.libre-soc.org/show_bug.cgi?id=236
--- Comment #24 from Jacob Lifshay <programmerjake at gmail.com> ---
(In reply to Luke Kenneth Casson Leighton from comment #20)
> (In reply to Jacob Lifshay from comment #19)
> > (In reply to Luke Kenneth Casson Leighton from comment #17)
> > > conclusion: oops. it's ok for amo* but not ok for amo_rw, that would
> > > require a drastic (multi-million-dollar impact) redesign of OpenCAPI.
> >
> > well, all that needs to happen is 8/16-bit atomics have to transfer a cache
> > block to the cache (if not already there) instead of using opencapi
> > atomics...
>
> you're missing the point.
i got your point, imho your point is just partially incorrect.
>
> there is no "all that needs to happen" here. i had not realised
> how tightly coupled lwat/stwat are into opencapi (i was half expecting
> it)
>
> IBM will not think in terms of "instead of using opencapi".
I was never advocating for "instead of using opencapi", it would just use a
different part of opencapi: the part that allows a cpu to obtain exclusive
access to a cache block (M/E states in the MESI cache coherence model).
> aq and rl (acquire and release) will need to be additional opcodes in
> opencapi.
no they won't, memory ordering is handled by the cpu deciding when to issue
memory operations:
acquire -- all following memory ops are delayed till after the atomic op is
executed.
release -- the atomic op is delayed till after all preceding memory ops are
executed.
acq_rel -- do both the above
seq_cst -- do both the above, as well as synchronize across the whole
system...essentially what the `sync` instruction already mostly does.
as an example, tilelink has no memory fence operations, and all amo operations
have no aq/rl bits in tilelink -- they're all handled by the cpu.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the libre-soc-bugs
mailing list