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 v3 0/8] make statx() return DIO alignment information Date: Thu, 16 Jun 2022 13:14:58 -0700 [thread overview] Message-ID: <20220616201506.124209-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 and f2fs. Support for regular files on other filesystems can be added later. I've also written a man-pages patch, which I'm sending separately. Note, f2fs has one corner case where DIO reads are allowed but not DIO writes. The proposed statx fields can't represent this. My proposal (patch 6) is to just eliminate this case, as it seems much too weird. But I'd appreciate any feedback on that part. This patchset applies to v5.19-rc2. Changed v2 => 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 v1 => 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: don't allow DIO reads but not DIO writes f2fs: simplify f2fs_force_buffered_io() f2fs: support STATX_DIOALIGN fs/crypto/inline_crypt.c | 48 ++++++++++++++++++++------------------- fs/ext4/ext4.h | 1 + fs/ext4/file.c | 10 ++++---- fs/ext4/inode.c | 29 +++++++++++++++++++++++ fs/f2fs/f2fs.h | 45 ------------------------------------ fs/f2fs/file.c | 45 +++++++++++++++++++++++++++++++++++- fs/stat.c | 37 ++++++++++++++++++++++++++++++ include/linux/fscrypt.h | 7 ++---- include/linux/stat.h | 2 ++ include/uapi/linux/stat.h | 4 +++- 10 files changed, 147 insertions(+), 81 deletions(-) -- 2.36.1 base-commit: b13baccc3850ca8b8cccbf8ed9912dbaa0fdf7f3
WARNING: multiple messages have this Message-ID (diff)
From: Eric Biggers <ebiggers@kernel.org> To: linux-fsdevel@vger.kernel.org Cc: linux-block@vger.kernel.org, linux-api@vger.kernel.org, linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-xfs@vger.kernel.org, linux-fscrypt@vger.kernel.org, Keith Busch <kbusch@kernel.org>, linux-ext4@vger.kernel.org Subject: [f2fs-dev] [PATCH v3 0/8] make statx() return DIO alignment information Date: Thu, 16 Jun 2022 13:14:58 -0700 [thread overview] Message-ID: <20220616201506.124209-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 and f2fs. Support for regular files on other filesystems can be added later. I've also written a man-pages patch, which I'm sending separately. Note, f2fs has one corner case where DIO reads are allowed but not DIO writes. The proposed statx fields can't represent this. My proposal (patch 6) is to just eliminate this case, as it seems much too weird. But I'd appreciate any feedback on that part. This patchset applies to v5.19-rc2. Changed v2 => 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 v1 => 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: don't allow DIO reads but not DIO writes f2fs: simplify f2fs_force_buffered_io() f2fs: support STATX_DIOALIGN fs/crypto/inline_crypt.c | 48 ++++++++++++++++++++------------------- fs/ext4/ext4.h | 1 + fs/ext4/file.c | 10 ++++---- fs/ext4/inode.c | 29 +++++++++++++++++++++++ fs/f2fs/f2fs.h | 45 ------------------------------------ fs/f2fs/file.c | 45 +++++++++++++++++++++++++++++++++++- fs/stat.c | 37 ++++++++++++++++++++++++++++++ include/linux/fscrypt.h | 7 ++---- include/linux/stat.h | 2 ++ include/uapi/linux/stat.h | 4 +++- 10 files changed, 147 insertions(+), 81 deletions(-) -- 2.36.1 base-commit: b13baccc3850ca8b8cccbf8ed9912dbaa0fdf7f3 _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
next reply other threads:[~2022-06-16 20:18 UTC|newest] Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-06-16 20:14 Eric Biggers [this message] 2022-06-16 20:14 ` [f2fs-dev] [PATCH v3 0/8] make statx() return DIO alignment information Eric Biggers 2022-06-16 20:14 ` [PATCH v3 1/8] statx: add direct I/O " Eric Biggers 2022-06-16 20:14 ` [f2fs-dev] " Eric Biggers 2022-06-19 11:30 ` Avi Kivity 2022-06-19 11:30 ` [f2fs-dev] " Avi Kivity 2022-06-26 7:44 ` Christoph Hellwig 2022-06-26 7:44 ` [f2fs-dev] " Christoph Hellwig 2022-06-26 10:20 ` Avi Kivity 2022-06-26 10:20 ` [f2fs-dev] " Avi Kivity via Linux-f2fs-devel 2022-06-23 15:58 ` Darrick J. Wong 2022-06-23 15:58 ` [f2fs-dev] " Darrick J. Wong 2022-06-23 17:23 ` Eric Biggers 2022-06-23 17:23 ` Eric Biggers 2022-06-23 18:58 ` [f2fs-dev] " Eric Biggers 2022-06-23 18:58 ` Eric Biggers 2022-06-26 8:02 ` Christoph Hellwig 2022-06-26 8:02 ` [f2fs-dev] " Christoph Hellwig 2022-06-26 7:44 ` Christoph Hellwig 2022-06-26 7:44 ` [f2fs-dev] " Christoph Hellwig 2022-06-16 20:15 ` [PATCH v3 2/8] vfs: support STATX_DIOALIGN on block devices Eric Biggers 2022-06-16 20:15 ` [f2fs-dev] " Eric Biggers 2022-06-26 7:48 ` Christoph Hellwig 2022-06-26 7:48 ` [f2fs-dev] " Christoph Hellwig 2022-06-16 20:15 ` [PATCH v3 3/8] fscrypt: change fscrypt_dio_supported() to prepare for STATX_DIOALIGN Eric Biggers 2022-06-16 20:15 ` [f2fs-dev] " Eric Biggers 2022-06-16 20:15 ` [PATCH v3 4/8] ext4: support STATX_DIOALIGN Eric Biggers 2022-06-16 20:15 ` [f2fs-dev] " Eric Biggers 2022-06-16 20:15 ` [PATCH v3 5/8] f2fs: move f2fs_force_buffered_io() into file.c Eric Biggers 2022-06-16 20:15 ` [f2fs-dev] " Eric Biggers 2022-06-16 20:15 ` [PATCH v3 6/8] f2fs: don't allow DIO reads but not DIO writes Eric Biggers 2022-06-16 20:15 ` [f2fs-dev] " Eric Biggers 2022-06-16 20:15 ` [PATCH v3 7/8] f2fs: simplify f2fs_force_buffered_io() Eric Biggers 2022-06-16 20:15 ` [f2fs-dev] " Eric Biggers 2022-06-16 20:15 ` [PATCH v3 8/8] f2fs: support STATX_DIOALIGN Eric Biggers 2022-06-16 20:15 ` [f2fs-dev] " Eric Biggers 2022-07-20 5:03 ` [PATCH v3 0/8] make statx() return DIO alignment information Christoph Hellwig 2022-07-20 5:03 ` [f2fs-dev] " Christoph Hellwig
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=20220616201506.124209-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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.