From: Martin K. Petersen Date: Fri, 31 May 2024 00:36:08 +0000 (-0400) Subject: Merge patch series "scsi: ufs: Allow RTT negotiation" X-Git-Tag: io_uring-6.11-20240722~20^2~24 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=23646f013404a69e2cc5b1be51eef67e720d7021;p=linux-block.git Merge patch series "scsi: ufs: Allow RTT negotiation" Avri Altman says: The rtt-upiu packets precede any data-out upiu packets, thus synchronizing the data input to the device: this mostly applies to write operations, but there are other operations that requires rtt as well. There are several rules binding this rtt - data-out dialog, specifically There can be at most outstanding bMaxNumOfRTT such packets. This might have an effect on write performance (sequential write in particular), as each data-out upiu must wait for its rtt sibling. UFSHCI expects bMaxNumOfRTT to be min(bDeviceRTTCap, NORTT). However, as of today, there does not appear to be no-one who sets it: not the host controller nor the driver. It wasn't an issue up to now: bMaxNumOfRTT is set to 2 after manufacturing, and wasn't limiting the write performance. UFS4.0, and specifically gear 5 changes this, and requires the device to be more attentive. This doesn't come free - the device has to allocate more resources to that end, but the sequential write performance improvement is significant. Early measurements shows 25% gain when moving from rtt 2 to 9. Therefore, set bMaxNumOfRTT to be min(bDeviceRTTCap, NORTT) as UFSHCI expects. Link: https://lore.kernel.org/r/20240530142510.734-1-avri.altman@wdc.com Signed-off-by: Martin K. Petersen --- 23646f013404a69e2cc5b1be51eef67e720d7021