From: Christoph Hellwig <hch@lst.de>
To: Christian Brauner <brauner@kernel.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>,
David Sterba <dsterba@suse.com>, Jan Kara <jack@suse.cz>,
Mike Marshall <hubcap@omnibond.com>,
Martin Brandenburg <martin@omnibond.com>,
Carlos Maiolino <cem@kernel.org>, Stefan Roesch <shr@fb.com>,
Jeff Layton <jlayton@kernel.org>,
linux-kernel@vger.kernel.org, linux-btrfs@vger.kernel.org,
linux-fsdevel@vger.kernel.org, gfs2@lists.linux.dev,
io-uring@vger.kernel.org, devel@lists.orangefs.org,
linux-unionfs@vger.kernel.org, linux-mtd@lists.infradead.org,
linux-xfs@vger.kernel.org, linux-nfs@vger.kernel.org
Subject: Re: re-enable IOCB_NOWAIT writes to files v4
Date: Tue, 23 Dec 2025 23:53:16 +0100 [thread overview]
Message-ID: <20251223225316.GA26676@lst.de> (raw)
In-Reply-To: <20251223003756.409543-1-hch@lst.de>
Julia found a nice little typo in the new changes, which really
wants me to split the atime from c/mtime update path badly. So
don't feel rushed to review this version and enjoy the holidays,
there will be a new one soon.
On Tue, Dec 23, 2025 at 09:37:43AM +0900, Christoph Hellwig wrote:
> Hi all,
>
> commit 66fa3cedf16a ("fs: Add async write file modification handling.")
> effectively disabled IOCB_NOWAIT writes as timestamp updates currently
> always require blocking, and the modern timestamp resolution means we
> always update timestamps. This leads to a lot of context switches from
> applications using io_uring to submit file writes, making it often worse
> than using the legacy aio code that is not using IOCB_NOWAIT.
>
> This series allows non-blocking updates for lazytime if the file system
> supports it, and adds that support for XFS.
>
> Changes since v3:
> - fix was_dirty_time handling in __mark_inode_dirty for the racy flag
> update case
> - refactor inode_update_timestamps to make the lazytime vs blocking
> logical more clear
> - allow non-blocking timestamp updates for fat
>
> Changes since v2:
> - drop patches merged upstream
> - adjust for the inode state accesors
> - keep a check in __writeback_single_inode instead of exercising
> potentially undefined behavior
> - more spelling fixes
>
> Changes since v1:
> - more regular numbering of the S_* flags
> - fix XFS to actually not block
> - don't ignore the generic_update_time return value in
> file_update_time_flags
> - fix the sync_lazytime return value
> - fix an out of data comment in btrfs
> - fix a race that would update i_version before returning -EAGAIN in XFS
>
> Diffstat:
> Documentation/filesystems/locking.rst | 2
> Documentation/filesystems/vfs.rst | 6 +
> fs/btrfs/inode.c | 8 +-
> fs/fs-writeback.c | 33 +++++++---
> fs/gfs2/inode.c | 6 +
> fs/inode.c | 111 +++++++++++++++++++++-------------
> fs/internal.h | 3
> fs/nfs/inode.c | 4 -
> fs/orangefs/inode.c | 5 +
> fs/overlayfs/inode.c | 2
> fs/sync.c | 4 -
> fs/ubifs/file.c | 13 ++-
> fs/xfs/xfs_iops.c | 34 +++++++++-
> fs/xfs/xfs_super.c | 29 --------
> include/linux/fs.h | 27 ++++++--
> include/trace/events/writeback.h | 6 -
> 16 files changed, 182 insertions(+), 111 deletions(-)
---end quoted text---
WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de>
To: Christian Brauner <brauner@kernel.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>,
David Sterba <dsterba@suse.com>, Jan Kara <jack@suse.cz>,
Mike Marshall <hubcap@omnibond.com>,
Martin Brandenburg <martin@omnibond.com>,
Carlos Maiolino <cem@kernel.org>, Stefan Roesch <shr@fb.com>,
Jeff Layton <jlayton@kernel.org>,
linux-kernel@vger.kernel.org, linux-btrfs@vger.kernel.org,
linux-fsdevel@vger.kernel.org, gfs2@lists.linux.dev,
io-uring@vger.kernel.org, devel@lists.orangefs.org,
linux-unionfs@vger.kernel.org, linux-mtd@lists.infradead.org,
linux-xfs@vger.kernel.org, linux-nfs@vger.kernel.org
Subject: Re: re-enable IOCB_NOWAIT writes to files v4
Date: Tue, 23 Dec 2025 23:53:16 +0100 [thread overview]
Message-ID: <20251223225316.GA26676@lst.de> (raw)
In-Reply-To: <20251223003756.409543-1-hch@lst.de>
Julia found a nice little typo in the new changes, which really
wants me to split the atime from c/mtime update path badly. So
don't feel rushed to review this version and enjoy the holidays,
there will be a new one soon.
On Tue, Dec 23, 2025 at 09:37:43AM +0900, Christoph Hellwig wrote:
> Hi all,
>
> commit 66fa3cedf16a ("fs: Add async write file modification handling.")
> effectively disabled IOCB_NOWAIT writes as timestamp updates currently
> always require blocking, and the modern timestamp resolution means we
> always update timestamps. This leads to a lot of context switches from
> applications using io_uring to submit file writes, making it often worse
> than using the legacy aio code that is not using IOCB_NOWAIT.
>
> This series allows non-blocking updates for lazytime if the file system
> supports it, and adds that support for XFS.
>
> Changes since v3:
> - fix was_dirty_time handling in __mark_inode_dirty for the racy flag
> update case
> - refactor inode_update_timestamps to make the lazytime vs blocking
> logical more clear
> - allow non-blocking timestamp updates for fat
>
> Changes since v2:
> - drop patches merged upstream
> - adjust for the inode state accesors
> - keep a check in __writeback_single_inode instead of exercising
> potentially undefined behavior
> - more spelling fixes
>
> Changes since v1:
> - more regular numbering of the S_* flags
> - fix XFS to actually not block
> - don't ignore the generic_update_time return value in
> file_update_time_flags
> - fix the sync_lazytime return value
> - fix an out of data comment in btrfs
> - fix a race that would update i_version before returning -EAGAIN in XFS
>
> Diffstat:
> Documentation/filesystems/locking.rst | 2
> Documentation/filesystems/vfs.rst | 6 +
> fs/btrfs/inode.c | 8 +-
> fs/fs-writeback.c | 33 +++++++---
> fs/gfs2/inode.c | 6 +
> fs/inode.c | 111 +++++++++++++++++++++-------------
> fs/internal.h | 3
> fs/nfs/inode.c | 4 -
> fs/orangefs/inode.c | 5 +
> fs/overlayfs/inode.c | 2
> fs/sync.c | 4 -
> fs/ubifs/file.c | 13 ++-
> fs/xfs/xfs_iops.c | 34 +++++++++-
> fs/xfs/xfs_super.c | 29 --------
> include/linux/fs.h | 27 ++++++--
> include/trace/events/writeback.h | 6 -
> 16 files changed, 182 insertions(+), 111 deletions(-)
---end quoted text---
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
next prev parent reply other threads:[~2025-12-23 22:53 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-23 0:37 re-enable IOCB_NOWAIT writes to files v4 Christoph Hellwig
2025-12-23 0:37 ` Christoph Hellwig
2025-12-23 0:37 ` [PATCH 01/11] fs: remove inode_update_time Christoph Hellwig
2025-12-23 0:37 ` Christoph Hellwig
2025-12-23 0:37 ` [PATCH 02/11] fs: allow error returns from generic_update_time Christoph Hellwig
2025-12-23 0:37 ` Christoph Hellwig
2025-12-23 0:37 ` [PATCH 03/11] fs: exit early in generic_update_time when there is no work Christoph Hellwig
2025-12-23 0:37 ` Christoph Hellwig
2025-12-23 5:33 ` Chaitanya Kulkarni
2025-12-23 5:33 ` Chaitanya Kulkarni
2025-12-23 0:37 ` [PATCH 04/11] fs: delay the actual timestamp updates in inode_update_timestamps Christoph Hellwig
2025-12-23 0:37 ` Christoph Hellwig
2025-12-23 5:35 ` Chaitanya Kulkarni
2025-12-23 5:35 ` Chaitanya Kulkarni
2025-12-23 0:37 ` [PATCH 05/11] fs: return I_DIRTY_* and allow error returns from inode_update_timestamps Christoph Hellwig
2025-12-23 0:37 ` Christoph Hellwig
2025-12-23 5:36 ` Chaitanya Kulkarni
2025-12-23 5:36 ` Chaitanya Kulkarni
2025-12-29 7:27 ` kernel test robot
2025-12-29 7:27 ` kernel test robot
2025-12-23 0:37 ` [PATCH 06/11] fs: factor out a sync_lazytime helper Christoph Hellwig
2025-12-23 0:37 ` Christoph Hellwig
2025-12-23 5:36 ` Chaitanya Kulkarni
2025-12-23 5:36 ` Chaitanya Kulkarni
2025-12-23 0:37 ` [PATCH 07/11] fs: add a ->sync_lazytime method Christoph Hellwig
2025-12-23 0:37 ` Christoph Hellwig
2025-12-23 5:37 ` Chaitanya Kulkarni
2025-12-23 5:37 ` Chaitanya Kulkarni
2025-12-23 0:37 ` [PATCH 08/11] fs: add support for non-blocking timestamp updates Christoph Hellwig
2025-12-23 0:37 ` Christoph Hellwig
2025-12-23 5:38 ` Chaitanya Kulkarni
2025-12-23 5:38 ` Chaitanya Kulkarni
2025-12-23 0:37 ` [PATCH 09/11] fat: enable " Christoph Hellwig
2025-12-23 0:37 ` Christoph Hellwig
2025-12-23 0:37 ` [PATCH 10/11] xfs: implement ->sync_lazytime Christoph Hellwig
2025-12-23 0:37 ` Christoph Hellwig
2025-12-23 0:37 ` [PATCH 11/11] xfs: enable non-blocking timestamp updates Christoph Hellwig
2025-12-23 0:37 ` Christoph Hellwig
2025-12-23 5:39 ` Chaitanya Kulkarni
2025-12-23 5:39 ` Chaitanya Kulkarni
2025-12-23 22:53 ` Christoph Hellwig [this message]
2025-12-23 22:53 ` re-enable IOCB_NOWAIT writes to files v4 Christoph Hellwig
2025-12-24 13:11 ` Christian Brauner
2025-12-24 13:11 ` Christian Brauner
2026-01-06 6:24 ` Christoph Hellwig
2026-01-06 6:24 ` Christoph Hellwig
2026-01-06 21:43 ` Christian Brauner
2026-01-06 21:43 ` Christian Brauner
2026-01-07 7:32 ` Christoph Hellwig
2026-01-07 7:32 ` Christoph Hellwig
2026-01-12 10:04 ` Christian Brauner
2026-01-12 10:04 ` Christian Brauner
2026-01-12 10:05 ` Christoph Hellwig
2026-01-12 10:05 ` Christoph Hellwig
2026-01-12 13:22 ` Christian Brauner
2026-01-12 13:22 ` Christian Brauner
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=20251223225316.GA26676@lst.de \
--to=hch@lst.de \
--cc=brauner@kernel.org \
--cc=cem@kernel.org \
--cc=devel@lists.orangefs.org \
--cc=dsterba@suse.com \
--cc=gfs2@lists.linux.dev \
--cc=hubcap@omnibond.com \
--cc=io-uring@vger.kernel.org \
--cc=jack@suse.cz \
--cc=jlayton@kernel.org \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=linux-nfs@vger.kernel.org \
--cc=linux-unionfs@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=martin@omnibond.com \
--cc=shr@fb.com \
--cc=viro@zeniv.linux.org.uk \
/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 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.