[Crash-utility] [PATCH] x86_64: Make the conversion between 4level and 5level paging automatically

Dou Liyang douly.fnst at cn.fujitsu.com
Fri Jul 6 09:01:57 UTC 2018


Currently, Crash only enable support for kernel-only 5-level page tables by
entering the command line option "--machdep vm=5level". Since Linux 4.17,
the Linux kernel can be both 4level and 5level page tables. This command line
can't work well for this.

Using the "pgtable_l5_enabled" got from vmcore to detect whether the kernel
proper for 5 level page tables automatically.

Signed-off-by: Dou Liyang <douly.fnst at cn.fujitsu.com>
---
 x86_64.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/x86_64.c b/x86_64.c
index 6d1ae2f..be6164b 100644
--- a/x86_64.c
+++ b/x86_64.c
@@ -203,6 +203,10 @@ x86_64_init(int when)
 			machdep->machspec->kernel_image_size = dtol(string, QUIET, NULL);
 			free(string);
 		}
+		if ((string = pc->read_vmcoreinfo("NUMBER(pgtable_l5_enabled)"))) {
+			machdep->flags |= VM_5LEVEL;
+			free(string);
+		}
 		if (SADUMP_DUMPFILE() || QEMU_MEM_DUMP_NO_VMCOREINFO() ||
 		    VMSS_DUMPFILE())
 			/* Need for calculation of kaslr_offset and phys_base */
-- 
2.14.3






More information about the Crash-utility mailing list