From: Al Viro <viro@zeniv.linux.org.uk>
To: Jens Axboe <axboe@kernel.dk>
Cc: Christoph Hellwig <hch@lst.de>,
Matthew Wilcox <willy@infradead.org>,
linux-fsdevel@vger.kernel.org
Subject: Re: [RFC] what to do with IOCB_DSYNC?
Date: Mon, 23 May 2022 14:47:02 +0000 [thread overview]
Message-ID: <YoueZl4Zx0WUH3CS@zeniv-ca.linux.org.uk> (raw)
In-Reply-To: <0343869c-c6d1-5e7c-3bcb-f8d6999a2e04@kernel.dk>
On Mon, May 23, 2022 at 08:34:44AM -0600, Jens Axboe wrote:
> On 5/23/22 08:22, Al Viro wrote:
> > On Sun, May 22, 2022 at 08:43:26PM -0600, Jens Axboe wrote:
> >
> >> Branch here:
> >>
> >> https://git.kernel.dk/cgit/linux-block/log/?h=iov-iter
> >>
> >> First 5 are generic ones, and some of them should just be folded with
> >> your changes.
> >>
> >> Last 2 are just converting io_uring to use it where appropriate.
> >>
> >> We can also use it for vectored readv/writev and recvmsg/sendmsg with
> >> one segment. The latter is mostly single segment in the real world
> >> anyway, former probably too. Though not sure it's worth it when we're
> >> copying a single iovec first anyway? Something to test...
> >
> > Not a good idea. Don't assume that all users of iov_iter are well-behaving;
> > not everything is flavour-agnostic. If nothing else, you'll break the hell
> > out of infinibarf - both qib and hfi check that ->write_iter() gets
> > IOV_ITER target and fail otherwise.
>
> OK, I'll check up on that.
>
> > BTW, #work.iov_iter is going to be rebased and reordered; if nothing else,
> > a bunch of places like
> > dio->should_dirty = iter_is_iovec(iter) && iov_iter_rw(iter) == READ;
> > need to be dealt with before we switch new_sync_read() and new_sync_write()
> > to ITER_UBUF.
>
> I already made an attempt at that, see the git branch I sent in the last email.
There's several more, AFAICS (cifs, ceph, fuse, gfs2)... The check in /dev/fuse
turned out to be fine - it's only using primitives, so we can pass ITER_UBUF
ones there. mm/shmem.c check... similar, but I really wonder if x86 clear_user()
really sucks worse than copy_to_user() from zero page...
FWIW, I'd added bool ->user_backed next to ->data_source, with user_backed_iter()
as an inline predicate checking it. Seems to get slightly better iov_iter.c
code generation that way...
Current branch pushed to #new.iov_iter (at the moment; will rename back to work.iov_iter
once it gets more or less stable).
next prev parent reply other threads:[~2022-05-23 14:47 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-21 0:46 [RFC] what to do with IOCB_DSYNC? Al Viro
2021-06-21 13:59 ` Christoph Hellwig
2021-06-21 14:03 ` Matthew Wilcox
2021-06-21 14:09 ` Christoph Hellwig
2021-06-21 14:16 ` Matthew Wilcox
2021-06-21 14:22 ` Christoph Hellwig
2021-06-21 14:32 ` Al Viro
2021-06-21 14:35 ` Christoph Hellwig
2021-06-21 15:22 ` Jens Axboe
2022-05-21 17:48 ` Al Viro
2022-05-21 19:03 ` Jens Axboe
2022-05-21 22:14 ` Jens Axboe
2022-05-22 7:45 ` Christoph Hellwig
2022-05-22 10:23 ` Matthew Wilcox
2022-05-22 10:36 ` Al Viro
2022-05-22 11:15 ` Matthew Wilcox
2022-05-22 11:45 ` Christoph Hellwig
2022-05-22 12:39 ` Jens Axboe
2022-05-22 12:48 ` Al Viro
2022-05-22 13:02 ` Jens Axboe
2022-05-22 13:07 ` Al Viro
2022-05-22 13:09 ` Jens Axboe
2022-05-22 18:06 ` Jens Axboe
2022-05-22 18:25 ` Al Viro
2022-05-22 18:29 ` Jens Axboe
2022-05-22 18:39 ` Al Viro
2022-05-22 18:48 ` Jens Axboe
2022-05-22 19:04 ` Al Viro
2022-05-22 20:03 ` Jens Axboe
2022-05-23 0:42 ` Al Viro
2022-05-23 1:22 ` Jens Axboe
2022-05-23 1:28 ` Jens Axboe
2022-05-23 1:50 ` Jens Axboe
2022-05-23 2:43 ` Jens Axboe
2022-05-23 14:22 ` Al Viro
2022-05-23 14:34 ` Jens Axboe
2022-05-23 14:47 ` Al Viro [this message]
2022-05-23 15:12 ` Jens Axboe
2022-05-23 15:44 ` Jens Axboe
2022-05-23 15:49 ` Matthew Wilcox
2022-05-23 15:55 ` Jens Axboe
2022-05-23 16:03 ` Jens Axboe
2022-05-26 14:46 ` Jason A. Donenfeld
2022-05-27 10:09 ` Ingo Molnar
2022-05-27 10:15 ` Jason A. Donenfeld
2022-05-27 14:45 ` Samuel Neves
2022-05-27 10:25 ` Ingo Molnar
2022-05-27 10:36 ` Borislav Petkov
2022-05-28 20:54 ` Sedat Dilek
2022-05-28 20:38 ` Sedat Dilek
2022-05-28 20:39 ` Sedat Dilek
2022-05-23 16:15 ` Al Viro
2022-05-25 14:34 ` Matthew Wilcox
2022-05-26 23:19 ` Al Viro
2022-05-27 14:51 ` Jens Axboe
2022-05-22 12:21 ` Al Viro
2022-05-22 7:43 ` Christoph Hellwig
2022-05-22 12:41 ` Al Viro
2022-05-22 12:51 ` Christoph Hellwig
2021-06-21 14:22 ` Al Viro
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=YoueZl4Zx0WUH3CS@zeniv-ca.linux.org.uk \
--to=viro@zeniv.linux.org.uk \
--cc=axboe@kernel.dk \
--cc=hch@lst.de \
--cc=linux-fsdevel@vger.kernel.org \
--cc=willy@infradead.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 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.