Hi,

I noticed that /proc/modules reports inconsistent address and size
values for modules. In m_show():

     size = module_total_size(mod);              // .text + .rodata +
.data + ...
     value = mod->mem[MOD_TEXT].base;            // only text base

Looking at kallsyms, .data symbols can come before .text symbols, so
[addr, addr+size) is useless as a bound and can be overlapping.

I have a userspace frontend for perf [1] and the code currently
expects non-overlapping regions. I can add a workaround to truncate
any overlapping regions from /proc/modules. But is it possible to
"fix" the kernel-side semantics here?

[1]: https://github.com/mstange/samply/pull/736

Reply via email to