On Wed, Dec 18, 2024 at 02:15:35PM -0800, Ian Rogers wrote:
> On Wed, Dec 18, 2024 at 2:04 PM Namhyung Kim <[email protected]> wrote:
> >
> > In machine__create_module(), it reads /proc/modules to get a list of
> > modules in the system.  The file shows the start address (of text) and
> > the size of the module so it uses the info to reconstruct system memory
> > maps for symbol resolution.
> >
> > But module memory consists of multiple segments and they can be
> > scaterred.  Currently perf tools assume they are contiguous and see some
> 
> nit: s/scaterred/scattered/
> 
> > overlaps.  This can confuse the tool when it finds a map containing a
> > given address.
> >
> > As we mostly care about the function symbols in the text segment, it can
> > fixup the size or end address of modules when there's an overlap.  We
> > can use maps__fixup_end() which updates the end address using the start
> > address of the next map.
> >
> > Ideally it should be able to track other segments (like data/rodata),
> > but that would require some changes in /proc/modules IMHO.
> >
> > Reported-by: Blake Jones <[email protected]>
> > Cc: Luis Chamberlain <[email protected]>
> > Cc: Petr Pavlu <[email protected]>
> > Cc: Sami Tolvanen <[email protected]>
> > Cc: Daniel Gomez <[email protected]>
> > Cc: [email protected]
> > Signed-off-by: Namhyung Kim <[email protected]>
> 
> Acked-by: Ian Rogers <[email protected]>

Thanks, applied to perf-tools-next,

- Arnaldo

Reply via email to