Thread (60 messages) 60 messages, 9 authors, 2022-05-28

Re: [RFC] what to do with IOCB_DSYNC?

From: Jens Axboe <axboe@kernel.dk>
Date: 2021-06-21 15:22:44

On 6/21/21 8:35 AM, Christoph Hellwig wrote:
On Mon, Jun 21, 2021 at 02:32:46PM +0000, Al Viro wrote:
quoted
	I'd rather have a single helper for those checks, rather than
open-coding IS_SYNC() + IOCB_DSYNC in each, for obvious reasons...
Yes, I think something like:

static inline bool iocb_is_sync(struct kiocb *iocb)
{
	return (iocb->ki_flags & IOCB_DSYNC) ||
		S_SYNC(iocb->ki_filp->f_mapping->host);
}

should do the job.
I think that's the right approach.

FWIW, my more recent testing does show the init of the iocb being the
big cycler eater causing slowdowns for sync IO in conversions to the
iter handlers instead of ->read/write. Would really welcome the
improvements suggested here, various conversions are stalled because of
it.

-- 
Jens Axboe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help