Re: [RFC][PATCH 7/7] MTD: UBI: wire up checkpointing

Shmulik Ladkani
2012-02-19T14:40:09Z

On Sun, 19 Feb 2012 15:08:44 +0100 Richard Weinberger <rw@linutronix.de> wrote:
> Am 19.02.2012 14:57, schrieb Shmulik Ladkani:
> > On Tue, 14 Feb 2012 21:06:46 +0100 Richard Weinberger<rw@linutronix.de> wrote:
> >> +#ifdef CONFIG_MTD_UBI_CHECKPOINT
> >> +static int attach_by_checkpointing(struct ubi_device *ubi)
> >> +{
> >> + int cp_start, err;
> >> + struct ubi_scan_info *si;
> >> +
> >> + cp_start = ubi_find_checkpoint(ubi);
> >> + if (cp_start< 0)
> >> + return -ENOENT;
> >> +
> >> + si = ubi_read_checkpoint(ubi, cp_start);
> >> + if (IS_ERR(si))
> >> + return PTR_ERR(si);
> >> +
> >> + ubi->bad_peb_count = 0;
> >> + ubi->good_peb_count = ubi->peb_count;
> >
> > Zero reported bad PEBs when checkpointing.
> > Seems that checkpointing does not remember number/location of bad PEBs.
>
> Currently checkpointing cares only about used and free PEBs.
> Bad PEBs are no longer visible to UBI after recovering from a checkpoint.

Ok.
However it is still reported to the log in 'ubi_attach_mtd_dev'
and as a sysfs attribute.
BTW, the counter is still incremented by WL subsystem, though.
Hence, reported value will be bad PEBs encountered since last attach
(where formerly, it was absolute total bad PEBs in the ubi device).
Maybe remove 'bad_peb_count' altogether.

Also, "ubi->good_peb_count = ubi->peb_count" results in different
'beb_rsvd_level' caculation, see 'ubi_calculate_reserved'.

> > Are we fine with that?
>
> This patch is a RFC. :-)

So I noticed :-)
Just trying to point out things which cause ubi system to behave
differently.

> Thanks,
> //richard

Wellcome. Will try to review the big stuff later on.

Regards,
Shmulik