[LTP] [PATCH] mem: make use of save_restore to simplify code

Petr Vorel pvorel@suse.cz
Wed Jun 21 10:35:06 CEST 2023


Hi Li,

very nice cleanup, thanks!

...
> +++ b/testcases/kernel/mem/tunable/overcommit_memory.c
> @@ -70,7 +70,6 @@
>  #define EXPECT_FAIL		1

>  static char *R_opt;
> -static long old_overcommit_memory = -1;
>  static long old_overcommit_ratio = -1;
>  static long overcommit_ratio;
>  static long sum_total;
> @@ -90,16 +89,11 @@ static void setup(void)
>  	long mem_total, swap_total;
>  	struct rlimit lim;

> -	if (access(PATH_SYSVM "overcommit_memory", F_OK) == -1 ||
> -	    access(PATH_SYSVM "overcommit_ratio", F_OK) == -1)
> -		tst_brk(TCONF, "system doesn't support overcommit_memory");
Here is used TCONF instead of TBROK.
> -
>  	if (R_opt)
>  		overcommit_ratio = SAFE_STRTOL(R_opt, 0, LONG_MAX);
>  	else
>  		overcommit_ratio = DEFAULT_OVER_RATIO;

> -	old_overcommit_memory = get_sys_tune("overcommit_memory");
>  	old_overcommit_ratio = get_sys_tune("overcommit_ratio");

>  	mem_total = SAFE_READ_MEMINFO("MemTotal:");
> @@ -128,14 +122,6 @@ static void setup(void)
>  	tst_res(TINFO, "TotalBatchSize is %ld kB", total_batch_size);
>  }

> -static void cleanup(void)
> -{
> -	if (old_overcommit_memory != -1)
> -		set_sys_tune("overcommit_memory", old_overcommit_memory, 0);
Also third parameter of set_sys_tune() (check) is 0.

> -	if (old_overcommit_ratio != -1)
> -		set_sys_tune("overcommit_ratio", old_overcommit_ratio, 0);
> -}
> -
>  static void overcommit_memory_test(void)
>  {

> @@ -269,6 +255,10 @@ static struct tst_test test = {
>  		{}
>  	},
>  	.setup = setup,
> -	.cleanup = cleanup,
>  	.test_all = overcommit_memory_test,
> +	.save_restore = (const struct tst_path_val[]) {
> +		{"/proc/sys/vm/overcommit_memory", NULL, TST_SR_TBROK},
> +		{"/proc/sys/vm/overcommit_ratio", NULL, TST_SR_TBROK},
=> shouldn't be here TST_SR_TCONF instead of TST_SR_TBROK?

I also wonder if testcases/kernel/mem/tunable/max_map_count.c
can replace old_max_map_count with .save_restore (with TST_SR_TCONF).

Also testcases/kernel/mem/tunable/min_free_kbytes.c could use
.save_restore on panic_on_oom and min_free_kbytes, right?

But these two can be done as a separate effort.

Otherwise LGTM.
Reviewed-by: Petr Vorel <pvorel@suse.cz>

Kind regards,
Petr


More information about the ltp mailing list