Messages in this thread Patch in this message | | | From | chengzhihao <> | Subject | 答复: 答复: 答复: [PATCH RFC] ubi: ubi wl get peb: Replace a limited number of attem pts with polling while getting PEB | Date | Thu, 1 Aug 2019 13:19:28 +0000 |
| |
I have tested this extreme case(No free PEBs left after creating test volumes) on different type of machines for 100 times. The biggest number of attempts are shown below:
x86_64 arm64 2-core 4 4 4-core 8 4 8-core 4 4
So, setting the number of attempts to 10 is fine. May I send another PATCH to improve it?
Planned revisions: --- a/drivers/mtd/ubi/fastmap-wl.c +++ b/drivers/mtd/ubi/fastmap-wl.c @@ -221,12 +221,12 @@ int ubi_wl_get_peb(struct ubi_device *ubi) if (pool->used == pool->size) { spin_unlock(&ubi->wl_lock); - if (retried) { + retried++; + if (retried == 10) { ubi_err(ubi, "Unable to get a free PEB from user WL pool"); ret = -ENOSPC; goto out; } - retried = 1; up_read(&ubi->fm_eba_sem); ret = produce_free_peb(ubi); if (ret < 0) { -----邮件原件----- 发件人: Richard Weinberger [mailto:richard@nod.at] 发送时间: 2019年8月1日 17:40 收件人: chengzhihao <chengzhihao1@huawei.com> 抄送: zhangyi (F) <yi.zhang@huawei.com>; linux-mtd <linux-mtd@lists.infradead.org>; linux-kernel <linux-kernel@vger.kernel.org> 主题: Re: 答复: 答复: [PATCH RFC] ubi: ubi_wl_get_peb: Replace a limited number of attempts with polling while getting PEB ----- Ursprüngliche Mail ----- >> Do you have numbers how many attempts were needed to get a free block? > I tested it dozens of times. The biggest number of attempts I've ever > had so far is 6. In most cases, it only takes 2 or 3 times. So raising the retry count to, let's say, 10 would work too? Having it unbound feels dangerous because it may hide other problems.
Thanks, //richard
| |