[LTP] [PATCH v1] min_free_kbytes: Handle transient memory drops in check_monitor
Petr Vorel
pvorel@suse.cz
Tue May 26 16:14:11 CEST 2026
Hi Wei,
...
> while (!end) {
> memfree = SAFE_READ_MEMINFO("MemFree:");
> tune = TST_SYS_CONF_LONG_GET(MIN_FREE_KBYTES);
> if (memfree < tune) {
> - tst_res(TINFO, "MemFree is %lu kB, "
> - "min_free_kbytes is %lu kB", memfree, tune);
> - tst_res(TFAIL, "MemFree < min_free_kbytes");
> + /*
> + * Give it some time to reclaim. The kernel should keep
> + * MemFree above min_free_kbytes, but transient drops
> + * are possible under high pressure.
> + */
> + for (i = 1; i < 1024; i *= 2) {
> + usleep(i * 1000);
> + memfree = SAFE_READ_MEMINFO("MemFree:");
> + if (memfree >= tune)
> + break;
> + }
> +
> + if (memfree < tune) {
> + tst_res(TINFO, "MemFree is %lu kB, min_free_kbytes is %lu kB",
> + memfree, tune);
> + tst_res(TFAIL, "MemFree < min_free_kbytes");
nit: TINFO message followed by TFAIL message is not optimal. I'd either always
print TINFO:
tst_res(TINFO, "MemFree is %lu kB, min_free_kbytes is %lu kB",
memfree, tune);
if (memfree < tune) {
tst_res(TFAIL, "MemFree < min_free_kbytes");
or combine info in the error message:
if (memfree < tune) {
tst_res(TFAIL, "MemFree %lu kB < min_free_kbytes %lu kB", memfree, tune);
Kind regards,
Petr
More information about the ltp
mailing list