| ================= | |
| 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. |