From: Christoph Hellwig <hch@lst.de>
To: Keith Busch <kbusch@kernel.org>
Cc: Christoph Hellwig <hch@lst.de>,
Kanchan Joshi <joshi.k@samsung.com>,
axboe@kernel.dk, hare@suse.de, sagi@grimberg.me,
martin.petersen@oracle.com, brauner@kernel.org,
viro@zeniv.linux.org.uk, jack@suse.cz, jaegeuk@kernel.org,
bcrl@kvack.org, dhowells@redhat.com, bvanassche@acm.org,
asml.silence@gmail.com, linux-nvme@lists.infradead.org,
linux-fsdevel@vger.kernel.org, io-uring@vger.kernel.org,
linux-block@vger.kernel.org, linux-aio@kvack.org,
gost.dev@samsung.com, vishak.g@samsung.com,
javier.gonz@samsung.com
Subject: Re: [PATCH v7 0/3] FDP and per-io hints
Date: Tue, 15 Oct 2024 17:22:57 +0200 [thread overview]
Message-ID: <20241015152257.GA12898@lst.de> (raw)
In-Reply-To: <Zw6FoPCEJ0-rARGT@kbusch-mbp>
On Tue, Oct 15, 2024 at 09:09:20AM -0600, Keith Busch wrote:
> On Tue, Oct 15, 2024 at 07:50:06AM +0200, Christoph Hellwig wrote:
> > 1) While the current per-file temperature hints interface is not perfect
> > it is okay and make sense to reuse until we need something more fancy.
> > We make good use of it in f2fs and the upcoming zoned xfs code to help
> > with data placement and have numbers to show that it helps.
>
> So we're okay to proceed with patch 1?
No, see point 3 and 4 below for why. We'll need something like the
interface you suggested by me in point 4 and by you in reply to point 3
in the block layer, and then block/fops.c can implement the mapping on
top of that for drivers supporting it.
>
> > 2) A per-I/O interface to set these temperature hint conflicts badly
> > with how placement works in file systems. If we have an urgent need
> > for it on the block device it needs to be opt-in by the file operations
> > so it can be enabled on block device, but not on file systems by
> > default. This way you can implement it for block device, but not
> > provide it on file systems by default. If a given file system finds
> > a way to implement it it can still opt into implementing it of course.
>
> If we add a new fop_flag that only block fops enables, then it's okay?
The flag is just one part of it. Of course it need to be discoverable
from userspace in one way or another, and the marshalling of the flag
needs to be controller by the file system / fops instance.
> > 3) Mapping from temperature hints to separate write streams needs to
> > happen above the block layer, because file systems need to be in
> > control of it to do intelligent placement. That means if you want to
> > map from temperature hints to stream separation it needs to be
> > implemented at the file operation layer, not in the device driver.
> > The mapping implemented in this series is probably only useful for
> > block devices. Maybe if dumb file systems want to adopt it, it could
> > be split into library code for reuse, but as usual that's probably
> > best done only when actually needed.
>
> IMO, I don't even think the io_uring per-io hint needs to be limited to
> the fcntl lifetime values. It could just be a u16 value opaque to the
> block layer that just gets forwarded to the device.
Well, that's what I've been arguing for all the time, and what Kanchan's
previous series was working towards. It's not quite as trivial as
we need a bit more than just the stream, e.g. a way to discover how many
of them exist.
> > 4) To support this the block layer, that is bios and requests need
> > to support a notion of stream separation. Kanchan's previous series
> > had most of the bits for that, it just needs to be iterated on.
> >
> > All of this could have probably be easily done in the time spent on
> > this discussion.
---end quoted text---
next prev parent reply other threads:[~2024-10-15 15:23 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20240930182052epcas5p37edefa7556b87c3fbb543275756ac736@epcas5p3.samsung.com>
2024-09-30 18:13 ` [PATCH v7 0/3] FDP and per-io hints Kanchan Joshi
2024-09-30 18:13 ` [PATCH v7 1/3] nvme: enable FDP support Kanchan Joshi
2024-10-02 18:37 ` Bart Van Assche
2024-10-03 12:55 ` Christoph Hellwig
2024-09-30 18:13 ` [PATCH v7 2/3] block, fs: restore kiocb based write hint processing Kanchan Joshi
2024-09-30 18:13 ` [PATCH v7 3/3] io_uring: enable per-io hinting capability Kanchan Joshi
2024-10-02 14:26 ` Pavel Begunkov
2024-10-17 14:58 ` Kanchan Joshi
2024-10-02 18:29 ` Bart Van Assche
2024-10-01 9:20 ` [PATCH v7 0/3] FDP and per-io hints Christoph Hellwig
2024-10-01 15:58 ` James R. Bergsten
2024-10-01 16:18 ` Jens Axboe
2024-10-02 7:51 ` Christoph Hellwig
2024-10-02 15:03 ` Jens Axboe
2024-10-02 15:13 ` Christoph Hellwig
2024-10-02 15:17 ` Keith Busch
2024-10-02 15:19 ` Christoph Hellwig
2024-10-02 15:33 ` Keith Busch
2024-10-03 12:51 ` Christoph Hellwig
2024-10-02 15:47 ` Martin K. Petersen
2024-10-02 18:34 ` Bart Van Assche
2024-10-03 12:55 ` Christoph Hellwig
2024-10-03 21:48 ` Keith Busch
2024-10-03 22:00 ` Bart Van Assche
2024-10-03 22:12 ` Jens Axboe
2024-10-03 22:17 ` Keith Busch
2024-10-04 6:21 ` Javier González
2024-10-04 6:24 ` Christoph Hellwig
2024-10-04 6:59 ` Javier González
2024-10-04 12:32 ` Christoph Hellwig
2024-10-07 11:29 ` Javier González
2024-10-08 12:27 ` Christoph Hellwig
2024-10-03 12:54 ` Christoph Hellwig
2024-10-03 22:14 ` Jens Axboe
2024-10-04 5:31 ` Christoph Hellwig
2024-10-04 6:18 ` Javier González
2024-10-04 6:27 ` Christoph Hellwig
2024-10-04 6:52 ` Javier González
2024-10-04 12:30 ` Christoph Hellwig
2024-10-07 10:10 ` Javier González
2024-10-08 10:06 ` Hans Holmberg
2024-10-09 14:36 ` Javier Gonzalez
2024-10-10 6:40 ` Hans Holmberg
2024-10-10 7:13 ` Javier Gonzalez
2024-10-10 9:20 ` Christoph Hellwig
2024-10-10 12:22 ` Javier Gonzalez
2024-10-11 8:56 ` Christoph Hellwig
2024-10-11 12:21 ` Javier Gonzalez
2024-10-11 16:59 ` Keith Busch
2024-10-10 10:46 ` Hans Holmberg
2024-10-10 12:27 ` Javier Gonzalez
2024-10-11 8:59 ` Christoph Hellwig
2024-10-08 12:25 ` Christoph Hellwig
2024-10-08 14:44 ` Keith Busch
2024-10-09 9:28 ` Christoph Hellwig
2024-10-09 15:06 ` Keith Busch
2024-10-10 7:07 ` Javier González
2024-10-10 9:13 ` Christoph Hellwig
2024-10-10 11:59 ` Javier González
2024-10-11 9:02 ` Christoph Hellwig
2024-10-11 17:08 ` Jens Axboe
2024-10-14 6:21 ` Christoph Hellwig
2024-10-14 7:02 ` Javier Gonzalez
2024-10-14 7:47 ` Christoph Hellwig
2024-10-14 9:08 ` Javier Gonzalez
2024-10-14 11:50 ` Christoph Hellwig
2024-10-15 3:07 ` Javier Gonzalez
2024-10-15 5:30 ` Christoph Hellwig
2024-10-10 9:10 ` Christoph Hellwig
2024-10-09 16:28 ` Nitesh Shetty
2024-10-02 15:22 ` Jens Axboe
2024-10-01 16:23 ` Keith Busch
2024-10-02 7:49 ` Christoph Hellwig
2024-10-02 14:56 ` Keith Busch
2024-10-02 15:00 ` Jens Axboe
2024-10-03 0:20 ` Bart Van Assche
2024-10-15 5:50 ` Christoph Hellwig
2024-10-15 15:09 ` Keith Busch
2024-10-15 15:22 ` Christoph Hellwig [this message]
2024-10-17 14:35 ` Kanchan Joshi
2024-10-17 15:23 ` Christoph Hellwig
2024-10-17 15:44 ` Keith Busch
2024-10-17 15:46 ` Christoph Hellwig
2024-10-17 16:06 ` Keith Busch
2024-10-17 16:15 ` Bart Van Assche
2024-10-17 16:23 ` Keith Busch
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=20241015152257.GA12898@lst.de \
--to=hch@lst.de \
--cc=asml.silence@gmail.com \
--cc=axboe@kernel.dk \
--cc=bcrl@kvack.org \
--cc=brauner@kernel.org \
--cc=bvanassche@acm.org \
--cc=dhowells@redhat.com \
--cc=gost.dev@samsung.com \
--cc=hare@suse.de \
--cc=io-uring@vger.kernel.org \
--cc=jack@suse.cz \
--cc=jaegeuk@kernel.org \
--cc=javier.gonz@samsung.com \
--cc=joshi.k@samsung.com \
--cc=kbusch@kernel.org \
--cc=linux-aio@kvack.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=martin.petersen@oracle.com \
--cc=sagi@grimberg.me \
--cc=viro@zeniv.linux.org.uk \
--cc=vishak.g@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