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

From: Can Guo
Date: Thu Jun 03 2021 - 21:49:45 EST


Hi Stanley,

On 2021-06-03 10:54, Stanley Chu wrote:
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@xxxxxxxxxxxx>
Co-developed-by: Asutosh Das <asutoshd@xxxxxxxxxxxxxx>
Signed-off-by: Asutosh Das <asutoshd@xxxxxxxxxxxxxx>
Signed-off-by: Can Guo <cang@xxxxxxxxxxxxxx>

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


Thanks a lot for your time and review. :)

Regards,
Can Guo.

Reviewed-by: Stanley Chu <stanley.chu@xxxxxxxxxxxx>




#endif

bool req_abort_skip;
- bool in_use;
};

/**