[Crash-utility] [Question] crash-arm64 cannot determine VA_BITS_ACTUAL for qemu dump-guest-memory
HAGIO KAZUHITO(萩尾 一仁)
k-hagio-ab at nec.com
Thu Jun 1 06:16:28 UTC 2023
On 2023/05/28 14:05, Qiwu.Chen wrote:
> Dear Mantainers,
>
> I meet a problem that the latest crash tool built for ARM64cannot load the vmcore genarated by Qemu ARM64 guest OS.
>
> 1) The vmcore captured by "dump-guest-memory" cmd in qemu monitor mode:
>
> (qemu) dump-guest-memory vmcore
>
> $ file vmcore
> vmcore: ELF 64-bit LSB core file, ARM aarch64, version 1 (SYSV), SVR4-style
>
>
> My host OS installed qemu-system-aarch64 version is 6.2.0
>
> $ qemu-system-aarch64 --version
>
> QEMU emulator version 6.2.0
>
> 2) The test for linux version both 5.0 and 5.15 which disable kaslr is NG, but test linux version 4.0 loading vmcore is OK.
>
> Here's the error log while crash tool loading linux-5.15 vmcore:
>
> $ crash64 vmlinux vmcore
>
>
> crash64 8.0.3++
> Copyright (C) 2002-2022 Red Hat, Inc.
> Copyright (C) 2004, 2005, 2006, 2010 IBM Corporation
> Copyright (C) 1999-2006 Hewlett-Packard Co
> Copyright (C) 2005, 2006, 2011, 2012 Fujitsu Limited
> Copyright (C) 2006, 2007 VA Linux Systems Japan K.K.
> Copyright (C) 2005, 2011, 2020-2022 NEC Corporation
> Copyright (C) 1999, 2002, 2007 Silicon Graphics, Inc.
> Copyright (C) 1999, 2000, 2001, 2002 Mission Critical Linux, Inc.
> Copyright (C) 2015, 2021 VMware, Inc.
> This program is free software, covered by the GNU General Public License,
> and you are welcome to change it and/or distribute copies of it under
> certain conditions. Enter "help copying" to see the conditions.
> This program has absolutely no warranty. Enter "help warranty" for details.
>
> crash64: cannot determine VA_BITS_ACTUAL
>
> 3) It seems crash tool cannot get vabits_actual from vmcore, so I append "vabits_actual=48" to crash cmd:
> $ crash-arm64 vmlinux vmcore -m vabits_actual=48
>
> The result shows some symbols seek error:
> crash-arm64: seek error: kernel virtual address: ffff800011769918 type: "possible"
> WARNING: cannot read cpu_possible_map
> crash-arm64: seek error: kernel virtual address: ffff800011769958 type: "present"
> WARNING: cannot read cpu_present_map
> crash-arm64: seek error: kernel virtual address: ffff800011769938 type: "online"
> WARNING: cannot read cpu_online_map
> crash-arm64: seek error: kernel virtual address: ffff800011769978 type: "active"
> WARNING: cannot read cpu_active_map
> crash-arm64: seek error: kernel virtual address: ffff800011936390 type: "shadow_timekeeper xtime_sec"
> xtime timespec.tv_sec: 55fcd060743a: Thu Feb 11 04:14:50 CST 2997960
> crash-arm64: seek error: kernel virtual address: ffff800011771268 type: "init_uts_ns"
>
> The attachment is the detailed log which append "-d 1" to crash cmd.
> Could you please help this?
Adding "-m max_physmem_bits=xx" also does not work?
My recent impression is that the recent arm64 vmcores are very hard
to open without vmcoreinfo... I'm not familiar with qemu, but could
you add a vmcoreinfo to the vmcore? It might be a quick solution.
https://github.com/qemu/qemu/blob/master/docs/specs/vmcoreinfo.txt
Thanks,
Kazu
More information about the Crash-utility
mailing list