U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Tom Rini <trini@konsulko.com>
To: Simon Glass <sjg@chromium.org>
Cc: Sughosh Ganu <sughosh.ganu@linaro.org>,
	Ilias Apalodimas <ilias.apalodimas@linaro.org>,
	u-boot@lists.denx.de, Heinrich Schuchardt <xypron.glpk@gmx.de>,
	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 38/48] lib: Kconfig: add a config symbol for getting lmb memory map updates
Date: Wed, 24 Jul 2024 16:47:19 -0600	[thread overview]
Message-ID: <20240724224719.GR989285@bill-the-cat> (raw)
In-Reply-To: <CAFLszTgoh6aLQ0BiHjkHYyzE9v0LP5d10Abq-k875kO7kP3ATA@mail.gmail.com>

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

On Wed, Jul 24, 2024 at 09:40:35AM -0600, Simon Glass wrote:
> Hi Tom,
> 
> On Wed, 24 Jul 2024 at 08:52, Tom Rini <trini@konsulko.com> wrote:
> >
> > On Wed, Jul 24, 2024 at 08:37:14AM -0600, Simon Glass wrote:
> > > Hi Tom,
> > >
> > > On Tue, 23 Jul 2024 at 08:20, Tom Rini <trini@konsulko.com> wrote:
> > > >
> > > > On Tue, Jul 23, 2024 at 01:42:59PM +0100, Simon Glass wrote:
> > > > > Hi Sughosh,
> > > > >
> > > > > On Mon, 22 Jul 2024 at 13:59, Sughosh Ganu <sughosh.ganu@linaro.org> wrote:
> > > > > >
> > > > > > On Mon, 22 Jul 2024 at 18:00, Ilias Apalodimas
> > > > > > <ilias.apalodimas@linaro.org> wrote:
> > > > > > >
> > > > > > > On Fri, 5 Jul 2024 at 22:51, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > >
> > > > > > > > On Thu, Jul 04, 2024 at 01:05:34PM +0530, Sughosh Ganu wrote:
> > > > > > > >
> > > > > > > > > Add a Kconfig symbol to enable getting updates on any memory map
> > > > > > > > > changes that might be done by the LMB module. This notification
> > > > > > > > > mechanism can then be used to have a synchronous view of allocated and
> > > > > > > > > free memory.
> > > > > > > > >
> > > > > > > > > Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
> > > > > > > > > ---
> > > > > > > > > Changes since V1:
> > > > > > > > > * Change the description to highlight only LMB notifications.
> > > > > > > > > * Add a separate line for dependencies.
> > > > > > > > >
> > > > > > > > >  lib/Kconfig | 10 ++++++++++
> > > > > > > > >  1 file changed, 10 insertions(+)
> > > > > > > > >
> > > > > > > > > diff --git a/lib/Kconfig b/lib/Kconfig
> > > > > > > > > index 7eea517b3b..b422183a0f 100644
> > > > > > > > > --- a/lib/Kconfig
> > > > > > > > > +++ b/lib/Kconfig
> > > > > > > > > @@ -74,6 +74,16 @@ config HAVE_PRIVATE_LIBGCC
> > > > > > > > >  config LIB_UUID
> > > > > > > > >       bool
> > > > > > > > >
> > > > > > > > > +config MEM_MAP_UPDATE_NOTIFY
> > > > > > > > > +     bool "Get notified of any changes to the LMB memory map"
> > > > > > > > > +     depends on EVENT && LMB && EFI_LOADER
> > > > > > > > > +     default y
> > > > > > > > > +     help
> > > > > > > > > +       Enable this option to get notification on any changes to the
> > > > > > > > > +       memory that is allocated or freed by the LMB module. This will
> > > > > > > > > +       allow different modules that allocate memory or maintain a memory
> > > > > > > > > +       map to have a synchronous view of available and allocated memory.
> > > > > > > >
> > > > > > > > This needs to be select'd when it's going to be used, opting out of
> > > > > > > > making sure memory reservations are obeyed isn't a good idea.
> > > > > > >
> > > > > > > +1 which begs the question, do we need the config option at all ?
> > > > > >
> > > > > > The config symbol can be used for removing the code for platforms
> > > > > > which do not support EFI ?
> > > > >
> > > > > I am still of the so-far firm opinion that this can be done once,
> > > > > before booting, rather than maintaining two separate tables as we go.
> > > >
> > > > Did you see the part in the thread where he explained the multiple entry
> > > > points that would need to be kept in sync?
> > >
> > > Yes, but I'm not sure what they are, nor why a shared function cannot
> > > be called twice from two different places.
> >
> > Because we don't want to miss the third or fourth entry point down the
> > road. That's why going the other direction makes more sense I believe,
> > we won't have a future problem here because we designed with that in
> > mind.
> 
> You might be right, but I don't even know what we are referring to
> here...what are the two 'entry points'?

I would have to refer back to Sughosh's explanation to repeat it, sorry.

> My current belief is that we can set up the EFI memory table before
> booting, with a single pass through the table. Maintaining two
> independent tables as we go doesn't seem very useful. It is harder to
> test too.

You seem to be fixated on "booting" when at least part of the issue is
re-entering the EFI_LOADER. And since EFI_LOADER needs X/Y/Z as well, we
had much earlier rejected "make EFI_LOADER's memory model what
everything else uses".

-- 
Tom

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

  reply	other threads:[~2024-07-24 22:47 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 [this message]
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
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=20240724224719.GR989285@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