This patch series implements hypervisor core collection when running under Linux as root. By default initial hypervisor RAM is already mapped into Linux as reserved. Further any RAM deposited comes from Linux memory heap. The hypervisor locks all that RAM to protect it from root or any other domains. At a high level, the methodology involes devirtualizing the system on the fly upon either Linux crash or the hypervisor crash, then collecting core as usual. This means hypervisor RAM is automatically collected into the vmcore. Devirtualization is the process of disabling the hypervisor and taking control of the system.
Hypervisor pages are then accessible via crash command (using raw mem dump) or windbg which has the ability to read hypervisor pdb symbol file. V3: o remove usage of the word "dom0" as asked by maintainer o change hyp to hv in comment and ipi to IPI o rebase to: hyperv-next: commit b595edcb2472 V2: o change few comments and commit-messages o add support for panic_timeout for better support if kdump kernel is not loaded. o some other minor changes, like change devirt_cr3arg to devirt_arg, int to bool. V1: o Describe changes in imperative mood. Remove "This commit" o Remove pr_emerg: causing unnecessary review noise o Add missing kexec_crash_loaded() o Remove leftover unnecessary memcpy in hv_crash_setup_trampdata o Address objtool warnings via annotations Mukesh Rathor (6): x86/hyperv: Rename guest crash shutdown function hyperv: Add two new hypercall numbers to guest ABI public header hyperv: Add definitions for hypervisor crash dump support x86/hyperv: Add trampoline asm code to transition from hypervisor x86/hyperv: Implement hypervisor RAM collection into vmcore x86/hyperv: Enable build of hypervisor crashdump collection files arch/x86/hyperv/Makefile | 6 + arch/x86/hyperv/hv_crash.c | 642 ++++++++++++++++++++++++++++++++ arch/x86/hyperv/hv_init.c | 1 + arch/x86/hyperv/hv_trampoline.S | 101 +++++ arch/x86/include/asm/mshyperv.h | 13 + arch/x86/kernel/cpu/mshyperv.c | 5 +- include/hyperv/hvgdk_mini.h | 2 + include/hyperv/hvhdk_mini.h | 55 +++ 8 files changed, 823 insertions(+), 2 deletions(-) create mode 100644 arch/x86/hyperv/hv_crash.c create mode 100644 arch/x86/hyperv/hv_trampoline.S -- 2.36.1.vfs.0.0
