All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@kernel.dk>
To: Al Viro <viro@zeniv.linux.org.uk>
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: Sun, 22 May 2022 14:03:35 -0600	[thread overview]
Message-ID: <1b2cb369-2247-8c10-bd6e-405a8167f795@kernel.dk> (raw)
In-Reply-To: <YoqJROtrPpXWv948@zeniv-ca.linux.org.uk>

On 5/22/22 1:04 PM, Al Viro wrote:
> On Sun, May 22, 2022 at 12:48:20PM -0600, Jens Axboe wrote:
>> On 5/22/22 12:39 PM, Al Viro wrote:
>>> On Sun, May 22, 2022 at 12:29:16PM -0600, Jens Axboe wrote:
>>>> It was sent out as a discussion point, it's not a submission and it's by
>>>> no means complete (as mentioned!). If you're working on this, I'd be
>>>> happy to drop it, it's not like I really enjoy the iov_iter code... And
>>>> it sounds like you are?
>>>
>>> *snort*
>>>
>>> Yes, I am working on it.  As for enjoying that thing...  I'm not fond of
>>
>> OK great, I'll abandon this sandbox. Let me know when you have something
>> to test, and I can compare some numbers between non-iter, iter,
>> iter-with-ubuf.
>>
>>> forests of macros, to put it mildly.  Even in the trimmed form it still
>>> stinks, and places like copy_page_to_iter for iovec are still fucking
>>> awful wrt misguided microoptimization attempts - mine, at that, so I've
>>> nobody else to curse ;-/
>>
>> And it's not even clear which ones won't work with the generic variants,
>> and which ones are just an optimization. I suspect a lot of the icache
>> bloat from this just makes things worse...
> 
> ???
> 
> copy_page_{from,to}_iter() iovec side is needed not for the sake of
> optimizations - if you look at the generic variant, you'll see that it's
> basically "kmap_local_page + copy_{to,from}_iter() for the contents +
> kunmap_local_page", which obviously relies upon the copy_{to,from}_iter()
> being non-blocking.  So iovec part of it genuinely needs to differ from
> the generic variant; it's just that on top of that it had been (badly)
> microoptimized.  So were iterators, but that got at least somewhat cleaned

Right, I'm saying it's not _immediately_ clear which cases are what when
reading the code.

> up a while ago.  And no, turning that into indirect calls ended up with
> arseloads of overhead, more's the pity...

It's a shame, since indirect calls make for nicer code, but it's always
been slower and these days even more so.

> Anyway, at the moment I have something that builds; hadn't tried to
> boot it yet.

Nice!

-- 
Jens Axboe


  reply	other threads:[~2022-05-22 20:03 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 [this message]
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
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=1b2cb369-2247-8c10-bd6e-405a8167f795@kernel.dk \
    --to=axboe@kernel.dk \
    --cc=hch@lst.de \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=viro@zeniv.linux.org.uk \
    --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.