-
Notifications
You must be signed in to change notification settings - Fork 15.3k
[tsan][NFCI] Add note that GPU libraries may cause shadow mapping incompatibility #137835
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@llvm/pr-subscribers-compiler-rt-sanitizer Author: Thurston Dang (thurstond) Changes…ompatibility Full diff: https://github.com/llvm/llvm-project/pull/137835.diff 1 Files Affected:
diff --git a/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp b/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
index 373acd3d95d01..8c046e244ea39 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
+++ b/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
@@ -292,8 +292,12 @@ static void ReExecIfNeeded(bool ignore_heap) {
} else {
Printf(
"FATAL: ThreadSanitizer: memory layout is incompatible, "
- "even though ASLR is disabled.\n"
- "Please file a bug.\n");
+ "even though ASLR is disabled.\n");
+ Printf(
+ "FATAL: This error may occur for programs that use GPU libraries.");
+ Printf(
+ "FATAL: If your program does not use GPU libraries, please file a "
+ "TSan bug.\n");
DumpProcessMap();
Die();
}
|
| "Please file a bug.\n"); | ||
| "even though ASLR is disabled.\n"); | ||
| Printf( | ||
| "FATAL: This error may occur for programs that use GPU libraries."); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why the extra FATAL?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Users may grep/filter for 'FATAL' in the log, and it would be misleading if they only saw a subset of the lines.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we need to mention GPU?
I can see this can help some users, but it also can misleads other users, who has issue, but no GPU libraries.
If we can detect The Library, then maybe there is a value in the message.
What is % of total issues do we expect caused by GPU libraries?
We need a confidence that it's high to blame them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we need to mention GPU?
I can see this can help some users, but it also can misleads other users, who has issue, but no GPU libraries.
It won't mislead them if they have no GPU libraries - the next line is "If your program does not use GPU libraries, please file a TSan bug."
If we can detect The Library, then maybe there is a value in the message.
What is % of total issues do we expect caused by GPU libraries? We need a confidence that it's high to blame them.
So far, 100% of issues (sample size = 1) :-).
Most non-GPU libraries aren't mapping large host memory buffers before the shadow is allocated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You are changing the lib which maps a lot of memory.
Lets just print generic link to:
https://clang.llvm.org/docs/ThreadSanitizer.html#limitations
and add entry about your discovery
GPU libraries may map a significant chunk of host memory that overlaps with the expected shadow mappings