@@ -19,4 +19,10 @@
*/
void tst_pollute_memory(size_t maxsize, int fillchar);
+/*
+ * Read the value of MemAvailable from /proc/meminfo, if no support on
+ * older kernels, return 'MemFree + Cached' for instead.
+ */
+long long tst_available_mem(void);
+
#endif /* TST_MEMUTILS_H__ */
@@ -62,3 +62,16 @@ void tst_pollute_memory(size_t maxsize, int fillchar)
free(map_blocks);
}
+
+long long tst_available_mem(void)
+{
+ long long mem_available;
+
+ if (FILE_LINES_SCANF("/proc/meminfo", "MemAvailable: %ld",
+ &mem_available)) {
+ mem_available = SAFE_READ_MEMINFO("MemFree:")
+ + SAFE_READ_MEMINFO("Cached:");
+ }
+
+ return mem_available;
+}
tst_available_mem helps to get the value of MemAvailable from /proc/meminfo, if no support on older kernels, return 'MemFree + Cached' for instead. Signed-off-by: Li Wang <liwang@redhat.com> --- include/tst_memutils.h | 6 ++++++ lib/tst_memutils.c | 13 +++++++++++++ 2 files changed, 19 insertions(+)