-----Original Message-----
v3 addressed all comments from Daisuke. Changes:
Patch #1: new patch. Generalizing the idea of trying all CPUs
Patch #2: new patch. 5 level paging support. Verified.
Patch #3:
- 5 level paging support
- make this method default
Hi Alexey,
The following warnings are emitted with this patchset.
$ make clean ; make warn
...
cc -c -g -DX86_64 -DLZO -DSNAPPY -DGDB_7_6 kaslr_helper.c -Wall -O2 -Wstrict-prototypes
-Wmissing-prototypes -fstack-protector -Wformat-security
kaslr_helper.c: In function ‘find_kernel_start’:
kaslr_helper.c:406:6: warning: unused variable ‘i’ [-Wunused-variable]
406 | int i, pgd_idx, p4d_idx, pud_idx, pmd_idx, pte_idx;
| ^
kaslr_helper.c: At top level:
kaslr_helper.c:503:1: warning: no previous prototype for
‘calc_kaslr_offset_from_page_tables’ [-Wmissing-prototypes]
503 | calc_kaslr_offset_from_page_tables(uint64_t pgd, ulong *kaslr_offset,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kaslr_helper.c:572:1: warning: no previous prototype for ‘calc_kaslr_offset_from_idt’
[-Wmissing-prototypes]
572 | calc_kaslr_offset_from_idt(uint64_t idtr, uint64_t pgd, ulong *kaslr_offset, ulong
*phys_base)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from kaslr_helper.c:22:
kaslr_helper.c: In function ‘calc_kaslr_offset_from_page_tables.part.0’:
defs.h:3546:32: warning: ‘pgd_pte’ may be used uninitialized in this function
[-Wmaybe-uninitialized]
3546 | #define IS_LAST_P4D_READ(p4d) ((ulong)(p4d) ==
machdep->machspec->last_p4d_read)
| ^
kaslr_helper.c:407:11: note: ‘pgd_pte’ was declared here
407 | uint64_t pgd_pte, pud_pte, pmd_pte, pte;
| ^~~~~~~
Otherwise, the patchset looks good to me and tested ok with some qemu dumps.
Thanks,
Kazu
Alexey Makhalov (3):
calc_kaslr_offset: try all CPUs
calc_kaslr_offset: 5-level paging support
kaslr: get offset by walking page tree
defs.h | 8 +-
diskdump.c | 6 +
kaslr_helper.c | 434 ++++++++++++++++++++++++++++++++++++++++++---------------
netdump.c | 6 +
sadump.c | 37 +----
symbols.c | 5 +-
vmware_vmss.c | 15 +-
7 files changed, 359 insertions(+), 152 deletions(-)
--
2.11.0
--
Crash-utility mailing list
Crash-utility(a)redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility