[Makedumpfile Patch v3 2/7] initial(): call cach_init() a bit early

Hatayama, Daisuke d.hatayama at jp.fujitsu.com
Thu Jul 20 01:01:40 PDT 2017



> -----Original Message-----
> From: Atsushi Kumagai [mailto:ats-kumagai at wm.jp.nec.com]
> Sent: Thursday, July 20, 2017 3:54 PM
> To: Pratyush Anand <panand at redhat.com>
> Cc: dyoung at redhat.com; Hatayama, Daisuke
> <d.hatayama at jp.fujitsu.com>; kexec at lists.infradead.org; bhe at redhat.com
> Subject: RE: [Makedumpfile Patch v3 2/7] initial(): call cach_init() a bit
> early
> 
> >Hi Atsushi,
> >
> >On Wednesday 19 July 2017 01:16 PM, Atsushi Kumagai wrote:
> >> Hello Pratyush,
> >>
> >>> Call cach_init() before get_kcore_dump_loads(), because latter uses
> >>> cache_search().
> >>>
> >>> Call path is like this :
> >>> get_kcore_dump_loads() -> process_dump_load() -> vaddr_to_paddr() ->
> >>> vtop4_x86_64() -> readmem() -> cache_search()
> >>
> >> I found that the current cach_init() is too early, cache_init() should be
> >> called after fallback_to_current_page_size() for older kernel
> >> which doesn't have VMCOREINFO.
> >> Could you confirm that the patch below is fine with you ?
> >
> >Its fine and works.
> 
> Thanks, I'll merge this fix into v1.6.2.
> 

It looks good also to me.

Thanks.
HATAYAMA, Daisuke

> Regards,
> Atsushi Kumagai
> 
> >>
> >> Thanks,
> >> Atsushi Kumagai
> >>
> >> From: Atsushi Kumagai <ats-kumagai at wm.jp.nec.com>
> >> Date: Wed, 19 Jul 2017 15:05:58 +0900
> >> Subject: [PATCH] Fix the regression caused by moving cache_init() earlier
> >>
> >> info->page_size should be set before calling cache_init() since it
> >> allocates some buffers based on info->page_size. However, cache_init()
> >> was moved before fallback_to_current_page_size() while it set
> >> info->page_size for older kernel which doesn't have VMCOREINFO.
> >>
> >> This patch moves cache_init() after fallback_to_current_page_size()
> >> and reverts the commit: b98e6e0d2a(sadump: set info->page_size before
> cache_init())
> >>
> >> Signed-off-by: Atsushi Kumagai <ats-kumagai at wm.jp.nec.com>
> >> ---
> >>  makedumpfile.c | 28 ++++++++++++++++------------
> >>  1 file changed, 16 insertions(+), 12 deletions(-)
> >>
> >> diff --git a/makedumpfile.c b/makedumpfile.c
> >> index a3f0697..f85003a 100644
> >> --- a/makedumpfile.c
> >> +++ b/makedumpfile.c
> >> @@ -3905,15 +3905,6 @@ initial(void)
> >>  	if (!get_value_for_old_linux())
> >>  		return FALSE;
> >>
> >> -	if (info->flag_sadump && !set_page_size(sadump_page_size()))
> >> -			return FALSE;
> >> -
> >> -	if (!is_xen_memory() && !cache_init())
> >> -		return FALSE;
> >> -
> >> -	if (info->flag_mem_usage && !get_kcore_dump_loads())
> >> -		return FALSE;
> >> -
> >>  	if (info->flag_refiltering) {
> >>  		if (info->flag_elf_dumpfile) {
> >>  			MSG("'-E' option is disable, ");
> >> @@ -3936,6 +3927,9 @@ initial(void)
> >>  			return FALSE;
> >>  		}
> >>
> >> +		if (!set_page_size(sadump_page_size()))
> >> +			return FALSE;
> >> +
> >>  		if (!sadump_initialize_bitmap_memory())
> >>  			return FALSE;
> >>
> >> @@ -3949,9 +3943,7 @@ initial(void)
> >>  		 * postponed until debug information becomes
> >>  		 * available.
> >>  		 */
> >> -
> >> -	} else if (!get_phys_base())
> >> -		return FALSE;
> >> +	}
> >>
> >>  out:
> >>  	if (!info->page_size) {
> >> @@ -3962,6 +3954,18 @@ out:
> >>  		if (!fallback_to_current_page_size())
> >>  			return FALSE;
> >>  	}
> >> +
> >> +	if (!is_xen_memory() && !cache_init())
> >> +		return FALSE;
> >> +
> >> +	if (info->flag_mem_usage && !get_kcore_dump_loads())
> >> +		return FALSE;
> >> +
> >> +	if (!info->flag_refiltering && !info->flag_sadump) {
> >> +		if (!get_phys_base())
> >> +			return FALSE;
> >> +	}
> >> +
> >>  	if (!get_max_mapnr())
> >>  		return FALSE;
> >>
> >>
> >
> >--
> >Regards
> >Pratyush
> 
> 
> 





More information about the kexec mailing list