qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 1/1] dump: Update correct kdump phys_base field


From: Marc-André Lureau
Subject: Re: [Qemu-devel] [PATCH 1/1] dump: Update correct kdump phys_base field for AArch64
Date: Sun, 11 Mar 2018 18:42:49 +0100

Hi

On Fri, Mar 9, 2018 at 6:03 PM, Wei Huang <address@hidden> wrote:
> For guest kernel that supports KASLR, the load address can change every
> time when guest VM runs. To find the physical base address correctly,
> current QEMU dump searches VMCOREINFO for the string "NUMBER(phys_base)=".
> However this string pattern is only available on x86_64. AArch64 uses a
> different field, called "NUMBER(PHYS_OFFSET)=". This patch makes sure
> QEMU dump uses the correct string on AArch64.
>
> Signed-off-by: Wei Huang <address@hidden>

Reviewed-by: Marc-André Lureau <address@hidden>


> ---
>  dump.c | 14 +++++++++++---
>  1 file changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/dump.c b/dump.c
> index 097e60b..6bdb0db 100644
> --- a/dump.c
> +++ b/dump.c
> @@ -1609,10 +1609,18 @@ static void vmcoreinfo_update_phys_base(DumpState *s)
>
>      lines = g_strsplit((char *)vmci, "\n", -1);
>      for (i = 0; lines[i]; i++) {
> -        if (g_str_has_prefix(lines[i], "NUMBER(phys_base)=")) {
> -            if (qemu_strtou64(lines[i] + 18, NULL, 16,
> +        const char *prefix = NULL;
> +
> +        if (s->dump_info.d_machine == EM_X86_64) {
> +            prefix = "NUMBER(phys_base)=";
> +        } else if (s->dump_info.d_machine == EM_AARCH64) {
> +            prefix = "NUMBER(PHYS_OFFSET)=";
> +        }
> +
> +        if (prefix && g_str_has_prefix(lines[i], prefix)) {
> +            if (qemu_strtou64(lines[i] + strlen(prefix), NULL, 16,
>                                &phys_base) < 0) {
> -                warn_report("Failed to read NUMBER(phys_base)=");
> +                warn_report("Failed to read %s", prefix);
>              } else {
>                  s->dump_info.phys_base = phys_base;
>              }
> --
> 1.8.3.1
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]