================= 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 `_). 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.