Skip to content

Commit

Permalink
Fix check-llvm on kernel 4.9+ with asan or msan
Browse files Browse the repository at this point in the history
Summary:
Before https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=v4.9.46&id=84638335900f1995495838fe1bd4870c43ec1f67
test worked because memory allocated with mmap was not counted against RLIMIT_DATA.

Reviewers: eugenis

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D37366

llvm-svn: 312303
  • Loading branch information
vitalybuka committed Sep 1, 2017
1 parent 3c84b57 commit 7c89b4b
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions llvm/tools/bugpoint/bugpoint.cpp
Expand Up @@ -50,10 +50,10 @@ static cl::opt<unsigned> TimeoutValue(
cl::desc("Number of seconds program is allowed to run before it "
"is killed (default is 300s), 0 disables timeout"));

static cl::opt<int>
MemoryLimit("mlimit", cl::init(-1), cl::value_desc("MBytes"),
cl::desc("Maximum amount of memory to use. 0 disables check."
" Defaults to 400MB (800MB under valgrind)."));
static cl::opt<int> MemoryLimit(
"mlimit", cl::init(-1), cl::value_desc("MBytes"),
cl::desc("Maximum amount of memory to use. 0 disables check. Defaults to "
"400MB (800MB under valgrind, 0 with sanitizers)."));

static cl::opt<bool>
UseValgrind("enable-valgrind",
Expand Down Expand Up @@ -169,6 +169,12 @@ int main(int argc, char **argv) {
MemoryLimit = 800;
else
MemoryLimit = 400;
#if (LLVM_ADDRESS_SANITIZER_BUILD || LLVM_MEMORY_SANITIZER_BUILD || \
LLVM_THREAD_SANITIZER_BUILD)
// Starting from kernel 4.9 memory allocated with mmap is counted against
// RLIMIT_DATA. Sanitizers need to allocate tens of terabytes for shadow.
MemoryLimit = 0;
#endif
}

BugDriver D(argv[0], FindBugs, TimeoutValue, MemoryLimit, UseValgrind,
Expand Down

0 comments on commit 7c89b4b

Please sign in to comment.