Message ID | 20241011092134.2909496-4-rickard.andersson@axis.com |
---|---|
State | New |
Headers | show |
Series | [v2,01/10] ubi: Expose mean erase counter in sysfs | expand |
在 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@axis.com> > --- > drivers/mtd/ubi/build.c | 5 +++++ > 1 file changed, 5 insertions(+) Reviewed-by: Zhihao Cheng <chengzhihao1@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, >
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,
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@axis.com> --- drivers/mtd/ubi/build.c | 5 +++++ 1 file changed, 5 insertions(+)