Hi Pingfan,
> -----Original Message-----
> Hi Kazu and Cascardo,
>
> I encounter a weird problem when running makedumpfile on a s390 machine.
>
> Our production kernel uses extreme sparse memory model, and has the
> following:
>
> in mm/sparse.c
>
> #ifdef CONFIG_SPARSEMEM_EXTREME
> struct mem_section **mem_section;
> #else
> struct mem_section mem_section[NR_SECTION_ROOTS][SECTIONS_PER_ROOT]
> ____cacheline_internodealigned_in_smp;
> #endif
>
> So in makedumpfile.c, get_mem_section(), it got a failed result when the
> first call site to validate_mem_section(), then it should success at the
> second call site to validate_mem_section(), which is inside if
> (is_sparsemem_extreme()) condition.
I think your production kernel should have kernel commit a0b1280368d1
("kdump: write correct address of mem_section into vmcoreinfo"), so the
first call should return TRUE and the second one should return FALSE.
>
> But the actual result is not like expected.
>
> After introducing
> commit e113f1c974c820f9633dc0073eda525d7575f365 [PATCH] cope with
> not-present mem section
>
> I got two successful calls to validate_mem_section(), and finally failed
> at the condition
> ret = symbol_valid ^ pointer_valid;
> if (!ret) {
> ERRMSG("Could not validate mem_section.\n");
> }
>
>
> Do you have any idea?
Presumably this will be what I expected that it might be possible.
I can apply the patch below this time, what about this?
https://github.com/k-hagio/makedumpfile-old/commit/ce883df3864a5744ac0f1eff47de06b5074edb5f.patch
or, we can also investigate why the second call returns TRUE, and
fix the conditions in the validate_mem_section()..
Thanks,
Kazu
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec