From: Jan Stancek <jstancek@redhat.com>
To: Zeng Linggang <zenglg.jy@cn.fujitsu.com>
Cc: vasily isaenko <vasily.isaenko@oracle.com>,
ltp-list@lists.sourceforge.net
Subject: Re: [LTP] [PATCH v2] fallocate04: another check if SEEK_HOLE is not supported
Date: Wed, 20 May 2015 02:52:24 -0400 (EDT) [thread overview]
Message-ID: <1312891014.2427183.1432104744478.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <1432086442.16347.24.camel@G08FNSTD140232>
----- Original Message -----
> From: "Zeng Linggang" <zenglg.jy@cn.fujitsu.com>
> To: "Jan Stancek" <jstancek@redhat.com>
> Cc: "Alexey Kodanev" <alexey.kodanev@oracle.com>, "vasily isaenko" <vasily.isaenko@oracle.com>,
> ltp-list@lists.sourceforge.net
> Sent: Wednesday, 20 May, 2015 3:47:22 AM
> Subject: Re: [LTP] [PATCH v2] fallocate04: another check if SEEK_HOLE is not supported
>
> Hi!
>
> On Tue, 2015-05-19 at 07:18 -0400, Jan Stancek wrote:
> >
> >
> >
> > ----- Original Message -----
> > > From: "Zeng Linggang" <zenglg.jy@cn.fujitsu.com>
> > > To: "Alexey Kodanev" <alexey.kodanev@oracle.com>
> > > Cc: "vasily isaenko" <vasily.isaenko@oracle.com>,
> > > ltp-list@lists.sourceforge.net
> > > Sent: Tuesday, 19 May, 2015 10:50:22 AM
> > > Subject: [LTP] [PATCH v2] fallocate04: another check if SEEK_HOLE is not
> > > supported
> > >
> > > SEEK_HOLE is only supported since version 3.1. Check the specified
> > > range blocks are zeroed while the kernel does not supported SEEK_HOLE.
> > >
> > > Signed-off-by: Zhang Jin <jy_zhangjin@cn.fujitsu.com>
> > > ---
> > > testcases/kernel/syscalls/fallocate/fallocate04.c | 13 ++++++++++---
> > > 1 file changed, 10 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/testcases/kernel/syscalls/fallocate/fallocate04.c
> > > b/testcases/kernel/syscalls/fallocate/fallocate04.c
> > > index 911bbe8..e94c572 100644
> > > --- a/testcases/kernel/syscalls/fallocate/fallocate04.c
> > > +++ b/testcases/kernel/syscalls/fallocate/fallocate04.c
> > > @@ -98,13 +98,13 @@ static void setup(void)
> > > get_blocksize();
> > > }
> > >
> > > -static void check_file_data(const char exp_buf[], size_t size)
> > > +static void check_file_data_(const char exp_buf[], size_t size, off_t
> > > offset)
> > > {
> > > char rbuf[size];
> > >
> > > tst_resm(TINFO, "reading the file, compare with expected buffer");
> > >
> > > - SAFE_LSEEK(cleanup, fd, 0, SEEK_SET);
> > > + SAFE_LSEEK(cleanup, fd, offset, SEEK_SET);
> > > SAFE_READ(cleanup, 1, fd, rbuf, size);
> > >
> > > if (memcmp(exp_buf, rbuf, size)) {
> > > @@ -116,6 +116,11 @@ static void check_file_data(const char exp_buf[],
> > > size_t
> > > size)
> > > }
> > > }
> > >
> > > +static inline void check_file_data(const char exp_buf[], size_t size)
> > > +{
> > > + check_file_data_(exp_buf, size, 0);
> > > +}
> > > +
> > > static void test01(void)
> > > {
> > > tst_resm(TINFO, "allocate '%zu' bytes", buf_size);
> > > @@ -158,7 +163,9 @@ static void test02(void)
> > > tst_brkm(TFAIL | TERRNO, cleanup,
> > > "fallocate() or lseek() failed");
> > > }
> > > - tst_resm(TWARN | TERRNO, "lseek() doesn't support SEEK_HOLE");
> > > + char zeros[block_size];
> > > + memset(zeros, 0, block_size);
> > > + check_file_data_(zeros, block_size, block_size);
> >
> > Hi,
> >
> > Isn't this redundant?
>
> To be honest, I do not think it is redundant.
Can you explain why?
>
> >
> > Couple lines below is this check, which also checks that range
> > <block_size, block_size*2> is zeroed.
>
> Yep, this looks simple.
> This maybe cost more runtime because of 'fill_tst_buf'.
> But I do not reject it.
That code is already there, your patch is not removing it.
>
> >
> > char exp_buf[buf_size];
> >
> > fill_tst_buf(exp_buf);
> > memset(exp_buf + block_size, 0, block_size);
> > check_file_data(exp_buf, buf_size);
> >
> > Wouldn't it be enough to turn that warning into TINFO, for kernels < 3.1?
> >
> > diff --git a/testcases/kernel/syscalls/fallocate/fallocate04.c
> > b/testcases/kernel/syscalls/fallocate/fallocate04.c
> > index 911bbe8..45d9827 100644
> > --- a/testcases/kernel/syscalls/fallocate/fallocate04.c
> > +++ b/testcases/kernel/syscalls/fallocate/fallocate04.c
> > @@ -158,9 +158,12 @@ static void test02(void)
> > tst_brkm(TFAIL | TERRNO, cleanup,
> > "fallocate() or lseek() failed");
> > }
> > - tst_resm(TWARN | TERRNO, "lseek() doesn't support
> > SEEK_HOLE");
> > + if (tst_kvercmp(3, 1, 0) < 0)
>
> How about put them before lseek(SEEK_HOLE) ?
I think we should do the check on all kernels. lseek() can only check that the
hole exists, but current check also verifies that hole has correct size and
content.
Regards,
Jan
>
> if (tst_kvercmp(3, 1, 0) < 0) {
> fill_tst_buf();
> memset();
> check_file_data();
> } else {
> lseek(SEEK_HOLE);
> ...
> }
>
>
> Thank you very much.
>
> Best regards,
> Zeng
>
> > + tst_resm(TINFO, "lseek() doesn't support SEEK_HOLE,
> > "
> > + "this is expected for < 3.1 kernels");
> > + } else {
> > + tst_resm(TINFO, "found a hole at '%ld' offset", ret);
> > }
> > - tst_resm(TINFO, "found a hole at '%ld' offset", ret);
> >
> > size_t alloc_size1 = get_allocsize();
> >
> > Regards,
> > Jan
>
>
>
------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
next prev parent reply other threads:[~2015-05-20 6:52 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-21 13:05 [LTP] [PATCH v4] syscalls/fallocate04: add new fallocate() test Alexey Kodanev
2015-04-23 7:44 ` Jan Stancek
2015-04-27 14:07 ` Cyril Hrubis
[not found] ` <553E55D3.7070001@oracle.com>
2015-04-27 15:27 ` Cyril Hrubis
2015-05-18 10:14 ` [LTP] [PATCH] fallocate04: another check if SEEK_HOLE is not supported Zeng Linggang
2015-05-18 14:03 ` Alexey Kodanev
2015-05-19 8:50 ` [LTP] [PATCH v2] " Zeng Linggang
2015-05-19 11:18 ` Jan Stancek
2015-05-20 1:47 ` Zeng Linggang
2015-05-20 6:52 ` Jan Stancek [this message]
2015-05-20 9:58 ` Zeng Linggang
2015-05-20 11:32 ` Jan Stancek
2015-05-21 1:26 ` Zeng Linggang
2015-05-20 8:13 ` Alexey Kodanev
2015-05-20 9:35 ` Zeng Linggang
2015-05-21 5:39 ` [LTP] [PATCH] fallocate04: Use tst_kvercmp after lseek(SEEK_HOLE) return EINVAL Zeng Linggang
2015-05-22 14:21 ` Jan Stancek
2015-06-04 11:35 ` Alexey Kodanev
2015-06-04 11:52 ` Jan Stancek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1312891014.2427183.1432104744478.JavaMail.zimbra@redhat.com \
--to=jstancek@redhat.com \
--cc=ltp-list@lists.sourceforge.net \
--cc=vasily.isaenko@oracle.com \
--cc=zenglg.jy@cn.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox