[Openmp-commits] [PATCH] D108046: tsan: Add new annotation functions to promote all accesses to atomic

Dmitry Vyukov via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Fri Aug 13 11:47:13 PDT 2021

dvyukov added a comment.

> I must admit that this patch as it is causes ~10% runtime increase for one of my benchmarks that doesn't even use this annotation. If the patch is in general ok, we can optimize the performance.

This is quite unfortunate. And it seems that the slow down is inherent to this approach. Or do you have some ideas of how to remove the overhead from the hot path?

What I wonder is: OpenMP should compile reductions (all? most?) to actual atomic operations, no? Or it should insert some kind of mutex lock/unlock around reduction code.
Either way if we just expose the actual situation to tsan, it should work the way you want.
This side-channel turning of non-atomic accesses into atomics looks strange. If the actual access are atomic, then we should just not lie to tsan that they are non-atomic in the place. And if the actual accesses are non-atomic, then we are masking real bugs.
What am I missing?

  rG LLVM Github Monorepo



More information about the Openmp-commits mailing list