diff options
author | Vitaly Kuznetsov <vkuznets@redhat.com> | 2025-08-28 12:16:18 +0300 |
---|---|---|
committer | Wei Liu <wei.liu@kernel.org> | 2025-09-30 22:49:24 +0000 |
commit | 7ad8c34f2435137e2a0dfd0a5dd000e219c642ce (patch) | |
tree | ce9b378fe412f042f7519f55a91c5623b76cadd8 /kernel/entry/virt.c | |
parent | 2d0ddbb65cef99aab241378b0f4ff2d6ea8c3a5a (diff) |
x86/hyperv: Add kexec/kdump support on Azure CVMs
Azure CVM instance types featuring a paravisor hang upon kdump. The
investigation shows that makedumpfile causes a hang when it steps on a page
which was previously share with the host
(HVCALL_MODIFY_SPARSE_GPA_PAGE_HOST_VISIBILITY). The new kernel has no
knowledge of these 'special' regions (which are Vmbus connection pages,
GPADL buffers, ...). There are several ways to approach the issue:
- Convey the knowledge about these regions to the new kernel somehow.
- Unshare these regions before accessing in the new kernel (it is unclear
if there's a way to query the status for a given GPA range).
- Unshare these regions before jumping to the new kernel (which this patch
implements).
To make the procedure as robust as possible, store PFN ranges of shared
regions in a linked list instead of storing GVAs and re-using
hv_vtom_set_host_visibility(). This also allows to avoid memory allocation
on the kdump/kexec path.
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Reviewed-by: Michael Kelley <mhklinux@outlook.com>
Reviewed-by: Tianyu Lan <tiala@microsoft.com>
Signed-off-by: Wei Liu <wei.liu@kernel.org>
Diffstat (limited to 'kernel/entry/virt.c')
0 files changed, 0 insertions, 0 deletions