From: Bart Van Assche <bvanassche@acm.org>
To: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: Jens Axboe <axboe@kernel.dk>,
linux-block@vger.kernel.org, linux-scsi@vger.kernel.org,
linux-fsdevel@vger.kernel.org, Christoph Hellwig <hch@lst.de>
Subject: Re: [PATCH 00/13] Pass data temperature information to zoned UFS devices
Date: Wed, 27 Sep 2023 13:49:39 -0700 [thread overview]
Message-ID: <be30c422-f84a-43b8-b176-3516ff5180cb@acm.org> (raw)
In-Reply-To: <yq1o7hnzbsy.fsf@ca-mkp.ca.oracle.com>
On 9/27/23 12:14, Martin K. Petersen wrote:
> I don't have any particular problems with your implementation,
> although I'm still trying to wrap my head around how to make this
> coexist with my I/O hinting series. But I guess there's probably not
> going to be a big overlap between devices that support both
> features.
Hi Martin,
This patch series should make it easier to implement I/O hint support
since some of the code added by this patch series is also needed to
implement I/O hint support.
> However, it still pains me greatly to see the SBC proposal being
> intertwined with the travesty that is streams. Why not define
> everything in the IO advice hints group descriptor? I/O hints already
> use GROUP NUMBER as an index. Why not just define a few permanent
> hint descriptors? What's the point of the additional level of
> indirection to tie this new feature into streams? RSCS basically says
> "ignore the streams-specific bits and bobs and do this other stuff
> instead". What does the streams infrastructure provide that can't be
> solved trivially in the IO advise mode page alone?
Hmm ... isn't that exactly what T10 did, define everything in the IO
advice hints group descriptor by introducing the new ST_ENBLE bit in
that descriptor?
This patch series relies on the constrained streams mechanism. A
constrained stream is permanently open. The new ST_ENBLE bit in the IO
advice hints group descriptor indicates whether or not an IO advice
hints group represents a permanent stream.
The new ST_ENBLE bit in the IO advice hints group descriptor allows SCSI
devices to interpret the index of the descriptor as a data lifetime.
From the approved T10 proposal:
Table x1 – RELATIVE LIFETIME field
..............................................
Code Relative lifetime
..............................................
00h no relative lifetime is applicable
01h shortest relative lifetime
02h second shortest relative lifetime
03h to 3Dh intermediate relative lifetimes
3Eh second longest relative lifetime
3Fh longest relative lifetime
..............................................
> For existing UFS devices which predate RSCS and streams but which
> support getting data temperature from GROUP NUMBER, what is the
> mechanism for detecting and enabling the feature?
We plan to ask UFS device vendors to modify the UFS device firmware and
to add support for the VPD and mode pages this patch series relies on.
My understanding is that this can be done easily in UFS device firmware.
Although it is technically possible to update the firmware of UFS
devices in smartphones, most smartphones do not support this because
this is considered risky. Hence, only new smartphones will benefit from
this patch series.
I do not want to add support in the Linux kernel for how conventional
UFS devices use the GROUP NUMBER field today. Conventional UFS devices
interpret the GROUP NUMBER field as a "ContextID". The ContextID
mechanism has a state, just like the SCSI stream mechanism. UFS contexts
need to be opened explicitly and are closed upon reset. From the UFS 4.0
specification: "No ContextID shall be open after power cycle."
Please let me know if you need more information.
Bart.
next prev parent reply other threads:[~2023-09-27 20:49 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-20 19:14 [PATCH 00/13] Pass data temperature information to zoned UFS devices Bart Van Assche
2023-09-20 19:14 ` [PATCH 01/13] fs/f2fs: Restore the whint_mode mount option Bart Van Assche
2023-10-02 10:32 ` Avri Altman
2023-10-03 19:33 ` Bean Huo
2023-09-20 19:14 ` [PATCH 02/13] fs: Restore support for F_GET_FILE_RW_HINT and F_SET_FILE_RW_HINT Bart Van Assche
2023-10-02 10:35 ` Avri Altman
2023-10-03 19:42 ` Bean Huo
2023-09-20 19:14 ` [PATCH 03/13] fs: Restore kiocb.ki_hint Bart Van Assche
2023-10-02 10:45 ` Avri Altman
2023-10-02 16:39 ` Bart Van Assche
2023-09-20 19:14 ` [PATCH 04/13] block: Restore write hint support Bart Van Assche
2023-10-02 11:23 ` Avri Altman
2023-10-02 17:02 ` Bart Van Assche
2023-10-02 18:08 ` Avri Altman
2023-10-03 19:52 ` Bean Huo
2023-09-20 19:14 ` [PATCH 05/13] scsi: core: Query the Block Limits Extension VPD page Bart Van Assche
2023-10-02 11:29 ` Avri Altman
2023-09-20 19:14 ` [PATCH 06/13] scsi_proto: Add struct io_group_descriptor Bart Van Assche
2023-10-02 11:41 ` Avri Altman
2023-10-02 17:16 ` Bart Van Assche
2023-10-02 18:16 ` Avri Altman
2023-09-20 19:14 ` [PATCH 07/13] sd: Translate data lifetime information Bart Van Assche
2023-10-02 13:11 ` Avri Altman
2023-10-02 17:42 ` Bart Van Assche
2023-10-03 5:48 ` Avri Altman
2023-10-03 16:58 ` Bart Van Assche
2023-10-03 16:59 ` Bart Van Assche
2023-09-20 19:14 ` [PATCH 08/13] scsi_debug: Reduce code duplication Bart Van Assche
2023-10-03 6:49 ` Avri Altman
2023-09-20 19:14 ` [PATCH 09/13] scsi_debug: Support the block limits extension VPD page Bart Van Assche
2023-09-20 19:14 ` [PATCH 10/13] scsi_debug: Rework page code error handling Bart Van Assche
2023-09-20 19:14 ` [PATCH 11/13] scsi_debug: Rework subpage " Bart Van Assche
2023-09-20 19:14 ` [PATCH 12/13] scsi_debug: Implement the IO Advice Hints Grouping mode page Bart Van Assche
2023-09-20 19:14 ` [PATCH 13/13] scsi_debug: Maintain write statistics per group number Bart Van Assche
2023-09-20 19:28 ` [PATCH 00/13] Pass data temperature information to zoned UFS devices Matthew Wilcox
2023-09-20 20:46 ` Bart Van Assche
2023-09-21 7:46 ` Niklas Cassel
2023-09-21 14:27 ` Bart Van Assche
2023-09-21 15:34 ` Niklas Cassel
2023-09-21 17:00 ` Bart Van Assche
2023-09-21 19:27 ` Matthew Wilcox
2023-09-21 19:39 ` Bart Van Assche
2023-09-21 19:46 ` Matthew Wilcox
2023-09-21 20:11 ` Bart Van Assche
2023-09-21 20:47 ` Jaegeuk Kim
2023-09-27 19:14 ` Martin K. Petersen
2023-09-27 20:49 ` Bart Van Assche [this message]
2023-10-02 11:38 ` Niklas Cassel
2023-10-02 11:53 ` Niklas Cassel
2023-10-02 16:33 ` Bart Van Assche
2023-10-02 19:19 ` Niklas Cassel
2023-10-02 17:20 ` Bart Van Assche
2023-10-03 1:40 ` Martin K. Petersen
2023-10-03 17:26 ` Bart Van Assche
2023-10-03 18:45 ` Niklas Cassel
2023-10-04 3:17 ` Martin K. Petersen
[not found] ` <CGME20230920191557epcas2p34a114957acf221c0d8f60acbb3107c77@epcms2p6>
2023-10-05 11:41 ` [PATCH 01/13] fs/f2fs: Restore the whint_mode mount option Daejun Park
[not found] ` <CGME20230920191549epcas2p35174687f1bebe87c42a658fa6aa57bff@epcms2p7>
2023-10-05 11:43 ` [PATCH 02/13] fs: Restore support for F_GET_FILE_RW_HINT and F_SET_FILE_RW_HINT Daejun Park
[not found] ` <CGME20230920191556epcas2p39b150e6715248b625588a50b333e82e2@epcms2p1>
2023-10-05 11:46 ` [PATCH 04/13] block: Restore write hint support Daejun Park
[not found] ` <CGME20230920191816epcas2p1b30d19aa41e51ffaf7c95f9100ee6311@epcms2p3>
2023-10-05 11:58 ` [PATCH 05/13] scsi: core: Query the Block Limits Extension VPD page Daejun Park
[not found] ` <CGME20230920191554epcas2p2280a25d6b2a7fa81563bd6cf1e75549d@epcms2p8>
2023-10-05 11:59 ` [PATCH 06/13] scsi_proto: Add struct io_group_descriptor Daejun Park
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=be30c422-f84a-43b8-b176-3516ff5180cb@acm.org \
--to=bvanassche@acm.org \
--cc=axboe@kernel.dk \
--cc=hch@lst.de \
--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 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).