diff mbox series

msgget03: Set custom queue limit

Message ID 20220704114523.10409-1-mdoucha@suse.cz
State Accepted
Headers show
Series msgget03: Set custom queue limit | expand

Commit Message

Martin Doucha July 4, 2022, 11:45 a.m. UTC
The runtime limit patchset has reduced default test timeout to 30 seconds
which is not enough for msgget03 on some archs. Set custom queue count
limit to make the test faster.

Signed-off-by: Martin Doucha <mdoucha@suse.cz>
---
 testcases/kernel/syscalls/ipc/msgget/msgget03.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

Comments

Yang Xu July 6, 2022, 9:14 a.m. UTC | #1
Hi Martin

I don't have objection for this patch.

But I think using system custom max value is more meaningful. How about
setting timeout to 5min, I think it is enough.

Also shmget03 uses same logic, so I guess we need to modify it too.

Best Regards
Yang Xu
> The runtime limit patchset has reduced default test timeout to 30 seconds
> which is not enough for msgget03 on some archs. Set custom queue count
> limit to make the test faster.
>
> Signed-off-by: Martin Doucha<mdoucha@suse.cz>
> ---
>   testcases/kernel/syscalls/ipc/msgget/msgget03.c | 9 +++++++--
>   1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/ipc/msgget/msgget03.c b/testcases/kernel/syscalls/ipc/msgget/msgget03.c
> index 711886e17..2257ae0f9 100644
> --- a/testcases/kernel/syscalls/ipc/msgget/msgget03.c
> +++ b/testcases/kernel/syscalls/ipc/msgget/msgget03.c
> @@ -41,7 +41,8 @@ static void setup(void)
>   	tst_res(TINFO, "Current environment %d message queues are already in use",
>   		used_cnt);
>
> -	SAFE_FILE_SCANF("/proc/sys/kernel/msgmni", "%i",&maxmsgs);
> +	maxmsgs = used_cnt + 32;
> +	SAFE_FILE_PRINTF("/proc/sys/kernel/msgmni", "%i", maxmsgs);
>
>   	queues = SAFE_MALLOC((maxmsgs - used_cnt) * sizeof(int));
>
> @@ -73,5 +74,9 @@ static struct tst_test test = {
>   	.needs_tmpdir = 1,
>   	.setup = setup,
>   	.cleanup = cleanup,
> -	.test_all = verify_msgget
> +	.test_all = verify_msgget,
> +	.save_restore = (const struct tst_path_val[]){
> +		{"/proc/sys/kernel/msgmni", NULL},
> +		{}
> +	}
>   };
Martin Doucha Sept. 20, 2022, 2:04 p.m. UTC | #2
On 06. 07. 22 11:14, xuyang2018.jy@fujitsu.com wrote:
> Hi Martin
> 
> I don't have objection for this patch.
> 
> But I think using system custom max value is more meaningful. How about
> setting timeout to 5min, I think it is enough.

The system max value is an arbitrary number that can be increased up to 
complete memory exhaustion. There's not much difference between checking 
the ENOSPC error quickly with low custom limit and running the test for 
2 minutes with the default limit.

> Also shmget03 uses same logic, so I guess we need to modify it too.

shmget03 is significantly faster on all archs, there's no risk of 
timeout at the moment.
Richard Palethorpe Oct. 10, 2022, 11:57 a.m. UTC | #3
Hello,

Merged!

Martin Doucha <mdoucha@suse.cz> writes:

> The runtime limit patchset has reduced default test timeout to 30 seconds
> which is not enough for msgget03 on some archs. Set custom queue count
> limit to make the test faster.
>
> Signed-off-by: Martin Doucha <mdoucha@suse.cz>
> ---
>  testcases/kernel/syscalls/ipc/msgget/msgget03.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/ipc/msgget/msgget03.c b/testcases/kernel/syscalls/ipc/msgget/msgget03.c
> index 711886e17..2257ae0f9 100644
> --- a/testcases/kernel/syscalls/ipc/msgget/msgget03.c
> +++ b/testcases/kernel/syscalls/ipc/msgget/msgget03.c
> @@ -41,7 +41,8 @@ static void setup(void)
>  	tst_res(TINFO, "Current environment %d message queues are already in use",
>  		used_cnt);
>  
> -	SAFE_FILE_SCANF("/proc/sys/kernel/msgmni", "%i", &maxmsgs);
> +	maxmsgs = used_cnt + 32;
> +	SAFE_FILE_PRINTF("/proc/sys/kernel/msgmni", "%i", maxmsgs);
>  
>  	queues = SAFE_MALLOC((maxmsgs - used_cnt) * sizeof(int));
>  
> @@ -73,5 +74,9 @@ static struct tst_test test = {
>  	.needs_tmpdir = 1,
>  	.setup = setup,
>  	.cleanup = cleanup,
> -	.test_all = verify_msgget
> +	.test_all = verify_msgget,
> +	.save_restore = (const struct tst_path_val[]){
> +		{"/proc/sys/kernel/msgmni", NULL},
> +		{}
> +	}
>  };
> -- 
> 2.36.1
diff mbox series

Patch

diff --git a/testcases/kernel/syscalls/ipc/msgget/msgget03.c b/testcases/kernel/syscalls/ipc/msgget/msgget03.c
index 711886e17..2257ae0f9 100644
--- a/testcases/kernel/syscalls/ipc/msgget/msgget03.c
+++ b/testcases/kernel/syscalls/ipc/msgget/msgget03.c
@@ -41,7 +41,8 @@  static void setup(void)
 	tst_res(TINFO, "Current environment %d message queues are already in use",
 		used_cnt);
 
-	SAFE_FILE_SCANF("/proc/sys/kernel/msgmni", "%i", &maxmsgs);
+	maxmsgs = used_cnt + 32;
+	SAFE_FILE_PRINTF("/proc/sys/kernel/msgmni", "%i", maxmsgs);
 
 	queues = SAFE_MALLOC((maxmsgs - used_cnt) * sizeof(int));
 
@@ -73,5 +74,9 @@  static struct tst_test test = {
 	.needs_tmpdir = 1,
 	.setup = setup,
 	.cleanup = cleanup,
-	.test_all = verify_msgget
+	.test_all = verify_msgget,
+	.save_restore = (const struct tst_path_val[]){
+		{"/proc/sys/kernel/msgmni", NULL},
+		{}
+	}
 };