[PATCH] makedumpfile: x86: Take care of init_level4_pgt rename in kernel

Atsushi Kumagai ats-kumagai at wm.jp.nec.com
Tue Aug 1 00:41:13 PDT 2017


Hello Pratyush,

Thanks for your work.

>On 07/30/17 at 10:11pm, Pratyush Anand wrote:
>> Following commit renamed init_level4_pgt to init_top_pgt in kernel.
>>
>> commit 65ade2f872b474fa8a04c2d397783350326634e6
>> Author: Kirill A. Shutemov <kirill.shutemov at linux.intel.com>
>> Date:   Tue Jun 6 14:31:27 2017 +0300
>>
>>     x86/boot/64: Rename init_level4_pgt and early_level4_pgt
>>
>> This patch takes care of above kernel modification in makedumpfile.
>>
>> Signed-off-by: Pratyush Anand <panand at redhat.com>
>> ---
>>  makedumpfile.c | 9 ++++++++-
>>  1 file changed, 8 insertions(+), 1 deletion(-)
>>
>> diff --git a/makedumpfile.c b/makedumpfile.c
>> index f85003a33551..e875f4bb539e 100644
>> --- a/makedumpfile.c
>> +++ b/makedumpfile.c
>> @@ -1486,6 +1486,8 @@ get_symbol_info(void)
>>  	SYMBOL_INIT(_stext, "_stext");
>>  	SYMBOL_INIT(swapper_pg_dir, "swapper_pg_dir");
>>  	SYMBOL_INIT(init_level4_pgt, "init_level4_pgt");
>> +	if (SYMBOL(init_level4_pgt) == NOT_FOUND_SYMBOL)
>> +		SYMBOL_INIT(init_level4_pgt, "init_top_pgt");
>>  	SYMBOL_INIT(vmlist, "vmlist");
>>  	SYMBOL_INIT(vmap_area_list, "vmap_area_list");
>>  	SYMBOL_INIT(node_online_map, "node_online_map");
>> @@ -2104,7 +2106,10 @@ write_vmcoreinfo_data(void)
>>  	WRITE_SYMBOL("init_uts_ns", init_uts_ns);
>>  	WRITE_SYMBOL("_stext", _stext);
>>  	WRITE_SYMBOL("swapper_pg_dir", swapper_pg_dir);
>> -	WRITE_SYMBOL("init_level4_pgt", init_level4_pgt);
>> +	if (SYMBOL(init_level4_pgt) == NOT_FOUND_SYMBOL)
>> +		WRITE_SYMBOL("init_top_pgt", init_level4_pgt);
>> +	else
>> +		WRITE_SYMBOL("init_level4_pgt", init_level4_pgt);

Whether the source is init_level4_pgt or init_top_pgt, the value will
be kept as SYMBOL(init_level4_pgt), so this conditional judgment is meaningless.

I think what you want to do is like commit: ed46b6ad9, but I don't want to
introduce a new flag every time a symbol name is changed. So how about
unification into "init_level4_pgt" for backward compatibility ?
The old name can be read in all versions of makedumpfile.


Thanks,
Atsushi Kumagai

>>  	WRITE_SYMBOL("vmlist", vmlist);
>>  	WRITE_SYMBOL("vmap_area_list", vmap_area_list);
>>  	WRITE_SYMBOL("node_online_map", node_online_map);
>> @@ -2500,6 +2505,8 @@ read_vmcoreinfo(void)
>>  	READ_SYMBOL("_stext", _stext);
>>  	READ_SYMBOL("swapper_pg_dir", swapper_pg_dir);
>>  	READ_SYMBOL("init_level4_pgt", init_level4_pgt);
>> +	if (SYMBOL(init_level4_pgt) == NOT_FOUND_SYMBOL)
>> +		READ_SYMBOL("init_top_pgt", init_level4_pgt);
>>  	READ_SYMBOL("vmlist", vmlist);
>>  	READ_SYMBOL("vmap_area_list", vmap_area_list);
>>  	READ_SYMBOL("node_online_map", node_online_map);
>> --
>> 2.9.4
>>
>>
>> _______________________________________________
>> kexec mailing list
>> kexec at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/kexec
>
>Tested-by: Dave Young <dyoung at redhat.com>
>
>Thanks
>Dave
>
>_______________________________________________
>kexec mailing list
>kexec at lists.infradead.org
>http://lists.infradead.org/mailman/listinfo/kexec




More information about the kexec mailing list