summaryrefslogtreecommitdiffstats
path: root/base
diff options
context:
space:
mode:
Diffstat (limited to 'base')
-rw-r--r--base/process_util.h9
-rw-r--r--base/process_util_linux.cc36
2 files changed, 10 insertions, 35 deletions
diff --git a/base/process_util.h b/base/process_util.h
index 5f88c62..3d9b7d1 100644
--- a/base/process_util.h
+++ b/base/process_util.h
@@ -653,14 +653,7 @@ class BASE_API ProcessMetrics {
DISALLOW_COPY_AND_ASSIGN(ProcessMetrics);
};
-#if defined(OS_LINUX)
-// Retrieves data from /proc/meminfo about system-wide memory consumption.
-// Values are in KB. Returns true on success.
-BASE_API bool GetSystemMemoryInfo(int* total_kb, int* free_kb, int* buffers_kb,
- int* cache_kb, int* shmem_kb);
-#endif
-
-// Returns the memory committed by the system in KBytes.
+// Returns the memory commited by the system in KBytes.
// Returns 0 if it can't compute the commit charge.
BASE_API size_t GetSystemCommitCharge();
diff --git a/base/process_util_linux.cc b/base/process_util_linux.cc
index 3ea383f..aabd201 100644
--- a/base/process_util_linux.cc
+++ b/base/process_util_linux.cc
@@ -562,8 +562,7 @@ const size_t kMemCacheIndex = 10;
} // namespace
-bool GetSystemMemoryInfo(int* mem_total, int* mem_free, int* mem_buffers,
- int* mem_cache, int* shmem) {
+size_t GetSystemCommitCharge() {
// Synchronously reading files in /proc is safe.
base::ThreadRestrictions::ScopedAllowIO allow_io;
@@ -572,7 +571,7 @@ bool GetSystemMemoryInfo(int* mem_total, int* mem_free, int* mem_buffers,
std::string meminfo_data;
if (!file_util::ReadFileToString(meminfo_file, &meminfo_data)) {
LOG(WARNING) << "Failed to open /proc/meminfo.";
- return false;
+ return 0;
}
std::vector<std::string> meminfo_fields;
SplitStringAlongWhitespace(meminfo_data, &meminfo_fields);
@@ -580,7 +579,7 @@ bool GetSystemMemoryInfo(int* mem_total, int* mem_free, int* mem_buffers,
if (meminfo_fields.size() < kMemCacheIndex) {
LOG(WARNING) << "Failed to parse /proc/meminfo. Only found " <<
meminfo_fields.size() << " fields.";
- return false;
+ return 0;
}
DCHECK_EQ(meminfo_fields[kMemTotalIndex-1], "MemTotal:");
@@ -588,30 +587,13 @@ bool GetSystemMemoryInfo(int* mem_total, int* mem_free, int* mem_buffers,
DCHECK_EQ(meminfo_fields[kMemBuffersIndex-1], "Buffers:");
DCHECK_EQ(meminfo_fields[kMemCacheIndex-1], "Cached:");
- base::StringToInt(meminfo_fields[kMemTotalIndex], mem_total);
- base::StringToInt(meminfo_fields[kMemFreeIndex], mem_free);
- base::StringToInt(meminfo_fields[kMemBuffersIndex], mem_buffers);
- base::StringToInt(meminfo_fields[kMemCacheIndex], mem_cache);
-#if defined(OS_CHROMEOS)
- // Chrome OS has a tweaked kernel that allows us to query Shmem, which is
- // usually video memory otherwise invisible to the OS. Unfortunately, the
- // meminfo format varies on different hardware so we have to search for the
- // string. It always appears after "Cached:".
- for (size_t i = kMemCacheIndex+2; i < meminfo_fields.size(); i += 3) {
- if (meminfo_fields[i] == "Shmem:") {
- base::StringToInt(meminfo_fields[i+1], shmem);
- break;
- }
- }
-#endif
- return true;
-}
+ int mem_total, mem_free, mem_buffers, mem_cache;
+ base::StringToInt(meminfo_fields[kMemTotalIndex], &mem_total);
+ base::StringToInt(meminfo_fields[kMemFreeIndex], &mem_free);
+ base::StringToInt(meminfo_fields[kMemBuffersIndex], &mem_buffers);
+ base::StringToInt(meminfo_fields[kMemCacheIndex], &mem_cache);
-size_t GetSystemCommitCharge() {
- int total, free, buffers, cache, shmem;
- if (!GetSystemMemoryInfo(&total, &free, &buffers, &cache, &shmem))
- return 0;
- return total - free - buffers - cache;
+ return mem_total - mem_free - mem_buffers - mem_cache;
}
namespace {