[PATCH v1] scsi: ufs-mediatek: Enable UFSHCI_QUIRK_SKIP_MANUAL_WB_FLUSH_CTRL

Asutosh Das (asd) asutoshd at codeaurora.org
Sun Dec 27 20:32:35 EST 2020


On 12/24/2020 5:47 AM, Stanley Chu wrote:
> Hi Avri, Bean,
> 
> On Thu, 2020-12-24 at 13:01 +0100, Bean Huo wrote:
>> On Thu, 2020-12-24 at 11:03 +0000, Avri Altman wrote:
>>>>> Do you see any substantial benefit of having
>>>>> fWriteBoosterBufferFlushEn
>>>>> disabled?
>>>>
>>>> 1. The definition of fWriteBoosterBufferFlushEn is that host allows
>>>> device to do flush in anytime after fWriteBoosterBufferFlushEn is
>>>> set as
>>>> on. This is not what we want.
>>>>
>>>> Just Like BKOP, We do not want flush happening beyond host's
>>>> expected
>>>> timing that device performance may be "randomly" dropped.
>>>
>>> Explicit flush takes place only when the device is idle:
>>> if fWriteBoosterBufferFlushEn is set, the device is idle, and before
>>> h8 received.
>>> If a request arrives, the flush operation should be halted.
>>> So no performance degradation is expected.
>>
>> Hi Stanley
>>
>> Avri's comment is correct, fWriteBoosterBufferFlushEn==1, device will
>> flush only when it is in idle, once there is new incoming request, the
>> flush will be suspended. You should be very careful when you want to
>> skip this stetting of this flag.
> 
> Very appreciate your the clarification.
> 
> However similar to "Background Operations Termination Latency", while
> the next request comes, device may need some time to suspend on-going
> flush operations. This delay may "randomly" degrade the performance
> right?
> 

Have you actually seen this happening? I've not come across any random 
performance degradation concerns, hence asking.

 From what I've observed is the handling of WB buffer flush depends on 
how flash vendors implement it. Some vendors that I've seen just create 
a separate WB buffer in an instant. I don't know the intricacies of 
their implementation, but I guess the new WB buffer handles the requests 
while the previous one is being flushed.
Anyway, for Qualcomm platforms we plan to have 
fWriteBoosterBufferFlushEn=1 by default.

> Since the configuration, i.e., enable
> fWriteBoosterBufferFlushDuringHibernate only with
> fWriteBoosterBufferFlushEn disabled, has been applied in many of our
> mass-produced products these yeas, we would like to keep it unless the
> new setting has obvious benefits.
> 
> Thanks,
> Stanley Chu
> 
>>
>> Bean
>>
> 


-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
Linux Foundation Collaborative Project



More information about the Linux-mediatek mailing list