Thread (33 messages) 33 messages, 5 authors, 2021-02-10

RE: [PATCH v19 3/3] scsi: ufs: Prepare HPB read for cached sub-region

From: Avri Altman <Avri.Altman@wdc.com>
Date: 2021-02-09 13:27:34
Also in: lkml

quoted
quoted
quoted
+     put_unaligned_be64(ppn, &cdb[6]);
You are assuming the HPB entries read out by "HPB Read Buffer" cmd
are
in Little
Endian, which is why you are using put_unaligned_be64 here. However,
this assumption
is not right for all the other flash vendors - HPB entries read out
by
"HPB Read Buffer"
cmd may come in Big Endian, if so, their random read performance are
screwed.
For this question, it is very hard to make a correct format since the
Spec doesn't give a clear definition. Should we have a default format,
if there is conflict, and then add quirk or add a vendor-specific
table?

Hi Avri
Do you have a good idea?
I don't know.  Better let Daejun answer this.
This was working for me for both Galaxy S20 (Exynos) as well as Xiaomi Mi10
(8250).
As for the endianity issue - 
I don't think that any fix is needed in the hpb driver.
It is readily seen that the ppn from get_ppn, and the one in the upiu cdb (upiu trace) are identical.
Therefore, if an issue exist, it is IMHO a device issue.

kworker/u16:10-315   [001] d..2    62.283264: ufshpb_get_ppn: Avri ppn 480d2f8244c21abd
  kworker/u16:10-315   [001] d..2    62.283336: ufshcd_upiu: v:1.10 send: T:62283314922, HDR:014000000000000000000000, CDB:8800002ddaac480d2f8244c21abd0100, D:

Again, verified on both gs20 (exynos) and mi10 (8250).
Thanks,
Avri
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help