Fix available memory extraction on Linux (#26764) (#26938)
authoragoretsky <agoretsky15@gmail.com>
Mon, 14 Oct 2019 17:03:12 +0000 (20:03 +0300)
committerWilliam Godbe <wigodbe@microsoft.com>
Mon, 14 Oct 2019 17:03:12 +0000 (10:03 -0700)
commitff243be899fae73904a1bf5401ecb93b6e80d85c
tree5dce2eb3115b4972ca9fa8ced3efa72aaf745fba
parente38f3722a98ea66b805f388cd613ac587a44d7d2
Fix available memory extraction on Linux (#26764) (#26938)

* Fix available memory extraction on Linux

The GlobalMemoryStatusEx in PAL is returning number of free physical pages in
the ullAvailPhys member. But there are additional pages that are allocated
as buffers and caches that get released when there is a memory pressure and
thus they are effectively available too.

This change extracts the available memory on Linux from the /proc/meminfo
MemAvailable row, which is reported by the kernel as the most precise
amount of available memory.
src/gc/unix/config.h.in
src/gc/unix/configure.cmake
src/gc/unix/gcenv.unix.cpp
src/pal/src/misc/sysinfo.cpp