From: Eric Biggers <ebiggers@kernel.org>
To: linux-fsdevel@vger.kernel.org
Cc: linux-ext4@vger.kernel.org,
linux-f2fs-devel@lists.sourceforge.net,
linux-xfs@vger.kernel.org, linux-api@vger.kernel.org,
linux-fscrypt@vger.kernel.org, linux-block@vger.kernel.org,
linux-kernel@vger.kernel.org, Keith Busch <kbusch@kernel.org>
Subject: [PATCH v5 0/8] make statx() return DIO alignment information
Date: Fri, 26 Aug 2022 23:58:43 -0700 [thread overview]
Message-ID: <20220827065851.135710-1-ebiggers@kernel.org> (raw)
This patchset makes the statx() system call return direct I/O (DIO)
alignment information. This allows userspace to easily determine
whether a file supports DIO, and if so with what alignment restrictions.
Patch 1 adds the basic VFS support for STATX_DIOALIGN. Patch 2 wires it
up for all block device files. The remaining patches wire it up for
regular files on ext4, f2fs, and xfs. Support for regular files on
other filesystems can be added later.
I've also written a man-pages patch, which I sent separately:
https://lore.kernel.org/r/20220722074229.148925-1-ebiggers@kernel.org
Note, f2fs has a corner case where DIO reads are allowed but not DIO
writes. The proposed statx fields can't represent this. The current
proposal just reports that DIO is unsupported in this case.
This patchset applies to v6.0-rc2.
Changed in v5:
- Accounted for the DIO changes in 6.0 by setting dio_mem_align to
the DMA alignment instead of the logical block size where needed.
- Dropped the patch "f2fs: don't allow DIO reads but not DIO writes".
- Added some Reviewed-by and Acked-by tags.
Changed in v4:
- Added xfs support.
- Moved the helper function for block devices into block/bdev.c.
- Adjusted the ext4 patch to not introduce a bug where misaligned DIO
starts being allowed on encrypted files when it gets combined with
the patch "iomap: add support for dma aligned direct-io" that is
queued in the block tree for 5.20.
- Made a simplification in fscrypt_dio_supported().
Changed in v3:
- Dropped the stx_offset_align_optimal field, since its purpose
wasn't clearly distinguished from the existing stx_blksize.
- Renamed STATX_IOALIGN to STATX_DIOALIGN, to reflect the new focus
on DIO only.
- Similarly, renamed stx_{mem,offset}_align_dio to
stx_dio_{mem,offset}_align, to reflect the new focus on DIO only.
- Wired up STATX_DIOALIGN on block device files.
Changed in v2:
- No changes.
Eric Biggers (8):
statx: add direct I/O alignment information
vfs: support STATX_DIOALIGN on block devices
fscrypt: change fscrypt_dio_supported() to prepare for STATX_DIOALIGN
ext4: support STATX_DIOALIGN
f2fs: move f2fs_force_buffered_io() into file.c
f2fs: simplify f2fs_force_buffered_io()
f2fs: support STATX_DIOALIGN
xfs: support STATX_DIOALIGN
block/bdev.c | 23 ++++++++++++++++++
fs/crypto/inline_crypt.c | 49 +++++++++++++++++++--------------------
fs/ext4/ext4.h | 1 +
fs/ext4/file.c | 37 ++++++++++++++++++++---------
fs/ext4/inode.c | 37 +++++++++++++++++++++++++++++
fs/f2fs/f2fs.h | 40 --------------------------------
fs/f2fs/file.c | 43 +++++++++++++++++++++++++++++++++-
fs/stat.c | 14 +++++++++++
fs/xfs/xfs_iops.c | 10 ++++++++
include/linux/blkdev.h | 4 ++++
include/linux/fscrypt.h | 7 ++----
include/linux/stat.h | 2 ++
include/uapi/linux/stat.h | 4 +++-
13 files changed, 188 insertions(+), 83 deletions(-)
base-commit: 1c23f9e627a7b412978b4e852793c5e3c3efc555
--
2.37.2
next reply other threads:[~2022-08-27 7:01 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-27 6:58 Eric Biggers [this message]
2022-08-27 6:58 ` [PATCH v5 1/8] statx: add direct I/O alignment information Eric Biggers
2022-09-07 9:10 ` Christian Brauner
2022-08-27 6:58 ` [PATCH v5 2/8] vfs: support STATX_DIOALIGN on block devices Eric Biggers
2022-09-06 8:10 ` Christoph Hellwig
2022-09-07 9:09 ` Christian Brauner
2022-08-27 6:58 ` [PATCH v5 3/8] fscrypt: change fscrypt_dio_supported() to prepare for STATX_DIOALIGN Eric Biggers
2022-08-27 6:58 ` [PATCH v5 4/8] ext4: support STATX_DIOALIGN Eric Biggers
2022-08-27 6:58 ` [PATCH v5 5/8] f2fs: move f2fs_force_buffered_io() into file.c Eric Biggers
2022-08-29 17:37 ` Jaegeuk Kim
2022-08-27 6:58 ` [PATCH v5 6/8] f2fs: simplify f2fs_force_buffered_io() Eric Biggers
2022-08-29 17:36 ` Jaegeuk Kim
2022-08-27 6:58 ` [PATCH v5 7/8] f2fs: support STATX_DIOALIGN Eric Biggers
2022-08-29 17:43 ` Jaegeuk Kim
2022-08-27 6:58 ` [PATCH v5 8/8] xfs: " Eric Biggers
2022-08-27 15:34 ` Darrick J. Wong
2022-09-06 8:11 ` Christoph Hellwig
2022-09-06 22:08 ` [PATCH v5 0/8] make statx() return DIO alignment information Eric Biggers
2022-09-12 0:54 ` Eric Biggers
2022-09-12 20:30 ` Stephen Rothwell
2022-10-18 4:55 ` Stephen Rothwell
2022-10-18 7:07 ` Eric Biggers
2022-10-18 20:08 ` Stephen Rothwell
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=20220827065851.135710-1-ebiggers@kernel.org \
--to=ebiggers@kernel.org \
--cc=kbusch@kernel.org \
--cc=linux-api@vger.kernel.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-f2fs-devel@lists.sourceforge.net \
--cc=linux-fscrypt@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).