|
@@ -0,0 +1,54 @@
|
|
|
+=================
|
|
|
+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.
|
|
|
+
|
|
|
+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``).
|
|
|
+
|
|
|
+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.
|
|
|
+
|
|
|
+If the ELF note name is ``VMCOREINFO``, it is expected to be the Linux
|
|
|
+vmcoreinfo note (see `the kernel documentation for its format
|
|
|
+<https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-kernel-vmcoreinfo>`_).
|
|
|
+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.
|