[LTP] [PATCH v2 3/3] lib: adjust the tmpfs size according to .dev_min_size and MemAvailable
Ralph Siemsen
ralph.siemsen@linaro.org
Mon Sep 27 21:09:51 CEST 2021
On Mon, Sep 27, 2021 at 11:12:20AM -0400, Ralph Siemsen wrote:
>
>However fallocate06 test is failing with OOM. It seems this one still
>contains .dev_min_size = 512 , should this be removed?
With .dev_min_size = 512 the test should be skipped on my system since I
have only ~120 MB of free RAM. But something is wrong with the test.
I added code to print the value returned by tst_available() and found
that it was a very very large number.
After investigation, the format string "%ld" seems to be the culprit.
--- a/lib/tst_memutils.c
+++ b/lib/tst_memutils.c
@@ -65,13 +65,15 @@ void tst_pollute_memory(size_t maxsize, int fillchar)
long long tst_available_mem(void)
{
- long long mem_available;
+ long long mem_available = 0;
- if (FILE_LINES_SCANF("/proc/meminfo", "MemAvailable: %ld",
+ if (FILE_LINES_SCANF("/proc/meminfo", "MemAvailable: %lld",
&mem_available)) {
mem_available = SAFE_READ_MEMINFO("MemFree:")
+ SAFE_READ_MEMINFO("Cached:");
}
+ tst_res(TINFO, "RFS: tst_available_mem returning %lld\n", mem_available);
+
return mem_available;
}
With the above change, tst_available() returns a reasonable value, and
the fallocate06 test is skipped:
tst_test.c:1436: TINFO: Testing on tmpfs
tst_test.c:937: TINFO: Skipping mkfs for TMPFS filesystem
tst_memutils.c:81: TINFO: RFS: tst_available_mem return 120592
tst_test.c:907: TINFO: RFS: tmpfs_size = 512 avail=120592
tst_test.c:911: TCONF: No enough memory for tmpfs use
Also, when I remove the .dev_min_size=512 from fallocate06, then it uses
the default size of 32MB, and the fallocate06 test runs and passes.
Regards,
Ralph
More information about the ltp
mailing list