TSan: Rationale for having deadlock detection off by default

Hi,

I am trying to understand why deadlock detection is off by default in ThreadSanitizer.

Considerations that come to mind:

1) Performance
2) Experimental functionality/stability. It simply did not graduate to “proper" feature status yet.
3) False positives/known issues that cannot easily be fixed.
4) Don’t overburden the user with too many warnings, let them opt-in for more checking at their own pace.
5) ?

To clarify, I am asking about the functionality that can be activated via TSAN_OPTIONS=detect_deadlocks=1, not the standalone deadlock detector.

Cheers,
Julian