Re: [RFC v2] UBI: UBIVIS (aka checkpointing) support
From: Artem Bityutskiy
Date: Fri May 11 2012 - 06:43:37 EST
On Thu, 2012-05-10 at 10:33 +0200, Richard Weinberger wrote:
> First of all, yes it's fully backward-compatible. It uses two new internal volume IDs
> with compat = UBI_COMPAT_DELETE.
> Old UBI implementations will delete the checkpoint and continue with scanning...
OK. BTW, these patches do not compile when the fastmap is disabled. I
hope you'll just kill the ifdefs in the next revision and this problem
will go away.
> Regarding design, ubi_wl_get_peb() currently offers three types of data types.
> UBI_LONGTERM, UBI_SHORTTERM and UBI_UNKNOWN. Do we really need them?
> Checkpointing has a pool of unknown PEBs. This PEBs have to be scanned while attaching.
> For now I had to create three pools (for UBI_LONGTERM, UBI_SHORTTERM and UBI_UNKNOWN).
> This makes the whole thing complexer than needed.
> It introduces also some nasty corner cases.
But AFAIR we already agreed that we kill these, no? I thought you'll
send a separate patch for this. We do not need this feature and to our
shame it even was not working and there was a bug found very recently.
> To make the review easier for you:
> The most critical code path is scan_pool() -> process_pool_seb() -> update_vol().
> It searches within a pool for PEBs which are no longer empty and scans them.
> After that it updates the corresponding volume.
> ubi_update_checkpoint() is also very important because it has to find
> unused PEBs at the beginning of the MTD to place the super block.
> Okay, got your point.
> I think "fastmap" is a good name because I can also use it within the code.
> So, while reviewing the code please keep s/checkpoint/fastmap/g and s/cp/fm/g in mind. ;-)
Description: This is a digitally signed message part