summaryrefslogtreecommitdiff
path: root/fs/iomap
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2023-07-08 19:03:52 +0300
committerJens Axboe <axboe@kernel.dk>2023-08-02 02:32:45 +0300
commit099ada2c87260e5c52fbdad4ca40c165fc194a2e (patch)
treee48cea61e8cea2124071f839679814a6667a0ecc /fs/iomap
parent9cf3516c29e6dba95d36d7d86c03b06495107859 (diff)
downloadlinux-099ada2c87260e5c52fbdad4ca40c165fc194a2e.tar.xz
io_uring/rw: add write support for IOCB_DIO_CALLER_COMP
If the filesystem dio handler understands IOCB_DIO_CALLER_COMP, we'll get a kiocb->ki_complete() callback with kiocb->dio_complete set. In that case, rather than complete the IO directly through task_work, queue up an intermediate task_work handler that first processes this callback and then immediately completes the request. For XFS, this avoids a punt through a workqueue, which is a lot less efficient and adds latency to lower queue depth (or sync) O_DIRECT writes. Only do this for non-polled IO, as polled IO doesn't need this kind of deferral as it always completes within the task itself. This then avoids a check for deferral in the polled IO completion handler. Reviewed-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs/iomap')
0 files changed, 0 insertions, 0 deletions