On Tuesday 01 August 2017 01:29 PM, Pratyush Anand wrote:
Hi Atsushi,
Thanks for the review.
On Tuesday 01 August 2017 01:11 PM, Atsushi Kumagai wrote:
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 <[email protected]>
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 <[email protected]>
---
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.
Probably you meant that we read old and new symbol in SYMBOL(init_level4_pgt),
so the above if statement will always be false, right?
Hummm..in that case vmcoreinfo will have bad info.
IIUC,we will have above if condition true for v4.13 kernel and false for older
kernel, right? Now, if keep the name "init_level4_pgt" in a vmcore generated
for v4.13, would that be good, even though that would work conceptually?
I thought that generated vmcoreinfo from vmlinux should look like as being
encoded into kernel, so same name of symbol as in kernel.
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.
Still not sure, it it will be a good idea to have "init_level4_pgt" in newer
generated vmcoreinfo ...
I agree, and so I kept "init_level4_pgt" for internal usage of makedumpfile.
But, IMHO any output file (like generated vmcoreinfo with -g) should have
matching kernel symbol.
--
Regards
Pratyush
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec