From: Eric Biggers <ebiggers@kernel.org>
To: Yang Xu <xuyang2018.jy@fujitsu.com>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH 2/3] syscalls/statx10: Add basic test for STATX_DIOALIGN
Date: Thu, 30 Mar 2023 09:46:53 -0700 [thread overview]
Message-ID: <20230330164653.GA881@sol.localdomain> (raw)
In-Reply-To: <1680164569-12114-2-git-send-email-xuyang2018.jy@fujitsu.com>
Hi Yang,
On Thu, Mar 30, 2023 at 04:22:48PM +0800, Yang Xu wrote:
> diff --git a/testcases/kernel/syscalls/statx/statx10.c b/testcases/kernel/syscalls/statx/statx10.c
> new file mode 100644
> index 000000000..7a2c92ad2
> --- /dev/null
> +++ b/testcases/kernel/syscalls/statx/statx10.c
> @@ -0,0 +1,81 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +/*
> + * Copyright (c) 2023 FUJITSU LIMITED. All rights reserved.
> + * Author: Yang Xu <xuyang2018.jy@fujitsu.com>
> + */
> +
> +/*\
> + * [Description]
> + *
> + * It is a basic test for STATX_DIOALIGN mask.
> + *
> + * - STATX_DIOALIGN Want stx_dio_mem_align and stx_dio_offset_align value
> + *
> + * Minimum Linux version required is v6.1.
> + */
> +
> +#define _GNU_SOURCE
> +#include <sys/types.h>
> +#include <unistd.h>
> +#include <fcntl.h>
> +#include <stdlib.h>
> +#include <stdbool.h>
> +#include "tst_test.h"
> +#include "lapi/stat.h"
> +
> +#ifdef HAVE_STRUCT_STATX_STX_DIO_MEM_ALIGN
> +#define MNTPOINT "mnt_point"
> +#define TESTFILE "testfile"
> +
> +static int fd = -1;
> +
> +static void verify_statx(void)
> +{
> + struct statx buf;
> +
> + memset(&buf, 0, sizeof(buf));
> + TST_EXP_PASS(statx(AT_FDCWD, TESTFILE, 0, STATX_DIOALIGN, &buf),
> + "statx(AT_FDCWD, %s, 0, STATX_DIOALIGN, &buf)", TESTFILE);
> +
> + if (!(buf.stx_mask & STATX_DIOALIGN)) {
> + tst_res(TCONF, "STATX_DIOALIGN is not supported until linux 6.1");
> + return;
> + }
> +
> + 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");
> +}
Thanks for writing a test for STATX_DIOALIGN!
However, the above code isn't actually a valid test, since stx_dio_mem_align and
stx_dio_offset_align will be 0 if the file doesn't support DIO. This is
documented in the statx(2) manual page. Filesystems aren't guaranteed to
support DIO, if they do, they aren't guaranteed to support it on all files.
I think you might be assuming that STATX_DIOALIGN won't be set in stx_mask if
DIO is unsupported on the file. That's not quite correct. If STATX_DIOALIGN is
not set, that just means the filesystem doesn't support STATX_DIOALIGN. In that
case, DIO might or might not be supported on the file. The filesystem just
isn't making a statement one way or the other.
I gave some thoughts on possible tests for STATX_DIOALIGN here:
https://lore.kernel.org/fstests/Y7fU4pRA+LHhsMKj@sol.localdomain/
Can you take a look at that?
Thanks,
- Eric
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2023-03-30 16:47 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 [this message]
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
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=20230330164653.GA881@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