drivers/ufs/core/ufshcd.c | 1 + 1 file changed, 1 insertion(+)
From: liuderong <liuderong@oppo.com>
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@micron.com>
Reviewed-by: Peter Wang <peter.wang@mediatek.com>
Signed-off-by: liuderong <liuderong@oppo.com>
---
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)))
--
2.7.4
On 12/5/24 11:29 PM, liuderong@oppo.com wrote:
> From: liuderong <liuderong@oppo.com>
>
> 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@micron.com>
> Reviewed-by: Peter Wang <peter.wang@mediatek.com>
> Signed-off-by: liuderong <liuderong@oppo.com>
> ---
> 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.
© 2016 - 2025 Red Hat, Inc.