summaryrefslogtreecommitdiffstats
path: root/base/process_util_linux.cc
diff options
context:
space:
mode:
Diffstat (limited to 'base/process_util_linux.cc')
-rw-r--r--base/process_util_linux.cc32
1 files changed, 21 insertions, 11 deletions
diff --git a/base/process_util_linux.cc b/base/process_util_linux.cc
index 1099fec..11937f0 100644
--- a/base/process_util_linux.cc
+++ b/base/process_util_linux.cc
@@ -623,7 +623,9 @@ SystemMemoryInfoKB::SystemMemoryInfoKB()
inactive_anon(0),
active_file(0),
inactive_file(0),
- shmem(0) {
+ shmem(0),
+ gem_objects(-1),
+ gem_size(-1) {
}
bool GetSystemMemoryInfo(SystemMemoryInfoKB* meminfo) {
@@ -678,11 +680,14 @@ bool GetSystemMemoryInfo(SystemMemoryInfoKB* meminfo) {
}
#endif
- // Check for gem data and report if present.
+ // Check for graphics memory data and report if present. Synchronously
+ // reading files in /sys is fast.
+#if defined(ARCH_CPU_ARM_FAMILY)
+ FilePath geminfo_file("/sys/kernel/debug/dri/0/exynos_gem_objects");
+#else
FilePath geminfo_file("/sys/kernel/debug/dri/0/i915_gem_objects");
+#endif
std::string geminfo_data;
- FilePath mali_memory_file("/sys/devices/platform/mali.0/memory");
- std::string mali_memory_data;
meminfo->gem_objects = -1;
meminfo->gem_size = -1;
if (file_util::ReadFileToString(geminfo_file, &geminfo_data)) {
@@ -695,15 +700,20 @@ bool GetSystemMemoryInfo(SystemMemoryInfoKB* meminfo) {
meminfo->gem_objects = gem_objects;
meminfo->gem_size = gem_size;
}
- } else {
- if (file_util::ReadFileToString(mali_memory_file, &mali_memory_data)) {
- long long mali_size = -1;
- int num_res = sscanf(mali_memory_data.c_str(), "%lld bytes", &mali_size);
- if (num_res == 1)
- meminfo->gem_size = mali_size;
- }
+ }
+#if defined(ARCH_CPU_ARM_FAMILY)
+ // Incorporate Mali graphics memory if present.
+ FilePath mali_memory_file("/sys/devices/platform/mali.0/memory");
+ std::string mali_memory_data;
+ if (file_util::ReadFileToString(mali_memory_file, &mali_memory_data)) {
+ long long mali_size = -1;
+ int num_res = sscanf(mali_memory_data.c_str(), "%lld bytes", &mali_size);
+ if (num_res == 1)
+ meminfo->gem_size += mali_size;
}
+#endif // defined(ARCH_CPU_ARM_FAMILY)
+
return true;
}