[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