[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <face6dce-d860-a7e6-fe9c-39f59cef22c5@huawei.com>
Date: Sat, 15 Jan 2022 16:46:07 +0800
From: Zhihao Cheng <chengzhihao1@...wei.com>
To: Richard Weinberger <richard@....at>
CC: Miquel Raynal <miquel.raynal@...tlin.com>,
Vignesh Raghavendra <vigneshr@...com>,
mcoquelin stm32 <mcoquelin.stm32@...il.com>,
"kirill shutemov" <kirill.shutemov@...ux.intel.com>,
Sascha Hauer <s.hauer@...gutronix.de>,
linux-mtd <linux-mtd@...ts.infradead.org>,
linux-kernel <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v6 12/15] ubi: fastmap: Add all fastmap pebs into
'ai->fastmap' when fm->used_blocks>=2
>> Yes. But if you look into ubi_wl_init() you see that fastmap anchor PEBs
>> get erases synchronously(!). The comment before the erasure explains why.
> About erasing fastmap anchor PEB synchronously, I admit curreunt UBI
> implementation cannot satisfy it, even with my fix applied. Wait, it
> seems that UBI has never made it sure. Old fastmap PEBs could be erased
> asynchronously, they could be counted into 'fmh->erase_peb_count' even
> in early UBI implementation code, so old fastmap anchor PEB will be
> added into 'ai->erase' and be erased asynchronously in next attaching.
In next attaching old fastmap PEBs will be processed as following:
ubi_attach_fastmap -> add_aeb(ai, &ai->erase...)
ubi_wl_init
list_for_each_entry_safe(aeb, tmp, &ai->erase)
erase_aeb // erase asynchronously
ubi->lookuptbl[e->pnum] = e
list_for_each_entry(aeb, &ai->fastmap, u.list)
e = ubi_find_fm_block(ubi, aeb->pnum)
if (e) {
...
} else {
if (ubi->lookuptbl[aeb->pnum]) // old fastmap PEBs are
assigned to 'ubi->lookuptbl'
continue;
}
> But, I feel it is not a problem, find_fm_anchor() can help us find out
> the right fastmap anchor PEB according seqnum.
Powered by blists - more mailing lists