[LTP] [PATCH] shmget03: fix test when some shm segments already exist

xuyang2018.jy@fujitsu.com xuyang2018.jy@fujitsu.com
Wed Jul 7 06:30:22 CEST 2021


Hi Li
> Hi Xu,
>
> xuyang2018.jy@fujitsu.com <mailto:xuyang2018.jy@fujitsu.com>
> <xuyang2018.jy@fujitsu.com <mailto:xuyang2018.jy@fujitsu.com>> wrote:
>
>     If we use this old format, then we can not ensure whether we trigger
>     the
>     ENOSPC errer correctly when reaching the expected nums.
>
>     So to avoid the existed memory segments error, I think we should alter
>     get_used_queus api to count the existed memory segments by adding a
>     file argument.
>
>
> Just as Alex pointed, if there are some resources be freedafter invoking
> get_used_queus, then the value of existed_cntwill be imprecise, how do
> you think that affects the test result?

We can move this count api and the create phase into verify* function, 
but still exist the chance to free resource after invoking get_used_queues.

We can't avoid it because /proc/sys/kernel/shmmni is designed for all 
user instead of the calling process.

I think it is common in ltp because user also can set a different value 
after we use ltp api to set proc value.

But if we only use for loop to trigger the ENOSPC error, it goes against 
the test's aim(see old shmget03.c, it also does the same thing as I do, 
it doesn't trigger error because it uses a big value than default 4096).

Since this case only wastes a little time when run, I don't think we 
should avoid rare race to give up to test the ENOSPC error when reaching 
the expected num.

Also, Let's listen advise from other maintainers.
@Cyril,Petr

Best Regards
Yang Xu

>
>
> --
> Regards,
> Li Wang


More information about the ltp mailing list