From: Hyeoncheol Jeong <hyenc.jeong@samsung.com>
To: Bean Huo <beanhuo@iokpp.de>,
"James.Bottomley@HansenPartnership.com"
<James.Bottomley@HansenPartnership.com>,
"mkp@kernel.org" <mkp@kernel.org>,
"avri.altman@sandisk.com" <avri.altman@sandisk.com>,
"bvanassche@acm.org" <bvanassche@acm.org>,
"peter.wang@mediatek.com" <peter.wang@mediatek.com>,
"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>
Cc: Jinyoung Choi <j-young.choi@samsung.com>,
Alim Akhtar <alim.akhtar@samsung.com>,
"beanhuo@micron.com" <beanhuo@micron.com>,
"can.guo@oss.qualcomm.com" <can.guo@oss.qualcomm.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 2/2] scsi: ufs: Serve the device init reads from one aggregated read
Date: Tue, 06 Oct 2026 17:01:47 +0900 [thread overview]
Message-ID: <1582071873.61791274503378.JavaMail.epsvc@epcpadp1new> (raw)
In-Reply-To: <5339f61b72b28af335b4761acd2f0f05744501de.camel@iokpp.de>
Hi Bean,
Thank you for the detailed review.
On Fri, 02 Oct 2026 17:50:19 +0200, Bean Huo wrote:
> On Wed, 2026-09-30 at 14:18 +0900, Hyeoncheol Jeong wrote:
> > (bWriteBoosterBufferLifeTimeEst is served from the packet only in the
> > shared-buffer mode)
>
> I suggest we should aggregate-read as many of them as possible. If we lose even
> one descriptor, this feature becomes useless.
You are right. As this is the first step, I took a conservative approach
and left out the reads that are issued asynchronously, such as the power
and unit descriptors. I agree that covering as many of the init reads as
possible is what makes this worthwhile.
> table 14.28 gives the size of each attribute, but I could not find where Spec
> defines the layout of the attributes group in the aggregated data packet,
> section 10.7.9.14 only defines the group header.
>
> dDynCapNeeded (09h) is an array attribute; its number of indexes is MaxNumberLU.
> 1Ch-1Fh can also be per-LU in dedicated WB mode. If a device sends one entry per
> index, or keeps a slot for 01h or 11h-13h, every offset after it moves. Then
> bMaxNumOfRTT, bRefClkGatingWaitTime and bWriteBoosterBufferLifeTimeEst are read
> from the wrong bytes, with no error and no fallback to a single query.
> ufshcd_set_rtt() then writes a value based on that wrong data.
>
> Has this been tested on more than one vendor's UFS 5.0 device?
You are right, and thank you for the examples. It has been tested
only on a Samsung UFS 5.0 device.
I think this layout needs to be specified in more detail in the
specification. Once it is, I plan to rework the patch and submit it
again.
> if the reply is cut short (the device may return less than requested), a group
> that is complete but its next offset points past the end is rejected before its
> type is checked.
I will fix this when I rework the patch.
> > + if (hba->dev_info.wspecversion < 0x500 ||
> > + hba->dev_info.agg_read_unsupported)
> > + return;
>
> is this feature mandatory? or you assume this feature should be supported by
> defualt?
JESD220H lists AGGREGATED READ in Table 10.32 without marking it
optional, and I could not find a capability bit for it. The patch
therefore assumes a UFS 5.0 device supports it, but falls back to
individual queries if the device rejects it.
> If the device rejects the opcode with a query response error, is there a reason
> to retry? Retrying makes sense for a transient error, but not for "invalid
> opcode"
Agreed. A query response error should not be retried.
As I replied to Stanley, I think consuming these groups should wait
until the JEDEC specification clarifies the intra-group format. In the
next version I will keep only the interface from patch 1 and drop the
users in patch 2, and I will address the points above when they come
back.
Thanks,
Hyeoncheol
next prev parent reply other threads:[~2026-10-06 8:15 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20260930050201epcms2p13ab67182445b0555acc8d27b927cda86@epcms2p7>
[not found] ` <20260930050201epcms2p13ab67182445b0555acc8d27b927cda86@epcms2p1>
2026-09-30 5:15 ` [PATCH v2 1/2] scsi: ufs: Add the aggregated read query opcode and its reply format Hyeoncheol Jeong
2026-09-30 7:54 ` Peter Wang
2026-09-30 5:18 ` [PATCH v2 2/2] scsi: ufs: Serve the device init reads from one aggregated read Hyeoncheol Jeong
2026-09-30 7:28 ` sashiko-bot
2026-09-30 7:55 ` Peter Wang
2026-10-01 5:53 ` Stanley Jhu
2026-10-02 5:11 ` Hyeoncheol Jeong
2026-10-02 15:50 ` Bean Huo
2026-10-06 8:01 ` Hyeoncheol Jeong [this message]
[not found] <CGME20260930050201epcms2p13ab67182445b0555acc8d27b927cda86@epcms2p1>
2026-09-30 5:02 ` [PATCH v2 0/2] scsi: ufs: batch device-init reads with UFS 5.0 " Hyeoncheol Jeong
2026-10-02 9:24 ` Bean Huo
2026-10-06 7:17 ` Hyeoncheol Jeong
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=1582071873.61791274503378.JavaMail.epsvc@epcpadp1new \
--to=hyenc.jeong@samsung.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=alim.akhtar@samsung.com \
--cc=avri.altman@sandisk.com \
--cc=beanhuo@iokpp.de \
--cc=beanhuo@micron.com \
--cc=bvanassche@acm.org \
--cc=can.guo@oss.qualcomm.com \
--cc=j-young.choi@samsung.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=mkp@kernel.org \
--cc=peter.wang@mediatek.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).