[RFC PATCH 0/7] Cleanup the LMB subsystem

Ilias Apalodimas ilias.apalodimas at linaro.org
Sun Dec 8 12:09:37 CET 2024


+CC Sam

Apologies, I forgot to CC you, I guess you can find the rest of the
series on lore?

On Sun, 8 Dec 2024 at 12:52, Ilias Apalodimas
<ilias.apalodimas at linaro.org> wrote:
>
> The LMB subsystem was used opportunistically for a number of years.
> A while back Sughosh merged it with the EFI subsystem in order to have a
> common allocator and avoid subsystems overwriting memory they shouldn't.
>
> This is an initial cleanup of all the crud we gathered over the years.
> There's no functional change expected from the patches as they just cleanup
> some abstraction functions and rename a few variables to make more
> sense.
>
> This has to be rebased on top of Sam's [0] changes but that should be
> trivial.
>
> I plan to make even bigger changes -- e.g I don't see the point of
> having *_alloc() and *_reserve() versions of the functions since they mostly
> do the same thing and just cause confusion. lmb_alloc_addr_flags()
> returning the base address on success makes little sense since we
> already *request* the address on the function arguments, etc.
> But since this patchset grew enough already, I'd like to get it in
> before more refactoring happens.
>
> It's worth noting that although some patches slightly increase the code
> size due to an extra flags argument being carried around, the final
> result is eventually smaller.
>
> add/remove: 2/5 grow/shrink: 17/3 up/down: 479/-524 (-45)
> Function                                     old     new   delta
> lmb_alloc_base_flags                           -     299    +299
> lmb_alloc_addr_flags                           -      90     +90
> test_alloc_addr                             2933    2963     +30
> lib_test_lmb_overlapping_reserve            1018    1030     +12
> test_multi_alloc.constprop                  3034    3042      +8
> test_get_unreserved_size                    1032    1038      +6
> boot_relocate_fdt                            599     605      +6
> lmb_alloc                                      4       9      +5
> wget_handler                                1530    1533      +3
> tftp_handler                                1190    1192      +2
> test_noreserved                             1207    1209      +2
> test_bigblock                                911     913      +2
> load_serial                                  946     948      +2
> lib_test_lmb_flags                          2101    2103      +2
> do_spi_flash                                3150    3152      +2
> do_bootz                                     526     528      +2
> do_bootm_linux                              2067    2069      +2
> bootm_run_states                            5275    5277      +2
> _fs_read.lto_priv                            331     333      +2
> lmb_reserve                                    4       -      -4
> lmb_alloc_addr                                 4       -      -4
> lmb_overlaps_region                           62      52     -10
> lmb_add_region_flags                         600     568     -32
> lmb_alloc_base                                48       -     -48
> efi_allocate_pages.part                      303     249     -54
> _lmb_alloc_addr.lto_priv                      92       -     -92
> _lmb_alloc_base.lto_priv                     280       -    -280
> Total: Before=2492742, After=2492697, chg -0.00%
>
> [0] https://lore.kernel.org/u-boot/20241208002121.31887-1-semen.protsenko@linaro.org/
>
>
> Ilias Apalodimas (7):
>   lmb: Replace lmb_reserve() with lmb_reserve_flags()
>   lmb: Simplify lmb_addrs_overlap()
>   lmb: Rename free_mem to available_mem
>   lmb: Remove lmb_add_region()
>   lmb: Replace lmb_alloc_addr() with lmb_alloc_addr_flags()
>   lmb: Replace lmb_alloc_base() with lmb_alloc_base_flags()
>   lmb: Rename _lmb_alloc_addr_flags()
>
>  arch/powerpc/cpu/mpc85xx/mp.c |   2 +-
>  arch/powerpc/lib/misc.c       |   2 +-
>  boot/bootm.c                  |   3 +-
>  boot/image-board.c            |  24 +++++---
>  boot/image-fdt.c              |  11 ++--
>  cmd/booti.c                   |   2 +-
>  cmd/bootz.c                   |   2 +-
>  cmd/load.c                    |   2 +-
>  fs/fs.c                       |   2 +-
>  include/lmb.h                 |  11 ++--
>  lib/lmb.c                     | 111 +++++++++++-----------------------
>  test/cmd/bdinfo.c             |   2 +-
>  test/lib/lmb.c                |  68 +++++++++++----------
>  13 files changed, 105 insertions(+), 137 deletions(-)
>
> --
> 2.45.2
>


More information about the U-Boot mailing list