public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
From: Eric Biggers <ebiggers@kernel.org>
To: Yang Xu <xuyang2018.jy@fujitsu.com>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH v3 2/4] syscalls/statx10: Add basic test for STATX_DIOALIGN on regular file
Date: Tue, 4 Apr 2023 14:52:31 -0700	[thread overview]
Message-ID: <20230404215231.GA884@sol.localdomain> (raw)
In-Reply-To: <1680593430-14728-2-git-send-email-xuyang2018.jy@fujitsu.com>

On Tue, Apr 04, 2023 at 03:30:28PM +0800, Yang Xu wrote:
> On ext4, files that use certain filesystem features (data journalling,
> encryption, and verity) fall back to buffered I/O. But ltp doesn't use
> these features by default, So I think dio should not fall back to
> buffered I/O.

Please document this in the code itself.

> +static void verify_statx(void)
> +{
> +	struct statx buf;
> +
> +	memset(&buf, 0, sizeof(buf));

There is no need for this memset to 0.

> +	if (buf.stx_dio_mem_align != 0)
> +		tst_res(TPASS, "stx_dio_mem_align:%u", buf.stx_dio_mem_align);
> +	else
> +		tst_res(TFAIL, "don't get stx_dio_mem_align on supported dio fs");
> +
> +	if (buf.stx_dio_offset_align != 0)
> +		tst_res(TPASS, "stx_dio_offset_align:%u", buf.stx_dio_offset_align);
> +	else
> +		tst_res(TFAIL, "don't get stx_dio_offset_align on supported dio fs");

Please leave a space between : and %u.

> +	if ((buf.stx_mask & STATX_DIOALIGN)) {

Unnecessary parentheses

> +		tst_res(TFAIL, "STATX_DIOALIGN mask return even not request");
> +		return;
> +	}

This part is not a valid test.  Please see the statx(2) manual page:

       "It should be noted that the kernel may return fields that  weren't  re‐
       quested and may fail to return fields that were requested, depending on
       what the backing filesystem supports.  (Fields that  are  given  values
       despite  being  unrequested  can  just  be  ignored.)   In either case,
       stx_mask will not be equal mask."

> +static void setup(void)
> +{
> +	if (strcmp(tst_device->fs_type, "xfs") && strcmp(tst_device->fs_type, "ext4"))
> +		tst_brk(TCONF, "This test only supports ext4 and xfs");
> +
> +	SAFE_FILE_PRINTF(TESTFILE, "AAAA");
> +	fd = open(TESTFILE, O_RDWR | O_DIRECT);
> +	if (fd == -1 && errno == EINVAL)
> +		tst_brk(TCONF, "The regular file is not on a filesystem that support DIO");
> +}
> +
> +static void cleanup(void)
> +{
> +	if (fd > -1)
> +		SAFE_CLOSE(fd);
> +}

Shouldn't 'fd' just be a local variable in setup()?

> +#else
> +TST_TEST_TCONF("test requires struct statx to have the stx_dio_mem_align fields");
> +#endif

LTP already has its own definition of struct statx in include/lapi/stat.h.  So,
why is it necessary to skip this test if the system headers lack an up-to-date
definition of struct statx?

- Eric

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

  reply	other threads:[~2023-04-04 21:52 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-30  8:22 [LTP] [PATCH 1/3] lapi/stat.h: Add STATX_DIOALIGN related definition Yang Xu
2023-03-30  8:22 ` [LTP] [PATCH 2/3] syscalls/statx10: Add basic test for STATX_DIOALIGN Yang Xu
2023-03-30 16:46   ` Eric Biggers
2023-03-31 12:56     ` xuyang2018.jy
2023-03-31 19:29       ` Eric Biggers
2023-04-03  1:24         ` xuyang2018.jy
2023-04-03  3:06           ` Eric Biggers
2023-04-03 10:44           ` [LTP] [PATCH v2 1/4] lapi/stat.h: Add STATX_DIOALIGN related definition Yang Xu
2023-04-03 10:44             ` [LTP] [PATCH v2 2/4] syscalls/statx10: Add basic test for STATX_DIOALIGN on regular file Yang Xu
2023-04-03 17:01               ` Eric Biggers
2023-04-04  3:10                 ` xuyang2018.jy
2023-04-04  5:46                   ` xuyang2018.jy
2023-04-03 10:44             ` [LTP] [PATCH v2 3/4] syscalls/statx11: Add basic test for STATX_DIOALIGN on blockdev Yang Xu
2023-04-03 17:04               ` Eric Biggers
2023-04-04  3:14                 ` xuyang2018.jy
2023-04-04  7:30                 ` [LTP] [PATCH v3 1/4] lapi/stat.h: Add STATX_DIOALIGN related definition Yang Xu
2023-04-04  7:30                   ` [LTP] [PATCH v3 2/4] syscalls/statx10: Add basic test for STATX_DIOALIGN on regular file Yang Xu
2023-04-04 21:52                     ` Eric Biggers [this message]
2023-04-06  4:52                       ` xuyang2018.jy
2023-04-04  7:30                   ` [LTP] [PATCH v3 3/4] syscalls/statx11: Add basic test for STATX_DIOALIGN on block device Yang Xu
2023-04-04 21:59                     ` Eric Biggers
2023-04-06  4:57                       ` xuyang2018.jy
2023-04-06  5:36                         ` xuyang2018.jy
2023-04-06  5:40                       ` [LTP] [PATCH v4 1/4] lapi/stat.h: Add STATX_DIOALIGN related definition Yang Xu
2023-04-06  5:40                         ` [LTP] [PATCH v4 2/4] syscalls/statx10: Add basic test for STATX_DIOALIGN on regular file Yang Xu
2023-04-26 22:06                           ` Eric Biggers
2023-04-27  3:03                             ` Yang Xu (Fujitsu)
2023-05-01 17:44                               ` Eric Biggers
2023-05-01 17:47                                 ` Eric Biggers
2023-05-08  8:25                                 ` Yang Xu (Fujitsu)
2023-05-08  8:30                                   ` Yang Xu (Fujitsu)
2023-04-06  5:40                         ` [LTP] [PATCH v4 3/4] syscalls/statx11: Add basic test for STATX_DIOALIGN on block device Yang Xu
2023-04-26 22:12                           ` Eric Biggers
2023-04-27  3:37                             ` Yang Xu (Fujitsu)
2023-04-27  3:50                               ` Yang Xu (Fujitsu)
2023-05-01 17:49                                 ` Eric Biggers
2023-05-08  8:26                                   ` Yang Xu (Fujitsu)
2023-04-06  5:40                         ` [LTP] [PATCH v4 4/4] lapi/stat.h: Remove deprecated STATX_ALL macro Yang Xu
2023-04-26 21:56                           ` Eric Biggers
2023-04-27  1:52                             ` Yang Xu (Fujitsu)
2023-04-26  9:57                         ` [LTP] [PATCH v4 1/4] lapi/stat.h: Add STATX_DIOALIGN related definition Yang Xu (Fujitsu)
2023-04-26 21:56                         ` Eric Biggers
2023-04-27  1:36                           ` Yang Xu (Fujitsu)
2023-04-04  7:30                   ` [LTP] [PATCH v3 4/4] lapi/stat.h: Remove deprecated STATX_ALL macro Yang Xu
2023-04-03 10:44             ` [LTP] [PATCH v2 " Yang Xu
2023-03-30  8:22 ` [LTP] [PATCH 3/3] " Yang Xu

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=20230404215231.GA884@sol.localdomain \
    --to=ebiggers@kernel.org \
    --cc=ltp@lists.linux.it \
    --cc=xuyang2018.jy@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