[LTP] [PATCH] min_kver: Add kernel version requestions
zhaogongyi
zhaogongyi@huawei.com
Tue Mar 30 10:18:45 CEST 2021
Hi Yang,
I have seen the function definition in lapi/preadv2.h or lapi/pwritev2.h, but it seems not enough.
I run the testcases preadv201 and pwritev201 on my qemu, kernel version 4.4, arch is armeb, and report as follows:
# ./preadv201
tst_test.c:1294: TINFO: Timeout per run is 0h 05m 00s
preadv201.c:91: TPASS: preadv2() read 64 bytes with content 'a' expectedly
preadv201.c:91: TPASS: preadv2() read 64 bytes with content 'a' expectedly
preadv201.c:91: TPASS: preadv2() read 32 bytes with content 'b' expectedly
preadv201.c:64: TFAIL: preadv2() failed: EINVAL (22)
preadv201.c:64: TFAIL: preadv2() failed: EINVAL (22)
preadv201.c:64: TFAIL: preadv2() failed: EINVAL (22)
Summary:
passed 3
failed 3
broken 0
skipped 0
warnings 0
# ./pwritev201
tst_test.c:1294: TINFO: Timeout per run is 0h 05m 00s
pwritev201.c:96: TPASS: pwritev2() wrote 64 bytes successfully with content 'a' expectedly
pwritev201.c:96: TPASS: pwritev2() wrote 64 bytes successfully with content 'a' expectedly
pwritev201.c:96: TPASS: pwritev2() wrote 64 bytes successfully with content 'a' expectedly
pwritev201.c:62: TFAIL: pwritev2() failed: EINVAL (22)
pwritev201.c:62: TFAIL: pwritev2() failed: EINVAL (22)
pwritev201.c:62: TFAIL: pwritev2() failed: EINVAL (22)
Summary:
passed 3
failed 3
broken 0
skipped 0
warnings 0
See man 2, we known preadv2() and pwritev2() first appeared in Linux 4.6, so I think we need to check kernel version in testcases.
Thanks!
Best Regards,
Gongyi
> Hi Zhongyi,
>
> Do you get any issue here?
>
> It is unncessary to add version check because LTP has check the support of
> preadv2/pwritev2:
> 1) Call preadv2/pwritev2 directly if glibc provides it.
> 2) Call syscall(__NR_preadv2/__NR_pwritev2) if glibc doesn't provides
> preadv2/pwritev.
> 3) Report TCONF if kernel doesn't support __NR_preadv2/__NR_pwritev2.
>
> Please reference "include/lapi/preadv2.h"
>
> Best Regards,
> Xiao Yang
> On 2021/3/30 15:44, Zhao Gongyi wrote:
> > We need add kernel version requestions sinc preadv2() and pwritev2()
> > first appeared in Linux 4.6.
> >
> > For those:
> > testcases/kernel/syscalls/preadv2/preadv201.c
> > testcases/kernel/syscalls/pwritev2/pwritev201.c
> >
> > Signed-off-by: Zhao Gongyi<zhaogongyi@huawei.com>
> > ---
> > testcases/kernel/syscalls/preadv2/preadv201.c | 1 +
> > testcases/kernel/syscalls/pwritev2/pwritev201.c | 1 +
> > 2 files changed, 2 insertions(+)
> >
> > diff --git a/testcases/kernel/syscalls/preadv2/preadv201.c
> > b/testcases/kernel/syscalls/preadv2/preadv201.c
> > index 91e2b9889..e8220f94c 100644
> > --- a/testcases/kernel/syscalls/preadv2/preadv201.c
> > +++ b/testcases/kernel/syscalls/preadv2/preadv201.c
> > @@ -111,6 +111,7 @@ static void cleanup(void)
> > }
> >
> > static struct tst_test test = {
> > + .min_kver = "4.6",
> > .tcnt = ARRAY_SIZE(tcases),
> > .setup = setup,
> > .cleanup = cleanup,
> > diff --git a/testcases/kernel/syscalls/pwritev2/pwritev201.c
> > b/testcases/kernel/syscalls/pwritev2/pwritev201.c
> > index eba45b7d3..a8273e59d 100644
> > --- a/testcases/kernel/syscalls/pwritev2/pwritev201.c
> > +++ b/testcases/kernel/syscalls/pwritev2/pwritev201.c
> > @@ -111,6 +111,7 @@ static void cleanup(void)
> > }
> >
> > static struct tst_test test = {
> > + .min_kver = "4.6",
> > .tcnt = ARRAY_SIZE(tcases),
> > .setup = setup,
> > .cleanup = cleanup,
> > --
> > 2.17.1
> >
> >
More information about the ltp
mailing list