[PATCH v2 04/10] ubi: Expose mean erase counter for data in sysfs
Zhihao Cheng
chengzhihao1 at huawei.com
Fri Oct 11 05:04:04 PDT 2024
在 2024/10/11 17:21, Rickard Andersson 写道:
> Expose mean erase counter for data area in sysfs. Data area includes
> all blocks except for the fastmap area.
>
> This value can be used in order to estimate life expectancy of the
> flash.
>
> Signed-off-by: Rickard Andersson <rickard.andersson at axis.com>
> ---
> drivers/mtd/ubi/build.c | 5 +++++
> 1 file changed, 5 insertions(+)
Reviewed-by: Zhihao Cheng <chengzhihao1 at huawei.com>
>
> diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
> index f5a3a3f7d490..b253dcf849c7 100644
> --- a/drivers/mtd/ubi/build.c
> +++ b/drivers/mtd/ubi/build.c
> @@ -138,6 +138,8 @@ static struct device_attribute dev_max_ec_fastmap =
> __ATTR(max_ec_fastmap, S_IRUGO, dev_attribute_show, NULL);
> static struct device_attribute dev_mean_ec_fastmap =
> __ATTR(mean_ec_fastmap, S_IRUGO, dev_attribute_show, NULL);
> +static struct device_attribute dev_mean_ec_data =
> + __ATTR(mean_ec_data, S_IRUGO, dev_attribute_show, NULL);
> #endif
> static struct device_attribute dev_reserved_for_bad =
> __ATTR(reserved_for_bad, S_IRUGO, dev_attribute_show, NULL);
> @@ -463,6 +465,8 @@ static ssize_t dev_attribute_show(struct device *dev,
> ret = sprintf(buf, "%d\n", ubi_calc_max_ec(ubi, 0, UBI_FM_MAX_START));
> else if (attr == &dev_mean_ec_fastmap)
> ret = sprintf(buf, "%d\n", ubi_calc_mean_ec(ubi, 0, UBI_FM_MAX_START));
> + else if (attr == &dev_mean_ec_data)
> + ret = sprintf(buf, "%d\n", ubi_calc_mean_ec(ubi, UBI_FM_MAX_START, ubi->peb_count));
> #endif
> else if (attr == &dev_reserved_for_bad)
> ret = sprintf(buf, "%d\n", ubi->beb_rsvd_pebs);
> @@ -494,6 +498,7 @@ static struct attribute *ubi_dev_attrs[] = {
> #ifdef CONFIG_MTD_UBI_FASTMAP
> &dev_max_ec_fastmap.attr,
> &dev_mean_ec_fastmap.attr,
> + &dev_mean_ec_data.attr,
> #endif
> &dev_reserved_for_bad.attr,
> &dev_bad_peb_count.attr,
>
More information about the linux-mtd
mailing list