A formal write-up of the c++ Atomics protocol is needed, to be proposed to the OpenPOWER Foundation. This will be useful for OpenPOWER as well.
See this thread for reason we need something other than Power's already existing atomic instructions: http://lists.libre-riscv.org/pipermail/libre-riscv-dev/2019-October/003085.html