[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:
parent
0b5a8520ac
commit
d348d7c757
|
@ -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) {
|
||||||
|
|
Loading…
Reference in New Issue