U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Tom Rini <trini@konsulko.com>
To: Sughosh Ganu <sughosh.ganu@linaro.org>
Cc: u-boot@lists.denx.de,
	Ilias Apalodimas <ilias.apalodimas@linaro.org>,
	Heinrich Schuchardt <xypron.glpk@gmx.de>,
	Simon Glass <sjg@chromium.org>, Marek Vasut <marex@denx.de>,
	Mark Kettenis <mark.kettenis@xs4all.nl>,
	Fabio Estevam <festevam@gmail.com>,
	Michal Simek <michal.simek@amd.com>
Subject: Re: [RFC PATCH v2 00/48] Make U-Boot memory reservations coherent
Date: Tue, 23 Jul 2024 09:29:26 -0600	[thread overview]
Message-ID: <20240723152926.GI989285@bill-the-cat> (raw)
In-Reply-To: <CADg8p96619yU3Li94_JsJx5VUpDpF7SqF3m9McHhQFYLchvktw@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 5412 bytes --]

On Tue, Jul 23, 2024 at 08:21:11PM +0530, Sughosh Ganu wrote:
> On Tue, 23 Jul 2024 at 20:18, Tom Rini <trini@konsulko.com> wrote:
> >
> > On Mon, Jul 22, 2024 at 11:07:45PM +0530, Sughosh Ganu wrote:
> > > On Mon, 22 Jul 2024 at 23:03, Tom Rini <trini@konsulko.com> wrote:
> > > >
> > > > On Mon, Jul 22, 2024 at 11:58:18AM +0530, Sughosh Ganu wrote:
> > > > > On Mon, 8 Jul 2024 at 19:32, Tom Rini <trini@konsulko.com> wrote:
> > > > > >
> > > > > > On Thu, Jul 04, 2024 at 01:04:56PM +0530, Sughosh Ganu wrote:
> > > > > >
> > > > > > > The aim of this patch series is to fix the current state of
> > > > > > > incoherence between modules when it comes to memory usage. The primary
> > > > > > > issue that this series is trying to fix is that the EFI memory module
> > > > > > > which is responsible for allocating and freeing memory, does not have
> > > > > > > any visibility of the memory that is being used by the LMB
> > > > > > > module. This is further complicated by the fact that the LMB
> > > > > > > allocations are caller specific -- the LMB memory map is not global
> > > > > > > nor persistent. This means that the memory "allocated" by the LMB
> > > > > > > module might be relevant only for a given function. Hence one of the
> > > > > > > requirements for making the memory usage visible across modules is to
> > > > > > > make LMB allocations persistent and global, and then have means to
> > > > > > > communicate the use of memory across modules.
> > > > > > >
> > > > > > > The first set of patches in this series work on making the LMB memory
> > > > > > > map persistent and global. This is being done keeping in mind the
> > > > > > > usage of LMB memory by platforms where the same memory region can be
> > > > > > > used to load multiple different images. What is not allowed is to
> > > > > > > overwrite memory that has been allocated by the other module,
> > > > > > > currently the EFI memory module. This is being achieved by introducing
> > > > > > > a new flag, LMB_NOOVERWRITE, which represents memory which cannot be
> > > > > > > re-requested once allocated.
> > > > > > >
> > > > > > > A review comment on the earlier version was to do away with the static
> > > > > > > arrays for the LMB lists of free and used memory. This version
> > > > > > > uses the alloced list data structure for the LMB lists.
> > > > > > >
> > > > > > > The second set of patches are making changes to the EFI memory module
> > > > > > > to make use of the LMB functions to allocate and free memory. A
> > > > > > > *_flags() version of LMB API's has been introduced for the same. The
> > > > > > > earlier version was using notification mechanism from both LMB and EFI
> > > > > > > modules to maintain memory coherence. This version makes use of the
> > > > > > > LMB API functions for the memory allocations. This is based on review
> > > > > > > comments of EFI maintainers.
> > > > > >
> > > > > > On am64x_evm_a53, the last test in test/py/tests/test_net_boot.py fails
> > > > > > due to:
> > > > > > ...
> > > > > > TFTP from server 192.168.116.10; our IP address is 192.168.116.23
> > > > > > Filename 'pxelinux.cfg/default-arm-k3'.
> > > > > > Load address: 0x80100000
> > > > > > Loading: ##################################################  64 Bytes
> > > > > >          8.8 KiB/s
> > > > > > done
> > > > > > Bytes transferred = 64 (40 hex)
> > > > > >   1  pxe          ready   ethernet     0  port@1.bootdev.0          extlinux/extlinux.conf
> > > > > > ** Booting bootflow 'port@1.bootdev.0' with pxe
> > > > > > Retrieving file: pxelinux.cfg/default-arm
> > > > > > am65_cpsw_nuss_port ethernet@8000000port@1: K3 CPSW: rflow_id_base: 16
> > > > > > link up on port 1, speed 1000, full duplex
> > > > > > Using ethernet@8000000port@1 device
> > > > > > TFTP from server 192.168.116.10; our IP address is 192.168.116.23
> > > > > > Filename 'pxelinux.cfg/default-arm'.
> > > > > >
> > > > > > TFTP error: trying to overwrite reserved memory...
> > > > > > Couldn't retrieve pxelinux.cfg/default-arm
> > > > >
> > > > > So this seems to be failing because the address used to load the pxe
> > > > > config file seems to be overlapping with an already reserved region of
> > > > > memory. Can you please check if modifying the address works?
> > > >
> > > > I'm not sure what address you're thinking of modifying but, this isn't
> > > > overwriting U-Boot itself so it's a case that needs to work.
> > >
> > > Can you please print the lmb memory map through bdinfo and share it
> > > with me. That will give some info on what is causing the issue. Thing
> > > is, with this patchset, if there is another reservation with a
> > > different flag(like LMB_NOMAP, LMB_NOOVERWRITE), this would cause the
> > > load to fail.
> >
> > Well hunh. I thought I had reproduced the issue before posting, but I
> > just pushed the same tree (I'm fairly certain) over to my lab and the
> > tests are passing now. So, lets just see what happens with the next
> > iteration of the series, sorry for the noise.
> 
> Okay, I will put out the LMB only, non-rfc series once the CI has gone
> through fine. Btw, I hope you have seen my comment on irc about having
> the SPL_LMB config symbol as a bool, instead of def_bool y. Thanks.

I'll investigate that further once I can poke at the code, thanks.

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

  reply	other threads:[~2024-07-23 15:29 UTC|newest]

Thread overview: 117+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-04  7:34 [RFC PATCH v2 00/48] Make U-Boot memory reservations coherent Sughosh Ganu
2024-07-04  7:34 ` [RFC PATCH v2 01/48] malloc: Support testing with realloc() Sughosh Ganu
2024-07-04  7:34 ` [RFC PATCH v2 02/48] lib: Handle a special case with str_to_list() Sughosh Ganu
2024-07-04  7:34 ` [RFC PATCH v2 03/48] alist: Add support for an allocated pointer list Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 04/48] lib: Convert str_to_list() to use alist Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 05/48] alist: add a couple of helper functions Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 06/48] alist: add a function declaration for alist_expand_by() Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 07/48] lmb: remove the unused lmb_is_reserved() function Sughosh Ganu
2024-07-13 15:13   ` Simon Glass
2024-07-04  7:35 ` [RFC PATCH v2 08/48] lmb: staticize __lmb_alloc_base() Sughosh Ganu
2024-07-13 15:13   ` Simon Glass
2024-07-04  7:35 ` [RFC PATCH v2 09/48] lmb: remove call to lmb_init() Sughosh Ganu
2024-07-13 15:15   ` Simon Glass
2024-07-15  9:31     ` Sughosh Ganu
2024-07-15 11:39       ` Simon Glass
2024-07-16  6:30         ` Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 10/48] lmb: remove local instances of the lmb structure variable Sughosh Ganu
2024-07-13 15:15   ` Simon Glass
2024-07-15  9:29     ` Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 11/48] lmb: pass a flag to image_setup_libfdt() for lmb reservations Sughosh Ganu
2024-07-13 15:15   ` Simon Glass
2024-07-04  7:35 ` [RFC PATCH v2 12/48] lmb: allow for resizing lmb regions Sughosh Ganu
2024-07-13 15:15   ` Simon Glass
2024-07-15  9:27     ` Sughosh Ganu
2024-07-15 11:39       ` Simon Glass
2024-07-16  6:26         ` Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 13/48] lmb: make LMB memory map persistent and global Sughosh Ganu
2024-07-13 15:16   ` Simon Glass
2024-07-15  9:48     ` Sughosh Ganu
2024-07-15 11:39       ` Simon Glass
2024-07-15 17:58         ` Tom Rini
2024-07-15 19:32           ` Simon Glass
2024-07-04  7:35 ` [RFC PATCH v2 14/48] lmb: remove config symbols used for lmb region count Sughosh Ganu
2024-07-13 15:15   ` Simon Glass
2024-07-23  8:48   ` Ilias Apalodimas
2024-07-04  7:35 ` [RFC PATCH v2 15/48] test: lmb: remove the test for max regions Sughosh Ganu
2024-07-13 15:15   ` Simon Glass
2024-07-22 11:24   ` Ilias Apalodimas
2024-07-04  7:35 ` [RFC PATCH v2 16/48] lmb: config: add lmb config symbols for SPL Sughosh Ganu
2024-07-05 19:48   ` Tom Rini
2024-07-08 11:36     ` Sughosh Ganu
2024-07-08 14:46       ` Tom Rini
2024-07-13 15:15         ` Simon Glass
2024-07-04  7:35 ` [RFC PATCH v2 17/48] lmb: allow lmb module to be used in SPL Sughosh Ganu
2024-07-13 15:15   ` Simon Glass
2024-07-15  9:24     ` Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 18/48] lmb: introduce a function to add memory to the lmb memory map Sughosh Ganu
2024-07-08 14:11   ` Tom Rini
2024-07-04  7:35 ` [RFC PATCH v2 19/48] lmb: remove the lmb_init_and_reserve() function Sughosh Ganu
2024-07-13 15:15   ` Simon Glass
2024-07-22 12:27   ` Ilias Apalodimas
2024-07-04  7:35 ` [RFC PATCH v2 20/48] lmb: reserve common areas during board init Sughosh Ganu
2024-07-13 15:15   ` Simon Glass
2024-07-04  7:35 ` [RFC PATCH v2 21/48] lmb: remove lmb_init_and_reserve_range() function Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 22/48] lmb: init: initialise the lmb data structures during board init Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 23/48] lmb: use the BIT macro for lmb flags Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 24/48] lmb: add a common implementation of arch_lmb_reserve() Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 25/48] sandbox: spl: enable lmb in SPL Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 26/48] sandbox: iommu: remove lmb allocation in the driver Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 27/48] zynq: lmb: do not add to lmb map before relocation Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 28/48] test: cedit: use allocated address for reading file Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 29/48] test: lmb: tweak the tests for the persistent lmb memory map Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 30/48] test: lmb: run lmb tests only manually Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 31/48] test: lmb: add a separate class of unit tests for lmb Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 32/48] test: lmb: invoke the LMB unit tests from a separate script Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 33/48] test: bdinfo: dump the global LMB memory map Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 34/48] lmb: add versions of the lmb API with flags Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 35/48] lmb: add a flag to allow suppressing memory map change notification Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 36/48] efi: memory: use the lmb API's for allocating and freeing memory Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 37/48] event: add event to notify lmb memory map changes Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 38/48] lib: Kconfig: add a config symbol for getting lmb memory map updates Sughosh Ganu
2024-07-05 19:50   ` Tom Rini
2024-07-22 12:30     ` Ilias Apalodimas
2024-07-22 12:59       ` Sughosh Ganu
2024-07-23  7:09         ` Ilias Apalodimas
2024-07-23 12:42         ` Simon Glass
2024-07-23 14:20           ` Tom Rini
2024-07-24 14:37             ` Simon Glass
2024-07-24 14:52               ` Tom Rini
2024-07-24 15:40                 ` Simon Glass
2024-07-24 22:47                   ` Tom Rini
2024-07-25 23:32                     ` Simon Glass
2024-07-04  7:35 ` [RFC PATCH v2 39/48] add a function to check if an address is in RAM memory Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 40/48] lmb: notify of any changes to the LMB memory map Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 41/48] efi_memory: add an event handler to update " Sughosh Ganu
2024-07-13 15:16   ` Simon Glass
2024-07-15  9:39     ` Sughosh Ganu
2024-07-15 11:39       ` Simon Glass
2024-07-15 19:05         ` Tom Rini
2024-07-16  6:25           ` Sughosh Ganu
2024-07-16  7:09             ` Simon Glass
2024-07-16  8:35               ` Sughosh Ganu
2024-07-16 17:00             ` Tom Rini
2024-07-17  7:58               ` Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 42/48] ti: k3: remove efi_add_known_memory() function definition Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 43/48] layerscape: use the lmb API's to add RAM memory Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 44/48] x86: e820: use the lmb API for adding " Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 45/48] efi_memory: do not add RAM memory to the memory map Sughosh Ganu
2024-07-13 15:15   ` Simon Glass
2024-07-04  7:35 ` [RFC PATCH v2 46/48] lmb: mark the EFI runtime memory regions as reserved Sughosh Ganu
2024-07-13 15:16   ` Simon Glass
2024-07-15  9:41     ` Sughosh Ganu
2024-07-15 11:39       ` Simon Glass
2024-07-16  6:31         ` Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 47/48] test: event: update the expected event dump output Sughosh Ganu
2024-07-04  7:35 ` [RFC PATCH v2 48/48] temp: mx6sabresd: bump up the size limit of the board Sughosh Ganu
2024-07-05 18:36   ` Tom Rini
2024-07-08 14:02 ` [RFC PATCH v2 00/48] Make U-Boot memory reservations coherent Tom Rini
2024-07-22  6:28   ` Sughosh Ganu
2024-07-22 17:33     ` Tom Rini
2024-07-22 17:37       ` Sughosh Ganu
2024-07-23 12:47         ` Simon Glass
2024-07-23 14:48         ` Tom Rini
2024-07-23 14:51           ` Sughosh Ganu
2024-07-23 15:29             ` Tom Rini [this message]
2024-07-08 14:35 ` Tom Rini
2024-07-13 15:15   ` Simon Glass

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240723152926.GI989285@bill-the-cat \
    --to=trini@konsulko.com \
    --cc=festevam@gmail.com \
    --cc=ilias.apalodimas@linaro.org \
    --cc=marex@denx.de \
    --cc=mark.kettenis@xs4all.nl \
    --cc=michal.simek@amd.com \
    --cc=sjg@chromium.org \
    --cc=sughosh.ganu@linaro.org \
    --cc=u-boot@lists.denx.de \
    --cc=xypron.glpk@gmx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox