From: Laurent Vivier Date: Mon, 8 Aug 2016 13:08:53 +0000 (+0200) Subject: ppc64: fix compressed dump with pseries kernel X-Git-Tag: TizenStudio_2.0_p4.0~6^2~12^2~6^2~42^2~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=760d88d1d0c409f1afe6f1c91539487413e8b2a9;p=sdk%2Femulator%2Fqemu.git ppc64: fix compressed dump with pseries kernel If we don't provide the page size in target-ppc:cpu_get_dump_info(), the default one (TARGET_PAGE_SIZE, 4KB) is used to create the compressed dump. It works fine with Macintosh, but not with pseries as the kernel default page size is 64KB. Without this patch, if we generate a compressed dump in the QEMU monitor: (qemu) dump-guest-memory -z qemu.dump This dump cannot be read by crash: # crash vmlinux qemu.dump ... WARNING: cannot translate vmemmap kernel virtual addresses: commands requiring page structure contents will fail ... Page_size is used to determine the dumpfile's block size. The block size needs to be at least the page size, but a multiple of page size works fine too. For PPC64, linux supports either 4KB or 64KB software page size. So we define the page_size to 64KB. Signed-off-by: Laurent Vivier Reviewed-by: Andrew Jones Signed-off-by: David Gibson --- diff --git a/target-ppc/arch_dump.c b/target-ppc/arch_dump.c index df1fd8c..40282a1 100644 --- a/target-ppc/arch_dump.c +++ b/target-ppc/arch_dump.c @@ -220,6 +220,11 @@ int cpu_get_dump_info(ArchDumpInfo *info, } else { info->d_endian = ELFDATA2LSB; } + /* 64KB is the max page size for pseries kernel */ + if (strncmp(object_get_typename(qdev_get_machine()), + "pseries-", 8) == 0) { + info->page_size = (1U << 16); + } return 0; }