On Tue, 2009-09-29 at 20:54 +0000, Dave Anderson wrote:
----- "Dave Anderson" <anderson(a)redhat.com> wrote:
>
> So the fix would be to first determine the cache_cache.buffer_size value,
> and use that to initialize the size_table.kmem_cache_s value used by the
> "SIZE(kmem_cache_s)" macro. Secondly,
"vt->kmem_cache_len_nodes", which
> is also based upon the same MAX_NUMNODES array index value, needs to be
> downsized as well. It looks like if the kernel "nr_node_ids" exists as
> symbol (instead of a #define), then it should be used.
I'm thinking this patch should work:
http://people.redhat.com/anderson/memory.patch
Dave
Dave,
You are faster than me at fixing crash:-) I was just about to start on
the part for kmem_cache_len_nodes...
The patch fixes the problem on my example dump which previously said:
=====
please wait... (gathering kmem slab cache data)
crash: page excluded: kernel virtual address: ffff88022457a000 type:
"kmem_cache_s buffer"
crash: unable to initialize kmem slab cache subsystem
=====
It now says:
=====
please wait... (gathering kmem slab cache data)
kmem_cache_downsize: SIZE(kmem_cache_s): 872 cache_cache.buffer_size:
384
kmem_cache_downsize: nr_node_ids: 2
=====
In the meantime, I remembered "--zero_exclude", which makes for
a slightly dangerous workaround for the problem. It fills in the
unnecessarily-accessed missing pages with zeros.
The output of "kmem -s" and "kmem -S" on my problem dump is the
same between your patched version and the old version running
with --zero_exclude. (I don't normally think of using zero_exclude
because it can mask both kernel bugs and makedumpfile bugs...)
Thanks for making that patch. Is there anything left to
fix in crash ?-)
Bob Montgomery