Bug-fix: guarantee atomicity for FOP and GACC.
FOP, CAS and GACC are atomic "read-modify-write" operations,
which means when the target window is defined on a SHM region,
we need inter-process lock to guarantee the atomicity of the
entire "read+OP". The current implementation is correct for
SHM-based RMA operations, but not correct for AM-based RMA
operations: for SHM-based operations, it protects the entire
"read+OP", but for AM-based operations, it only protects the
"OP" part.
This patch fixes this issue by protecting the memory copy to
temporary buffer and computation together for AM-based operations.
Fix ticket 2226
Signed-off-by:
Pavan Balaji <balaji@anl.gov>
Please register or sign in to comment