[PATCH 04/16] event: add event to notify lmb memory map changes

Sughosh Ganu sughosh.ganu at linaro.org
Tue Sep 17 14:33:25 CEST 2024


On Sat, 14 Sept 2024 at 20:38, Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:
>
> On 9/5/24 10:27, Sughosh Ganu wrote:
> > Add an event which would be used for notifying changes in the
> > LMB modules' memory map. This is to be used for having a
> > synchronous view of the memory that is currently in use, and that is
> > available for allocations.
>
> The synchronous view problem only exists because we are duplicating
> data. Store the EFI memory type in LMB and the problem vanishes.

The LMB module only concerns itself with RAM memory. If I understand
correctly, you are proposing maintaining the EFI memory map within the
LMB module ? That would mean handling memory types other than
conventional memory in LMB.

-sughosh

>
> The event is only needed to notify EFI_EVENT_GROUP_MEMORY_MAP_CHANGE.
>
> Best regards
>
> Heinrich
>
> >
> > Signed-off-by: Sughosh Ganu <sughosh.ganu at linaro.org>
> > ---
> >   common/event.c  |  2 ++
> >   include/event.h | 14 ++++++++++++++
> >   2 files changed, 16 insertions(+)
> >
> > diff --git a/common/event.c b/common/event.c
> > index dda569d447..fc8002603c 100644
> > --- a/common/event.c
> > +++ b/common/event.c
> > @@ -48,6 +48,8 @@ const char *const type_name[] = {
> >
> >       /* main loop events */
> >       "main_loop",
> > +
> > +     "lmb_map_update",
> >   };
> >
> >   _Static_assert(ARRAY_SIZE(type_name) == EVT_COUNT, "event type_name size");
> > diff --git a/include/event.h b/include/event.h
> > index fb353ad623..fce7e96170 100644
> > --- a/include/event.h
> > +++ b/include/event.h
> > @@ -153,6 +153,14 @@ enum event_t {
> >        */
> >       EVT_MAIN_LOOP,
> >
> > +     /**
> > +      * @EVT_LMB_MAP_UPDATE:
> > +      * This event is triggered on an update to the LMB reserved memory
> > +      * region. This can be used to notify about any LMB memory allocation
> > +      * or freeing of memory having occurred.
> > +      */
> > +     EVT_LMB_MAP_UPDATE,
> > +
> >       /**
> >        * @EVT_COUNT:
> >        * This constants holds the maximum event number + 1 and is used when
> > @@ -203,6 +211,12 @@ union event_data {
> >               oftree tree;
> >               struct bootm_headers *images;
> >       } ft_fixup;
> > +
> > +     struct event_lmb_map_update {
> > +             u64 base;
> > +             u64 size;
> > +             u8 op;
> > +     } lmb_map;
> >   };
> >
> >   /**
>


More information about the U-Boot mailing list