2017-09-11 18:59:24 +02:00
|
|
|
=================
|
|
|
|
VMCoreInfo device
|
|
|
|
=================
|
|
|
|
|
|
|
|
The `-device vmcoreinfo` will create a fw_cfg entry for a guest to
|
|
|
|
store dump details.
|
|
|
|
|
|
|
|
etc/vmcoreinfo
|
|
|
|
**************
|
|
|
|
|
|
|
|
A guest may use this fw_cfg entry to add information details to qemu
|
|
|
|
dumps.
|
|
|
|
|
|
|
|
The entry of 16 bytes has the following layout, in little-endian::
|
|
|
|
|
|
|
|
#define VMCOREINFO_FORMAT_NONE 0x0
|
|
|
|
#define VMCOREINFO_FORMAT_ELF 0x1
|
|
|
|
|
|
|
|
struct FWCfgVMCoreInfo {
|
|
|
|
uint16_t host_format; /* formats host supports */
|
|
|
|
uint16_t guest_format; /* format guest supplies */
|
|
|
|
uint32_t size; /* size of vmcoreinfo region */
|
|
|
|
uint64_t paddr; /* physical address of vmcoreinfo region */
|
|
|
|
};
|
|
|
|
|
|
|
|
Only full write (of 16 bytes) are considered valid for further
|
|
|
|
processing of entry values.
|
|
|
|
|
|
|
|
A write of 0 in guest_format will disable further processing of
|
|
|
|
vmcoreinfo entry values & content.
|
|
|
|
|
2018-02-28 16:58:39 +01:00
|
|
|
You may write a guest_format that is not supported by the host, in
|
|
|
|
which case the entry data can be ignored by qemu (but you may still
|
|
|
|
access it through a debugger, via vmcoreinfo_realize::vmcoreinfo_state).
|
|
|
|
|
2017-09-11 18:59:24 +02:00
|
|
|
Format & content
|
|
|
|
****************
|
|
|
|
|
|
|
|
As of qemu 2.11, only VMCOREINFO_FORMAT_ELF is supported.
|
|
|
|
|
|
|
|
The entry gives location and size of an ELF note that is appended in
|
|
|
|
qemu dumps.
|
|
|
|
|
|
|
|
The note format/class must be of the target bitness and the size must
|
|
|
|
be less than 1Mb.
|
2017-09-11 18:59:26 +02:00
|
|
|
|
|
|
|
If the ELF note name is "VMCOREINFO", it is expected to be the Linux
|
|
|
|
vmcoreinfo note (see Documentation/ABI/testing/sysfs-kernel-vmcoreinfo
|
|
|
|
in Linux source). In this case, qemu dump code will read the content
|
|
|
|
as a key=value text file, looking for "NUMBER(phys_base)" key
|
|
|
|
value. The value is expected to be more accurate than architecture
|
|
|
|
guess of the value. This is useful for KASLR-enabled guest with
|
|
|
|
ancient tools not handling the VMCOREINFO note.
|