lxc: fuse: Fill in MemAvailable for /proc/meminfo

'free' on Fedora 23 will use MemAvailable to calculate its 'available'
field, but we are passing through the host's value. Set it to match
MemFree, which is what 'free' will do for older linux that don't have
MemAvailable

https://bugzilla.redhat.com/show_bug.cgi?id=1300781
(cherry picked from commit c7be484d1136834614089c9a74a3818594852f24)
This commit is contained in:
Cole Robinson 2016-01-21 13:18:04 -05:00
parent a6e4fe019f
commit cd199c9bf7

View File

@ -174,6 +174,14 @@ static int lxcProcReadMeminfo(char *hostpath, virDomainDefPtr def,
virDomainDefGetMemoryActual(def))) {
virBufferAsprintf(new_meminfo, "MemFree: %8llu kB\n",
(meminfo.memtotal - meminfo.memusage));
} else if (STREQ(line, "MemAvailable") &&
(virMemoryLimitIsSet(def->mem.hard_limit) ||
virDomainDefGetMemoryActual(def))) {
/* MemAvailable is actually MemFree + SRReclaimable +
some other bits, but MemFree is the closest approximation
we have */
virBufferAsprintf(new_meminfo, "MemAvailable: %8llu kB\n",
(meminfo.memtotal - meminfo.memusage));
} else if (STREQ(line, "Buffers")) {
virBufferAsprintf(new_meminfo, "Buffers: %8d kB\n", 0);
} else if (STREQ(line, "Cached")) {