2021-02-03 07:11:59

by DooHyun Hwang

[permalink] [raw]
Subject: [PATCH] scsi: ufs: Add total count for each error history

Since the total error history count is unknown because the error history
records only the number of UFS_EVENT_HIST_LENGTH, add a member to count
each error history.

Signed-off-by: DooHyun Hwang <[email protected]>
---
drivers/scsi/ufs/ufshcd.c | 3 +++
drivers/scsi/ufs/ufshcd.h | 1 +
2 files changed, 4 insertions(+)

diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index fb32d122f2e3..7ebc892553fc 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -437,6 +437,8 @@ static void ufshcd_print_evt(struct ufs_hba *hba, u32 id,

if (!found)
dev_err(hba->dev, "No record of %s\n", err_name);
+ else
+ dev_err(hba->dev, "%s: total count=%u\n", err_name, e->count);
}

static void ufshcd_print_evt_hist(struct ufs_hba *hba)
@@ -4544,6 +4546,7 @@ void ufshcd_update_evt_hist(struct ufs_hba *hba, u32 id, u32 val)
e->val[e->pos] = val;
e->tstamp[e->pos] = ktime_get();
e->pos = (e->pos + 1) % UFS_EVENT_HIST_LENGTH;
+ e->count++;

ufshcd_vops_event_notify(hba, id, &val);
}
diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h
index aa9ea3552323..df28d3fc89a5 100644
--- a/drivers/scsi/ufs/ufshcd.h
+++ b/drivers/scsi/ufs/ufshcd.h
@@ -450,6 +450,7 @@ struct ufs_event_hist {
int pos;
u32 val[UFS_EVENT_HIST_LENGTH];
ktime_t tstamp[UFS_EVENT_HIST_LENGTH];
+ u32 count;
};

/**
--
2.29.0


2021-02-03 07:31:42

by Adrian Hunter

[permalink] [raw]
Subject: Re: [PATCH] scsi: ufs: Add total count for each error history

On 3/02/21 8:53 am, DooHyun Hwang wrote:
> Since the total error history count is unknown because the error history
> records only the number of UFS_EVENT_HIST_LENGTH, add a member to count
> each error history.
>
> Signed-off-by: DooHyun Hwang <[email protected]>

Hi

Please note that the following patch is already queued - see linux-next


commit b6cacaf2044fd9b82e5ceac88d8d17e04a01982f
Author: Adrian Hunter <[email protected]>
Date: Thu Jan 7 09:25:38 2021 +0200

scsi: ufs: ufs-debugfs: Add error counters

People testing have a need to know how many errors might be occurring over
time. Add error counters and expose them via debugfs.

A module initcall is used to create a debugfs root directory for
ufshcd-related items. In the case that modules are built-in, then
initialization is done in link order, so move ufshcd-core to the top of the
Makefile.

Link: https://lore.kernel.org/r/[email protected]
Reviewed-by: Avri Altman <[email protected]>
Reviewed-by: Bean Huo <[email protected]>
Reviewed-by: Can Guo <[email protected]>
Signed-off-by: Adrian Hunter <[email protected]>
Signed-off-by: Martin K. Petersen <[email protected]>


> ---
> drivers/scsi/ufs/ufshcd.c | 3 +++
> drivers/scsi/ufs/ufshcd.h | 1 +
> 2 files changed, 4 insertions(+)
>
> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
> index fb32d122f2e3..7ebc892553fc 100644
> --- a/drivers/scsi/ufs/ufshcd.c
> +++ b/drivers/scsi/ufs/ufshcd.c
> @@ -437,6 +437,8 @@ static void ufshcd_print_evt(struct ufs_hba *hba, u32 id,
>
> if (!found)
> dev_err(hba->dev, "No record of %s\n", err_name);
> + else
> + dev_err(hba->dev, "%s: total count=%u\n", err_name, e->count);
> }
>
> static void ufshcd_print_evt_hist(struct ufs_hba *hba)
> @@ -4544,6 +4546,7 @@ void ufshcd_update_evt_hist(struct ufs_hba *hba, u32 id, u32 val)
> e->val[e->pos] = val;
> e->tstamp[e->pos] = ktime_get();
> e->pos = (e->pos + 1) % UFS_EVENT_HIST_LENGTH;
> + e->count++;
>
> ufshcd_vops_event_notify(hba, id, &val);
> }
> diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h
> index aa9ea3552323..df28d3fc89a5 100644
> --- a/drivers/scsi/ufs/ufshcd.h
> +++ b/drivers/scsi/ufs/ufshcd.h
> @@ -450,6 +450,7 @@ struct ufs_event_hist {
> int pos;
> u32 val[UFS_EVENT_HIST_LENGTH];
> ktime_t tstamp[UFS_EVENT_HIST_LENGTH];
> + u32 count;
> };
>
> /**
>

2021-02-03 08:04:51

by DooHyun Hwang

[permalink] [raw]
Subject: RE: [PATCH] scsi: ufs: Add total count for each error history

Hi

Thank you for your review and I found the below commit in linux-next.
So, I'll reject this patch.

>On 3/02/21 8:53 am, DooHyun Hwang wrote:
>> Since the total error history count is unknown because the error
>> history records only the number of UFS_EVENT_HIST_LENGTH, add a member
>> to count each error history.
>>
>> Signed-off-by: DooHyun Hwang <[email protected]>
>
>Hi
>
>Please note that the following patch is already queued - see linux-next
>
>
>commit b6cacaf2044fd9b82e5ceac88d8d17e04a01982f
>Author: Adrian Hunter <[email protected]>
>Date: Thu Jan 7 09:25:38 2021 +0200
>
> scsi: ufs: ufs-debugfs: Add error counters
>
> People testing have a need to know how many errors might be occurring
>over
> time. Add error counters and expose them via debugfs.
>
> A module initcall is used to create a debugfs root directory for
> ufshcd-related items. In the case that modules are built-in, then
> initialization is done in link order, so move ufshcd-core to the top of
>the
> Makefile.
>
> Link: https://lore.kernel.org/r/20210107072538.21782-1-
>[email protected]
> Reviewed-by: Avri Altman <[email protected]>
> Reviewed-by: Bean Huo <[email protected]>
> Reviewed-by: Can Guo <[email protected]>
> Signed-off-by: Adrian Hunter <[email protected]>
> Signed-off-by: Martin K. Petersen <[email protected]>
>
>
>> ---
>> drivers/scsi/ufs/ufshcd.c | 3 +++
>> drivers/scsi/ufs/ufshcd.h | 1 +
>> 2 files changed, 4 insertions(+)
>>
>> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
>> index fb32d122f2e3..7ebc892553fc 100644
>> --- a/drivers/scsi/ufs/ufshcd.c
>> +++ b/drivers/scsi/ufs/ufshcd.c
>> @@ -437,6 +437,8 @@ static void ufshcd_print_evt(struct ufs_hba *hba,
>> u32 id,
>>
>> if (!found)
>> dev_err(hba->dev, "No record of %s\n", err_name);
>> + else
>> + dev_err(hba->dev, "%s: total count=%u\n", err_name, e->count);
>> }
>>
>> static void ufshcd_print_evt_hist(struct ufs_hba *hba) @@ -4544,6
>> +4546,7 @@ void ufshcd_update_evt_hist(struct ufs_hba *hba, u32 id, u32
>val)
>> e->val[e->pos] = val;
>> e->tstamp[e->pos] = ktime_get();
>> e->pos = (e->pos + 1) % UFS_EVENT_HIST_LENGTH;
>> + e->count++;
>>
>> ufshcd_vops_event_notify(hba, id, &val); } diff --git
>> a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h index
>> aa9ea3552323..df28d3fc89a5 100644
>> --- a/drivers/scsi/ufs/ufshcd.h
>> +++ b/drivers/scsi/ufs/ufshcd.h
>> @@ -450,6 +450,7 @@ struct ufs_event_hist {
>> int pos;
>> u32 val[UFS_EVENT_HIST_LENGTH];
>> ktime_t tstamp[UFS_EVENT_HIST_LENGTH];
>> + u32 count;
>> };
>>
>> /**
>>