[RFC PATCH 0/7] Cleanup the LMB subsystem

Ilias Apalodimas ilias.apalodimas at linaro.org
Sun Dec 8 11:52:03 CET 2024


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