diff mbox series

[v2,4/4] scsi: ufs: Use UPIU query trace in devman_upiu_cmd

Message ID 20210531104308.391842-5-huobean@gmail.com
State New
Headers show
Series [v2,1/4] scsi: ufs: Cleanup ufshcd_add_command_trace() | expand

Commit Message

Bean Huo May 31, 2021, 10:43 a.m. UTC
From: Bean Huo <beanhuo@micron.com>

Since devman_upiu_cmd is not COMMAND UPIU, and doesn't have
CDB, it is better to use UPIU query trace, which provides more
helpful information for issue shooting.

Signed-off-by: Bean Huo <beanhuo@micron.com>
---
 drivers/scsi/ufs/ufshcd.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Can Guo June 2, 2021, 2:29 a.m. UTC | #1
Hi Bean,

On 2021-05-31 18:43, Bean Huo wrote:
> From: Bean Huo <beanhuo@micron.com>

> 

> Since devman_upiu_cmd is not COMMAND UPIU, and doesn't have

> CDB, it is better to use UPIU query trace, which provides more

> helpful information for issue shooting.

> 

> Signed-off-by: Bean Huo <beanhuo@micron.com>

> ---

>  drivers/scsi/ufs/ufshcd.c | 3 +++

>  1 file changed, 3 insertions(+)

> 

> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c

> index c84bd8e045f6..deb9e232b349 100644

> --- a/drivers/scsi/ufs/ufshcd.c

> +++ b/drivers/scsi/ufs/ufshcd.c

> @@ -6701,6 +6701,7 @@ static int ufshcd_issue_devman_upiu_cmd(struct

> ufs_hba *hba,

> 

>  	hba->dev_cmd.complete = &wait;

> 

> +	ufshcd_add_query_upiu_trace(hba, UFS_QUERY_SEND, lrbp->ucd_req_ptr);

>  	/* Make sure descriptors are ready before ringing the doorbell */

>  	wmb();

>  	spin_lock_irqsave(hba->host->host_lock, flags);

> @@ -6732,6 +6733,8 @@ static int ufshcd_issue_devman_upiu_cmd(struct

> ufs_hba *hba,

>  			err = -EINVAL;

>  		}

>  	}

> +	ufshcd_add_query_upiu_trace(hba, err ? UFS_QUERY_ERR : 

> UFS_QUERY_COMP,

> +				    (struct utp_upiu_req *)lrbp->ucd_rsp_ptr);

> 

>  out:

>  	blk_put_request(req);


What about ufshcd_exec_dev_cmd()?

Thanks,
Can Guo.
Bean Huo June 2, 2021, 9:05 p.m. UTC | #2
On Wed, 2021-06-02 at 10:29 +0800, Can Guo wrote:
> >        spin_lock_irqsave(hba->host->host_lock, flags);

> > @@ -6732,6 +6733,8 @@ static int

> > ufshcd_issue_devman_upiu_cmd(struct

> > ufs_hba *hba,

> >                        err = -EINVAL;

> >                }

> >        }

> > +     ufshcd_add_query_upiu_trace(hba, err ? UFS_QUERY_ERR : 

> > UFS_QUERY_COMP,

> > +                                 (struct utp_upiu_req *)lrbp-

> > >ucd_rsp_ptr);

> >   out:

> >        blk_put_request(req);

> 

> 

> What about ufshcd_exec_dev_cmd()?

> 



Can,
thanks for your veiew.
yes, ufshcd_exec_dev_cmd() is only to send
UPIU command frame, and doesn't include CDB. It already uses
ufshcd_add_query_upiu_trace() to trace UPIU frame. 

Kind regards,
Bean

> Thanks,

> 

> Can Guo.
Can Guo June 4, 2021, 2:36 a.m. UTC | #3
On 2021-06-03 05:05, Bean Huo wrote:
> On Wed, 2021-06-02 at 10:29 +0800, Can Guo wrote:

>> >        spin_lock_irqsave(hba->host->host_lock, flags);

>> > @@ -6732,6 +6733,8 @@ static int

>> > ufshcd_issue_devman_upiu_cmd(struct

>> > ufs_hba *hba,

>> >                        err = -EINVAL;

>> >                }

>> >        }

>> > +     ufshcd_add_query_upiu_trace(hba, err ? UFS_QUERY_ERR :

>> > UFS_QUERY_COMP,

>> > +                                 (struct utp_upiu_req *)lrbp-

>> > >ucd_rsp_ptr);

>> >   out:

>> >        blk_put_request(req);

>> 

>> 

>> What about ufshcd_exec_dev_cmd()?

>> 

> 

> 

> Can,

> thanks for your veiew.

> yes, ufshcd_exec_dev_cmd() is only to send

> UPIU command frame, and doesn't include CDB. It already uses

> ufshcd_add_query_upiu_trace() to trace UPIU frame.

> 


Oh, sorry, I missed it.

Reviewed-by: Can Guo <cang@codeaurora.org>


> Kind regards,

> Bean

> 

>> Thanks,

>> 

>> Can Guo.
diff mbox series

Patch

diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index c84bd8e045f6..deb9e232b349 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -6701,6 +6701,7 @@  static int ufshcd_issue_devman_upiu_cmd(struct ufs_hba *hba,
 
 	hba->dev_cmd.complete = &wait;
 
+	ufshcd_add_query_upiu_trace(hba, UFS_QUERY_SEND, lrbp->ucd_req_ptr);
 	/* Make sure descriptors are ready before ringing the doorbell */
 	wmb();
 	spin_lock_irqsave(hba->host->host_lock, flags);
@@ -6732,6 +6733,8 @@  static int ufshcd_issue_devman_upiu_cmd(struct ufs_hba *hba,
 			err = -EINVAL;
 		}
 	}
+	ufshcd_add_query_upiu_trace(hba, err ? UFS_QUERY_ERR : UFS_QUERY_COMP,
+				    (struct utp_upiu_req *)lrbp->ucd_rsp_ptr);
 
 out:
 	blk_put_request(req);