[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

llvm-svn: 224522
This commit is contained in:
Jay Foad 2014-12-18 16:24:01 +00:00
parent 0b5a8520ac
commit d348d7c757
1 changed files with 2 additions and 2 deletions

View File

@ -432,7 +432,7 @@ uptr GetRSS() {
buf[len] = 0; buf[len] = 0;
// The format of the file is: // The format of the file is:
// 1084 89 69 11 0 79 0 // 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; char *pos = buf;
// Skip the first number. // Skip the first number.
while (*pos >= '0' && *pos <= '9') while (*pos >= '0' && *pos <= '9')
@ -444,7 +444,7 @@ uptr GetRSS() {
uptr rss = 0; uptr rss = 0;
while (*pos >= '0' && *pos <= '9') while (*pos >= '0' && *pos <= '9')
rss = rss * 10 + *pos++ - '0'; rss = rss * 10 + *pos++ - '0';
return rss * 4096; return rss * GetPageSizeCached();
} }
static void GetArgsAndEnv(char*** argv, char*** envp) { static void GetArgsAndEnv(char*** argv, char*** envp) {