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 kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec