Chromium Code Reviews| Index: base/sys_info_linux.cc |
| diff --git a/base/sys_info_linux.cc b/base/sys_info_linux.cc |
| index 298d245ecf580da4d8790f5dc47f851c0208ab5d..803a07536ef2d79862fd0c670d2699512db3aef1 100644 |
| --- a/base/sys_info_linux.cc |
| +++ b/base/sys_info_linux.cc |
| @@ -13,6 +13,7 @@ |
| #include "base/lazy_instance.h" |
| #include "base/logging.h" |
| #include "base/numerics/safe_conversions.h" |
| +#include "base/process/process_metrics.h" |
| #include "base/strings/string_number_conversions.h" |
| #include "base/sys_info_internal.h" |
| #include "build/build_config.h" |
| @@ -42,13 +43,24 @@ base::LazyInstance< |
| namespace base { |
| // static |
| -int64_t SysInfo::AmountOfAvailablePhysicalMemory() { |
| - return AmountOfMemory(_SC_AVPHYS_PAGES); |
| +int64_t SysInfo::AmountOfPhysicalMemory() { |
| + return g_lazy_physical_memory.Get().value(); |
| } |
| // static |
| -int64_t SysInfo::AmountOfPhysicalMemory() { |
| - return g_lazy_physical_memory.Get().value(); |
| +int64_t SysInfo::AmountOfAvailablePhysicalMemory() { |
| + SystemMemoryInfoKB info; |
| + if (!GetSystemMemoryInfo(&info)) { |
| + NOTREACHED(); |
| + return 0; |
| + } |
| + // See details here: |
| + // https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773 |
| + return info.available != 0 |
| + ? static_cast<int64_t>(info.available - info.active_file) * 1024 |
| + : static_cast<int64_t>(info.free + info.reclaimable + |
| + info.inactive_file) * |
|
Primiano Tucci (use gerrit)
2017/02/15 11:18:33
is this git cl formatted? sounds a bit strange tha
Michael K. (Yandex Team)
2017/02/17 13:38:48
I've checked: Yes, clang-format wants it in that w
|
| + 1024; |
| } |
| // static |