Hi Vincent, On Thu, 5 Sept 2024 at 01:47, Vincent Stehlé <vincent.ste...@arm.com> wrote: > > On Sun, Sep 01, 2024 at 04:22:56PM -0600, Simon Glass wrote: > > We have been discussing the state of EFI memory management for some > > years so I thought it might be best to send a short series showing some > > of the issues we have talked about. > > > > This one just deals with memory allocation. It provides a way to detect > > EFI 'page allocations' when U-Boot' malloc() should be used. It should > > help us to clean up this area of U-Boot. > > > > It also updates EFI to use U-Boot memory allocation for the pool. Most > > functions use that anyway and it is much more efficient. It also avoids > > allocating things 'in space' in conflict with the loaded images. > > Hi Simon, > > Thank you for this series. > > I did test it on top of v2024.10-rc4 with AArch64 simulators (FVP & Qemu), > with > OS boots and ACS-IR, and I see no regression. Same with sandbox on x86 and the > python tests. >
Thank you for testing. Ilias, Heinrich, can this series (and the EFI-test one) be applied? Sughosh has already sent a follow up where we start to diverge on how to fix the memory-allocation problems, so I would like to make sure these are in there first. Regards, Simon > Best regards, > Vincent. > > > > > This series also includes a little patch to show more information in > > the index for the EFI pages. > > > > Note that this series is independent from Sugosh's lmb series[1], > > although I believe it will point the way to simplifying some of the > > later patches in that series. > > > > Overall, some issues which should be resolved are: > > - allocation inconsistency, e.g. efi_add_protocol() uses malloc() but > > efi_dp_dup() does not (this series makes a start) > > - change efi_bl_init() to register events later, when the devices are > > actually used > > - rather than efi_set_bootdev(), provide a bootstd way to take note of > > the device images came from and allow EFI to query that when needed > > - EFI_LOADER_BOUNCE_BUFFER - can use U-Boot bounce buffers? > > > > Minor questions on my mind: > > - is unaligned access useful? Is there a performance penalty? > > - API confusion about whether something is an address or a pointer > > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=416441 > > > > Changes in v3: > > - Add new patch to drop the memset() from efi_alloc() > > - Drop patch to convert device_path allocation to use malloc() > > > > Changes in v2: > > - Drop patch 'Show more information in efi index' > > - Drop patch 'Avoid pool allocation in efi_get_memory_map_alloc()' > > - Add the word 'warning', use log_warning() and show the end address > > > > Simon Glass (3): > > efi: Drop the memset() from efi_alloc() > > efi: Allow use of malloc() for the EFI pool > > efi: Show the location of the bounce buffer > > > > common/dlmalloc.c | 7 +++ > > include/efi_loader.h | 29 ++++++++- > > include/malloc.h | 7 +++ > > lib/efi_loader/efi_bootbin.c | 11 ++++ > > lib/efi_loader/efi_memory.c | 119 ++++++++++++++++++++++++----------- > > 5 files changed, 136 insertions(+), 37 deletions(-) > > > > -- > > 2.34.1 > >