Message ID | 1620896054-26151-1-git-send-email-xuyang2018.jy@fujitsu.com |
---|---|
State | Rejected |
Headers | show |
Series | syscalls/mallinfo01: Disable free fastbin blocks | expand |
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.
Hi!
> I don't have a proper fix. So you can remove it from runtest file.
I've pushed a patch that removes it from the runtest file, thanks.
Hi Martin I don't have a proper fix. So you can remove it from runtest file. Best Regards Yang Xu > 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. >
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);
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(+)