linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Kanchan Joshi <joshi.k@samsung.com>
Cc: Christoph Hellwig <hch@lst.de>,
	axboe@kernel.dk, kbusch@kernel.org, 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: Thu, 17 Oct 2024 17:23:37 +0200	[thread overview]
Message-ID: <20241017152336.GA25327@lst.de> (raw)
In-Reply-To: <8be869a7-c858-459a-a34b-063bc81ce358@samsung.com>

On Thu, Oct 17, 2024 at 08:05:38PM +0530, Kanchan Joshi wrote:
> Seems per-I/O hints are not getting the love they deserve.
> Apart from the block device, the usecase is when all I/Os of VM (or 
> container) are to be grouped together or placed differently.

But that assumes the file system could actually support it.  Which
is hard when you don't assume the file system isn't simply a passthrough
entity, which will not give you great results.

> > 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.
> 
> Why do you see this as something that is so different across filesystems 
> that they would need to "find a way to implement"?

If you want to do useful stream separation you need to write data
sequentially into the stream.  Now with streams or FDP that does not
actually imply sequentially in LBA space, but if you want the file
system to not actually deal with fragmentation from hell, and be
easily track what is grouped together you really want it sequentially
in the LBA space as well.  In other words, any kind of write placement
needs to be intimately tied to the file system block allocator.

> Both per-file and per-io hints are supplied by userspace. Inode and 
> kiocb only happen to be the mean to receive the hint information.
> FS is free to use this information (iff it wants) or simply forward this 
> down.

As mentioned above just passing it down is not actually very useful.
It might give you nice benchmark numbers when you basically reimplement
space management in userspace on a fully preallocated file, but for that
you're better of just using the block device.  If you actually want
to treat the files as files you need full file system involvement.

> Per-file hint just gets stored (within inode) without individual FS 
> involvement. Per-io hint follows the same model (i.e., it is set by 
> upper layer like io_uring/aio) and uses kiocb to store the hint. It does 
> not alter the stored inode hint value!

Yes, and now you'll get complaints that the file system ignores it
when it can't properly support it.  This is why we need a per-fop
opt in.

> The generic code (like fs/direct-io.c, fs/iomap/direct-io.c etc.,) 
> already forwards the incoming hints, without any intelligence.

Yes, and that is a problem.  We stopped doing that, but Samsung sneaked
some of this back in recently as I noticed.

> Overall, I do not see the conflict. It's all user-driven. No?

I have the gut feeling that you've just run benchmarks on image files
emulating block devices and not actually tried real file system workloads
based on this unfortunately.


  reply	other threads:[~2024-10-17 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
     [not found]   ` <CGME20240930182056epcas5p33f823c00caadf9388b509bafcad86f3d@epcas5p3.samsung.com>
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
     [not found]   ` <CGME20240930182100epcas5p31a010c225f3c76aa4dc54fced32abd2a@epcas5p3.samsung.com>
2024-09-30 18:13     ` [PATCH v7 2/3] block, fs: restore kiocb based write hint processing Kanchan Joshi
     [not found]   ` <CGME20240930182103epcas5p4c9e91ca3cdf20e900b1425ae45fef81d@epcas5p4.samsung.com>
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
     [not found]                                             ` <CGME20241010122734eucas1p1e20a5263a4d69db81b50b8b03608fad1@eucas1p1.samsung.com>
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
     [not found]                                           ` <CGME20241010070738eucas1p2057209e5f669f37ca586ad4a619289ed@eucas1p2.samsung.com>
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
2024-10-17 14:35     ` Kanchan Joshi
2024-10-17 15:23       ` Christoph Hellwig [this message]
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=20241017152336.GA25327@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;
as well as URLs for NNTP newsgroup(s).