[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PULL 1/6] ppc64: fix compressed dump with pseries kernel
From: |
David Gibson |
Subject: |
[Qemu-ppc] [PULL 1/6] ppc64: fix compressed dump with pseries kernel |
Date: |
Wed, 10 Aug 2016 15:45:36 +1000 |
From: Laurent Vivier <address@hidden>
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 <address@hidden>
Reviewed-by: Andrew Jones <address@hidden>
Signed-off-by: David Gibson <address@hidden>
---
target-ppc/arch_dump.c | 5 +++++
1 file changed, 5 insertions(+)
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;
}
--
2.7.4
- [Qemu-ppc] [PULL 0/6] ppc-for-2.7 queue 20160810, David Gibson, 2016/08/10
- [Qemu-ppc] [PULL 1/6] ppc64: fix compressed dump with pseries kernel,
David Gibson <=
- [Qemu-ppc] [PULL 3/6] ppc: Introduce a function to look up CPU alias strings, David Gibson, 2016/08/10
- [Qemu-ppc] [PULL 6/6] ppc/kvm: Register also a generic spapr CPU core family type, David Gibson, 2016/08/10
- [Qemu-ppc] [PULL 2/6] spapr: remove extra type variable, David Gibson, 2016/08/10
- [Qemu-ppc] [PULL 5/6] ppc/kvm: Do not mess up the generic CPU family registration, David Gibson, 2016/08/10
- [Qemu-ppc] [PULL 4/6] hw/ppc/spapr: Look up CPU alias names instead of hard-coding the aliases, David Gibson, 2016/08/10
- Re: [Qemu-ppc] [PULL 0/6] ppc-for-2.7 queue 20160810, Peter Maydell, 2016/08/10