[PATCH v1 2/3] scsi: ufs: Optimize host lock on transfer requests send/compl paths

Stanley Chu stanley.chu at mediatek.com
Wed Jun 2 19:54:25 PDT 2021

Hi Can,

On Mon, 2021-05-24 at 01:36 -0700, Can Guo wrote:
> Current UFS IRQ handler is completely wrapped by host lock, and because
> ufshcd_send_command() is also protected by host lock, when IRQ handler
> fires, not only the CPU running the IRQ handler cannot send new requests,
> the rest CPUs can neither. Move the host lock wrapping the IRQ handler into
> specific branches, i.e., ufshcd_uic_cmd_compl(), ufshcd_check_errors(),
> ufshcd_tmc_handler() and ufshcd_transfer_req_compl(). Meanwhile, to further
> reduce occpuation of host lock in ufshcd_transfer_req_compl(), host lock is
> no longer required to call __ufshcd_transfer_req_compl(). As per test, the
> optimization can bring considerable gain to random read/write performance.
> Cc: Stanley Chu <stanley.chu at mediatek.com>
> Co-developed-by: Asutosh Das <asutoshd at codeaurora.org>
> Signed-off-by: Asutosh Das <asutoshd at codeaurora.org>
> Signed-off-by: Can Guo <cang at codeaurora.org>

According to my test, the performance indeed has impressive improvement
with this series!

Reviewed-by: Stanley Chu <stanley.chu at mediatek.com>

>  #endif
>  	bool req_abort_skip;
> -	bool in_use;
>  };
>  /**

More information about the Linux-mediatek mailing list