All of lore.kernel.org
 help / color / mirror / Atom feed
From: Damien Le Moal <dlemoal@kernel.org>
To: Bart Van Assche <bvanassche@acm.org>, Jens Axboe <axboe@kernel.dk>
Cc: linux-block@vger.kernel.org, linux-scsi@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	"Martin K . Petersen" <martin.petersen@oracle.com>,
	Christoph Hellwig <hch@lst.de>,
	Niklas Cassel <Niklas.Cassel@wdc.com>,
	Avri Altman <Avri.Altman@wdc.com>, Bean Huo <huobean@gmail.com>,
	Daejun Park <daejun7.park@samsung.com>,
	Hannes Reinecke <hare@suse.de>
Subject: Re: [PATCH v2 03/15] block: Support data lifetime in the I/O priority bitfield
Date: Fri, 13 Oct 2023 10:08:29 +0900	[thread overview]
Message-ID: <2fa9ea51-c343-4cc2-b755-a5de024bb32f@kernel.org> (raw)
In-Reply-To: <4fee2c56-7631-45d2-b709-2dadea057f52@acm.org>

On 10/13/23 03:00, Bart Van Assche wrote:
> On 10/11/23 18:02, Damien Le Moal wrote:
>> Some have stated interest in CDL in NVMe-oF context, which could
>> imply that combining CDL and lifetime may be something useful to do
>> in that space...
> 
> We are having this discussion because bi_ioprio is sixteen bits wide and
> because we don't want to make struct bio larger. How about expanding the
> bi_ioprio field from 16 to 32 bits and to use separate bits for CDL
> information and data lifetimes?

I guess we could do that as well. User side aio_reqprio field of struct aiocb,
which is used by io_uring and libaio, is an int, so 32-bits also. Changing
bi_ioprio to match that should not cause regressions or break user space I
think. Kernel uapi ioprio.h will need some massaging though.

> This patch does not make struct bio bigger because it changes a three
> byte hole with a one byte hole:

Yeah, but if the kernel is compiled with struct randomization, that does not
really apply, doesn't it ?

Reading Niklas's reply to Kanchan, I was reminded that using ioprio hint for
the lifetime may have one drawback: that information will be propagated to the
device only for direct IOs, no ? For buffered IOs, the information will be
lost. The other potential disadvantage of the ioprio interface is that we
cannot define ioprio+hint per file (or per inode really), unlike the old
write_hint that you initially reintroduced. Are these points blockers for the
user API you were thinking of ? How do you envision the user specifying
lifetime ? Per file ? Or are you thinking of not relying on the user to specify
that but rather the FS (e.g. f2fs) deciding on its own ? If it is the latter, I
think ioprio+hint is fine (it is simple). But if it is the former, the ioprio
API may not be the best suited for the job at hand.

-- 
Damien Le Moal
Western Digital Research


  reply	other threads:[~2023-10-13  1:08 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-05 19:40 [PATCH v2 00/15] Pass data temperature information to UFS devices Bart Van Assche
2023-10-05 19:40 ` [PATCH v2 01/15] block: Make bio_set_ioprio() modify fewer bio->bi_ioprio bits Bart Van Assche
2023-10-06  6:28   ` Kanchan Joshi
2023-10-06 18:20     ` Bart Van Assche
2023-10-10  5:22   ` Kanchan Joshi
2023-10-11 16:52     ` Bart Van Assche
2023-10-12  8:49       ` Kanchan Joshi
2023-10-12 14:03         ` Niklas Cassel
2023-10-12 17:42         ` Bart Van Assche
2023-10-05 19:40 ` [PATCH v2 02/15] blk-ioprio: Modify " Bart Van Assche
2023-10-06  6:36   ` Kanchan Joshi
2023-10-06 18:25     ` Bart Van Assche
2023-10-05 19:40 ` [PATCH v2 03/15] block: Support data lifetime in the I/O priority bitfield Bart Van Assche
2023-10-06  6:42   ` Kanchan Joshi
2023-10-06  8:19   ` Damien Le Moal
2023-10-06  9:53     ` Niklas Cassel
2023-10-06 18:07     ` Bart Van Assche
2023-10-11 20:51       ` Bart Van Assche
2023-10-12  1:02         ` Damien Le Moal
2023-10-12 18:00           ` Bart Van Assche
2023-10-13  1:08             ` Damien Le Moal [this message]
2023-10-13  9:33               ` Niklas Cassel
2023-10-13 21:20                 ` Bart Van Assche
2023-10-16  9:20                   ` Niklas Cassel
2023-10-16 16:36                     ` Bart Van Assche
2023-10-13 20:18               ` Bart Van Assche
2023-10-15 22:22                 ` Damien Le Moal
2023-10-16 16:31                   ` Bart Van Assche
2023-10-16  6:17     ` Christoph Hellwig
2023-10-16 16:32       ` Bart Van Assche
2023-10-05 19:40 ` [PATCH v2 04/15] fs: Restore write hint support Bart Van Assche
2023-10-10  5:42   ` Kanchan Joshi
2023-10-11 16:56     ` Bart Van Assche
2023-10-16  6:20   ` Christoph Hellwig
2023-10-05 19:40 ` [PATCH v2 05/15] fs/f2fs: Restore the whint_mode mount option Bart Van Assche
2023-10-05 19:40 ` [PATCH v2 06/15] scsi: core: Query the Block Limits Extension VPD page Bart Van Assche
2023-10-05 19:40 ` [PATCH v2 07/15] scsi_proto: Add structures and constants related to I/O groups and streams Bart Van Assche
2023-10-05 19:40 ` [PATCH v2 08/15] sd: Translate data lifetime information Bart Van Assche
2023-10-05 19:40 ` [PATCH v2 09/15] scsi_debug: Reduce code duplication Bart Van Assche
2023-10-05 19:40 ` [PATCH v2 10/15] scsi_debug: Support the block limits extension VPD page Bart Van Assche
2023-10-05 19:40 ` [PATCH v2 11/15] scsi_debug: Rework page code error handling Bart Van Assche
2023-10-05 19:40 ` [PATCH v2 12/15] scsi_debug: Rework subpage " Bart Van Assche
2023-10-05 19:40 ` [PATCH v2 13/15] scsi_debug: Implement the IO Advice Hints Grouping mode page Bart Van Assche
2023-10-05 19:41 ` [PATCH v2 14/15] scsi_debug: Implement GET STREAM STATUS Bart Van Assche
2023-10-05 19:41 ` [PATCH v2 15/15] scsi_debug: Maintain write statistics per group number Bart Van Assche

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=2fa9ea51-c343-4cc2-b755-a5de024bb32f@kernel.org \
    --to=dlemoal@kernel.org \
    --cc=Avri.Altman@wdc.com \
    --cc=Niklas.Cassel@wdc.com \
    --cc=axboe@kernel.dk \
    --cc=bvanassche@acm.org \
    --cc=daejun7.park@samsung.com \
    --cc=hare@suse.de \
    --cc=hch@lst.de \
    --cc=huobean@gmail.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.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 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.