[LTP] [PATCH] syscalls/mallinfo01: Disable free fastbin blocks

Martin Doucha mdoucha@suse.cz
Thu May 13 11:05:40 CEST 2021


Hello,

On 13. 05. 21 10:54, Yang Xu wrote:
> When using malloc to allocate small space, it will use fastbin block firstly if
> we have free fastbin free blocks, it is more quickly.
> In here, we just test oldblks free chunks, it is the number of ordinary
> (i.e. non-fastbin) free blocks. So use mallopt(M_MXFAST, 0) to disable
> free fastbin block.
> 
> Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com>
> ---
>  testcases/kernel/syscalls/mallinfo/mallinfo01.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/testcases/kernel/syscalls/mallinfo/mallinfo01.c b/testcases/kernel/syscalls/mallinfo/mallinfo01.c
> index 48fce0132..4e10e352e 100644
> --- a/testcases/kernel/syscalls/mallinfo/mallinfo01.c
> +++ b/testcases/kernel/syscalls/mallinfo/mallinfo01.c
> @@ -64,6 +64,8 @@ static void setup(void)
>  {
>  	if (sizeof(info1.arena) != sizeof(int))
>  		tst_res(TFAIL, "The member of mallinfo struct is not int");
> +	if (mallopt(M_MXFAST, 0) == 0)
> +		tst_res(TFAIL, "mallopt(M_MXFAST, 0) failed");
>  
>  	info1 = mallinfo();
>  	print_mallinfo("Start", &info1);
> 

Sorry but this does not fix the problem. The failing subtest assumes that:
- malloc() will never increase ordblks
- free() will allways increase ordblks

mallinfo01 is failing because both of these assumptions are wrong.
Disabling fastbin block usage will not fix the failure.

-- 
Martin Doucha   mdoucha@suse.cz
QA Engineer for Software Maintenance
SUSE LINUX, s.r.o.
CORSO IIa
Krizikova 148/34
186 00 Prague 8
Czech Republic


More information about the ltp mailing list