From: Matthew Wilcox <willy@infradead.org>
To: Luis Chamberlain <mcgrof@kernel.org>
Cc: lsf-pc@lists.linux-foundation.org,
Christoph Hellwig <hch@infradead.org>,
David Howells <dhowells@redhat.com>,
"kbus >> Keith Busch" <kbusch@kernel.org>,
Pankaj Raghav <p.raghav@samsung.com>,
linux-fsdevel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: LSF/MM/BPF 2023 IOMAP conversion status update
Date: Sun, 29 Jan 2023 05:06:47 +0000 [thread overview]
Message-ID: <Y9X+5wu8AjjPYxTC@casper.infradead.org> (raw)
In-Reply-To: <20230129044645.3cb2ayyxwxvxzhah@garbanzo>
On Sat, Jan 28, 2023 at 08:46:45PM -0800, Luis Chamberlain wrote:
> I'm hoping this *might* be useful to some, but I fear it may leave quite
> a bit of folks with more questions than answers as it did for me. And
> hence I figured that *this aspect of this topic* perhaps might be a good
> topic for LSF. The end goal would hopefully then be finally enabling us
> to document IOMAP API properly and helping with the whole conversion
> effort.
+1 from me.
I've made a couple of abortive efforts to try and convert a "trivial"
filesystem like ext2/ufs/sysv/jfs to iomap, and I always get hung up on
what the semantics are for get_block_t and iomap_begin().
> Perhaps fs/buffers.c could be converted to folios only, and be done
> with it. But would we be loosing out on something? What would that be?
buffer_heads are inefficient for multi-page folios because some of the
algorthims are O(n^2) for n being the number of buffers in a folio.
It's fine for 8x 512b buffers in a 4k page, but for 512x 4kb buffers in
a 2MB folio, it's pretty sticky. Things like "Read I/O has completed on
this buffer, can I mark the folio as Uptodate now?" For iomap, that's a
scan of a 64 byte bitmap up to 512 times; for BHs, it's a loop over 512
allocations, looking at one bit in each BH before moving on to the next.
Similarly for writeback, iirc.
So +1 from me for a "How do we convert 35-ish block based filesystems
from BHs to iomap for their buffered & direct IO paths". There's maybe a
separate discussion to be had for "What should the API be for filesystems
to access metadata on the block device" because I don't believe the
page-cache based APIs are easy for fs authors to use.
Maybe some related topics are
"What testing should we require for some of these ancient filesystems?"
"Whose job is it to convert these 35 filesystems anyway, can we just
delete some of them?"
"Is there a lower-performance but easier-to-implement API than iomap
for old filesystems that only exist for compatibiity reasons?"
next prev parent reply other threads:[~2023-01-29 5:07 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-29 4:46 LSF/MM/BPF 2023 IOMAP conversion status update Luis Chamberlain
2023-01-29 5:06 ` Matthew Wilcox [this message]
2023-01-29 5:39 ` Luis Chamberlain
2023-02-08 16:04 ` Jan Kara
2023-02-24 7:01 ` Zhang Yi
2023-02-26 20:16 ` Ritesh Harjani
2023-03-16 14:40 ` [RFCv1][WIP] ext2: Move direct-io to use iomap Ritesh Harjani (IBM)
2023-03-16 15:41 ` Darrick J. Wong
2023-03-20 16:11 ` Ritesh Harjani
2023-03-20 13:15 ` Christoph Hellwig
2023-03-20 17:51 ` Jan Kara
2023-03-22 6:34 ` Ritesh Harjani
2023-03-23 11:30 ` Jan Kara
2023-03-23 13:19 ` Ritesh Harjani
2023-03-30 0:02 ` Christoph Hellwig
2023-02-27 19:26 ` LSF/MM/BPF 2023 IOMAP conversion status update Darrick J. Wong
2023-02-27 21:02 ` Matthew Wilcox
2023-02-27 19:47 ` Darrick J. Wong
2023-02-27 20:24 ` Luis Chamberlain
2023-02-27 19:06 ` Darrick J. Wong
2023-02-27 19:58 ` Luis Chamberlain
2023-03-01 16:59 ` Ritesh Harjani
2023-03-01 17:08 ` Darrick J. Wong
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=Y9X+5wu8AjjPYxTC@casper.infradead.org \
--to=willy@infradead.org \
--cc=dhowells@redhat.com \
--cc=hch@infradead.org \
--cc=kbusch@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lsf-pc@lists.linux-foundation.org \
--cc=mcgrof@kernel.org \
--cc=p.raghav@samsung.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).