[compiler-rt] r224522 - [Sanitizer] Fix GetRSS on Linux with non-4k pages
Jay Foad
jay.foad at gmail.com
Thu Dec 18 08:24:01 PST 2014
Author: foad
Date: Thu Dec 18 10:24:01 2014
New Revision: 224522
URL: http://llvm.org/viewvc/llvm-project?rev=224522&view=rev
Log:
[Sanitizer] Fix GetRSS on Linux with non-4k pages
Summary:
The numbers in /proc/self/statm are in pages, not in fixed 4k units.
This fixes Linux/hard_rss_limit_mb_test.cc on my PowerPC64 box which
has 64k pages.
Reviewers: kcc, willschm
Reviewed By: willschm
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D6717
Modified:
compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc
Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc?rev=224522&r1=224521&r2=224522&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc Thu Dec 18 10:24:01 2014
@@ -432,7 +432,7 @@ uptr GetRSS() {
buf[len] = 0;
// The format of the file is:
// 1084 89 69 11 0 79 0
- // We need the second number which is RSS in 4K units.
+ // We need the second number which is RSS in pages.
char *pos = buf;
// Skip the first number.
while (*pos >= '0' && *pos <= '9')
@@ -444,7 +444,7 @@ uptr GetRSS() {
uptr rss = 0;
while (*pos >= '0' && *pos <= '9')
rss = rss * 10 + *pos++ - '0';
- return rss * 4096;
+ return rss * GetPageSizeCached();
}
static void GetArgsAndEnv(char*** argv, char*** envp) {
More information about the llvm-commits
mailing list