RE: [PATCH v3] scsi: ufs: core: Add trace event for MCQ
From: Daejun Park
Date: Thu Feb 23 2023 - 17:28:58 EST
Hi Ziqi Chen,
...
> diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
> index 3b3cf78..67cb90d 100644
> --- a/drivers/ufs/core/ufshcd.c
> +++ b/drivers/ufs/core/ufshcd.c
> @@ -426,6 +426,7 @@ static void ufshcd_add_command_trace(struct ufs_hba *hba, unsigned int tag,
> struct ufshcd_lrb *lrbp = &hba->lrb[tag];
> struct scsi_cmnd *cmd = lrbp->cmd;
> struct request *rq = scsi_cmd_to_rq(cmd);
> + struct ufs_hw_queue *hwq;
> int transfer_len = -1;
>
> if (!cmd)
> @@ -456,9 +457,16 @@ static void ufshcd_add_command_trace(struct ufs_hba *hba, unsigned int tag,
> }
>
> intr = ufshcd_readl(hba, REG_INTERRUPT_STATUS);
> - doorbell = ufshcd_readl(hba, REG_UTP_TRANSFER_REQ_DOOR_BELL);
> - trace_ufshcd_command(dev_name(hba->dev), str_t, tag,
> - doorbell, transfer_len, intr, lba, opcode, group_id);
> +
> + if (is_mcq_enabled(hba)) {
> + hwq = ufshcd_mcq_req_to_hwq(hba, rq);
> + trace_ufshcd_command_mcq(dev_name(hba->dev), str_t, tag,
> + hwq, transfer_len, intr, lba, opcode, group_id);
How about passing member variables of hwq instead of passing hwq?
> + } else {
> + doorbell = ufshcd_readl(hba, REG_UTP_TRANSFER_REQ_DOOR_BELL);
> + trace_ufshcd_command(dev_name(hba->dev), str_t, tag,
> + doorbell, transfer_len, intr, lba, opcode, group_id);
> + }
> }
>
> static void ufshcd_print_clk_freqs(struct ufs_hba *hba)
> diff --git a/include/trace/events/ufs.h b/include/trace/events/ufs.h
> index 599739e..604b2cd 100644
> --- a/include/trace/events/ufs.h
> +++ b/include/trace/events/ufs.h
> @@ -10,6 +10,7 @@
> #define _TRACE_UFS_H
>
> #include <linux/tracepoint.h>
> +#include <ufs/ufshcd.h>
Then, it can be removed.
Thanks,
Daejun