"Kurtis D. Rader" wrote:
On Wed, 2005-10-26 10:32:11, Dave Anderson wrote:
> I'm deferring this to the IBM guys who deal with s390, SUSE kernels, and
> whatever dumpfile format this is (LKCD or s390 native?).
Actually I'm pretty confident this is not specific to s390 or SLES. I've
seen the same thing with a dump form a x86 system which had CA SEOS
loaded. It's just that in that case crash is able to create the necessary
memory region because the delta between the addresses is less than 1 GiB
(due, of course to the much smaller size of zone one). So it is still
potentially an issue for x86.
> But I'm curious -- where in the crash utliity is an mmap being done?
>From store_module_symbols_v1() -> GETBUF(strbuflen). Where strbuflen is
calculated as the last module name address minus the first observed
module address plus BUFSIZE. Is this guaranteed to be correct? The code
appears to be assuming the module symbol table is ordered by the address of
the symbol names. Is that guaranteed?
Ok, so it's a malloc() failure. Anyway, it's calculating symbol name namespace by
doing
character pointer arithmetic between the pointer to the first symbol's name string
and the last symbol's name string in the module. (The BUFSIZE is fluff.) But
AFAICT,
it shouldn't have anything to do with the value of the symbol, but rather the
pointers
in the module's string section. Sorry but, it's been a while since I looked at
this code,
much less changed it. So the only thing I can possibly think of is that somehow
there's a reference to a module name string that's in another module entirely?
What are the "first" and "last" values, and are they both contained
within the
module's vmalloc'd data area?
Dave
--
Kurtis D. Rader, Level 3 Linux Support
ABC Service Center, Linux Change Team
T/L 775-3714, DID +1 503-578-3714
--
Crash-utility mailing list
Crash-utility(a)redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility