aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/ProcStats.cpp
diff options
context:
space:
mode:
authorGravatar mtklein <mtklein@chromium.org>2015-04-30 07:35:27 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-04-30 07:35:28 -0700
commitf1d6df772ee241c67e29b0d6598576e38551a716 (patch)
tree251b7e198b37d4f786a0a10403d95d15e2a727da /tools/ProcStats.cpp
parentd75c466ef57ef4dbdf96390b2c01121e4de36f23 (diff)
Looks like rssPages * pageSize is overflowing on 32-bit Linux...
... resulting in apparently negative memory usage: (-2040/2058MB 5867) 1.81s serialize-8888 skp top25desk_google_com_calendar_.skp Turns out long is 32-bit there, long long is 64-bit. NOTREECHECKS=true BUG=skia: Review URL: https://codereview.chromium.org/1117923002
Diffstat (limited to 'tools/ProcStats.cpp')
-rw-r--r--tools/ProcStats.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/tools/ProcStats.cpp b/tools/ProcStats.cpp
index fc9da23011..a772db4226 100644
--- a/tools/ProcStats.cpp
+++ b/tools/ProcStats.cpp
@@ -46,10 +46,10 @@
#include <stdio.h>
int sk_tools::getCurrResidentSetSizeMB() {
const long pageSize = sysconf(_SC_PAGESIZE);
- long rssPages = 0;
+ long long rssPages = 0;
if (FILE* statm = fopen("/proc/self/statm", "r")) {
// statm contains: program-size rss shared text lib data dirty, all in page counts.
- int rc = fscanf(statm, "%*d %ld", &rssPages);
+ int rc = fscanf(statm, "%*d %lld", &rssPages);
fclose(statm);
if (rc != 1) {
return -1;