mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* ubiattach reserves too many BEBs for each volume attached
@ 2022-02-11 15:23 wodev
  2022-02-11 15:36 ` Sascha Hauer
  0 siblings, 1 reply; 2+ messages in thread
From: wodev @ 2022-02-11 15:23 UTC (permalink / raw)
  To: barebox

If there is more than one volume on the device, ubiattach reserves 
amount of BEBs as for the whole device, each time. Small volumes can be 
covered mainly by reserved blocks on big devices.
With this the amount of BEBs is proportional to the volume size.

---
  drivers/mtd/ubi/build.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
index 94b4231..54e16f1 100644
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
@@ -237,7 +237,7 @@ static int get_bad_peb_limit(const struct ubi_device 
*ubi, int max_beb_per1024)
  	else
  		device_size = ubi->mtd->size;

-	device_pebs = mtd_div_by_eb(device_size, ubi->mtd);
+	device_pebs = mtd_div_by_eb(ubi->mtd->size, ubi->mtd);
  	limit = mult_frac(device_pebs, max_beb_per1024, 1024);

  	/* Round it up */
-- 
2.35.1

Regards,
Michał

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: ubiattach reserves too many BEBs for each volume attached
  2022-02-11 15:23 ubiattach reserves too many BEBs for each volume attached wodev
@ 2022-02-11 15:36 ` Sascha Hauer
  0 siblings, 0 replies; 2+ messages in thread
From: Sascha Hauer @ 2022-02-11 15:36 UTC (permalink / raw)
  To: wodev; +Cc: barebox

On Fri, Feb 11, 2022 at 04:23:46PM +0100, wodev@progra.biz.pl wrote:
> If there is more than one volume on the device, ubiattach reserves amount of
> BEBs as for the whole device, each time. Small volumes can be covered mainly
> by reserved blocks on big devices.
> With this the amount of BEBs is proportional to the volume size.

This is done on purpose, see the comment above the place you changed:

	/*
	 * Here we are using size of the entire flash chip and
	 * not just the MTD partition size because the maximum
	 * number of bad eraseblocks is a percentage of the
	 * whole device and bad eraseblocks are not fairly
	 * distributed over the flash chip. So the worst case
	 * is that all the bad eraseblocks of the chip are in
	 * the MTD partition we are attaching (ubi->mtd).
	 */

Sascha

> 
> ---
>  drivers/mtd/ubi/build.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
> index 94b4231..54e16f1 100644
> --- a/drivers/mtd/ubi/build.c
> +++ b/drivers/mtd/ubi/build.c
> @@ -237,7 +237,7 @@ static int get_bad_peb_limit(const struct ubi_device
> *ubi, int max_beb_per1024)
>  	else
>  		device_size = ubi->mtd->size;
> 
> -	device_pebs = mtd_div_by_eb(device_size, ubi->mtd);
> +	device_pebs = mtd_div_by_eb(ubi->mtd->size, ubi->mtd);
>  	limit = mult_frac(device_pebs, max_beb_per1024, 1024);
> 
>  	/* Round it up */
> -- 
> 2.35.1
> 
> Regards,
> Michał
> 
> _______________________________________________
> barebox mailing list
> barebox@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-02-11 15:38 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-11 15:23 ubiattach reserves too many BEBs for each volume attached wodev
2022-02-11 15:36 ` Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox