On 12/5/24 11:29 PM, liuderong@xxxxxxxx wrote:
From: liuderong <liuderong@xxxxxxxx>
For now, lrbp->compl_time_stamp_local_clock is set to zero
after send a sqe, but it is not updated after complete a cqe,
the printed information in ufshcd_print_tr will always be zero.
So update lrbp->cmpl_time_stamp_local_clock after complete a cqe.
Log sample:
ufshcd-qcom 1d84000.ufshc: UPIU[8] - issue time 8750227249 us
ufshcd-qcom 1d84000.ufshc: UPIU[8] - complete time 0 us
Fixes: c30d8d010b5e ("scsi: ufs: core: Prepare for completion in MCQ")
Reviewed-by: Bean Huo <beanhuo@xxxxxxxxxx>
Reviewed-by: Peter Wang <peter.wang@xxxxxxxxxxxx>
Signed-off-by: liuderong <liuderong@xxxxxxxx>
---
v1 -> v2: add fixes tag
drivers/ufs/core/ufshcd.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
index 6a26853..bd70fe1 100644
--- a/drivers/ufs/core/ufshcd.c
+++ b/drivers/ufs/core/ufshcd.c
@@ -5519,6 +5519,7 @@ void ufshcd_compl_one_cqe(struct ufs_hba *hba, int task_tag,
lrbp = &hba->lrb[task_tag];
lrbp->compl_time_stamp = ktime_get();
+ lrbp->compl_time_stamp_local_clock = local_clock();
cmd = lrbp->cmd;
if (cmd) {
if (unlikely(ufshcd_should_inform_monitor(hba, lrbp)))
Although this patch looks good to me: an infrastructure for gathering
I/O statistics should not occur in the UFS driver. This functionality
should be moved into the block layer core.
Thanks,
Bart.