- kvm-accel-mshv-Remove-remap-overlapping-mappings-code.patch [RHEL-178767] - kvm-accel-mshv-implement-cpu_thread_is_idle-hook.patch [RHEL-178767] - kvm-scsi-adjust-error_prepend-formatting.patch [RHEL-155807] - kvm-scsi-always-send-valid-PREEMPT-TYPE-field.patch [RHEL-155807] - kvm-scsi-register-again-after-PREEMPT-without-reservatio.patch [RHEL-155807] - kvm-hw-tpm-tpm_tis_sysbus-defer-resource-allocation-to-r.patch [RHEL-178846] - kvm-vfio-container-Restrict-dma_map_file-to-shared-RAM-o.patch [RHEL-180750] - kvm-scsi-change-buf_size-to-unsigned-int-in-scsi_SG_IO.patch [RHEL-153123] - kvm-scsi-handle-reservation-changes-across-migration.patch [RHEL-153123] - Resolves: RHEL-178767 (MSHV backport onto QEMU 10.1.0 is not able to launch MSHV guests) - Resolves: RHEL-155807 (live migration failed the VM just register key only [rhel-10.3]) - Resolves: RHEL-178846 ([aarch64] qemu-kvm crashes on --device tpm-tis-device,?) - Resolves: RHEL-180750 (Backport in QEMU : vfio/container: Restrict dma_map_file() to shared RAM or RAM devices) - Resolves: RHEL-153123 (live migration failed or get failed WSFC test result during WSFC testing [rhel-10.3])
59 lines
2.2 KiB
Diff
59 lines
2.2 KiB
Diff
From 2a298912b20e7d47ce5ac68c8524ab286d6ecf6f Mon Sep 17 00:00:00 2001
|
|
From: Magnus Kulke <magnuskulke@linux.microsoft.com>
|
|
Date: Tue, 21 Apr 2026 05:21:54 +0000
|
|
Subject: [PATCH 2/9] accel/mshv: implement cpu_thread_is_idle() hook
|
|
|
|
RH-Author: Magnus Kulke <None>
|
|
RH-MergeRequest: 490: accel/mshv: backport required patches for mshv guests
|
|
RH-Jira: RHEL-178767
|
|
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
RH-Commit: [2/2] 3be517f22c0af3dccc6bc33ab2fee541a6802b6a (mkulke/qemu-kvm)
|
|
|
|
In MSHV the hypervisor APIC is always used, so we to implement this hook
|
|
to make sure the AP's vcpu thread is not blocked waiting for an INIT SIPI
|
|
by the BSP. Without this change soft reboots with -smp cpus>=2 will
|
|
hang.
|
|
|
|
Signed-off-by: Magnus Kulke <magnuskulke@linux.microsoft.com>
|
|
Reviewed-by: Mohamed Mediouni <mohamed@unpredictable.fr>
|
|
Link: https://lore.kernel.org/r/20260421-mshv_accel_arm64_supp-v3-9-469f544778ba@linux.microsoft.com
|
|
[Make comment not x86 specific. - Paolo]
|
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
(cherry picked from commit dbfb680772d5184544f7c0a8bba96bec229c96e6)
|
|
---
|
|
accel/mshv/mshv-all.c | 12 ++++++++++++
|
|
1 file changed, 12 insertions(+)
|
|
|
|
diff --git a/accel/mshv/mshv-all.c b/accel/mshv/mshv-all.c
|
|
index 88b66f2992..d7df89dbd2 100644
|
|
--- a/accel/mshv/mshv-all.c
|
|
+++ b/accel/mshv/mshv-all.c
|
|
@@ -699,11 +699,23 @@ static const TypeInfo mshv_accel_type = {
|
|
.instance_size = sizeof(MshvState),
|
|
};
|
|
|
|
+/*
|
|
+ * MSHV manages secondary processors in the hypervisor. SIPI for x86 and
|
|
+ * PSCI for Arm are handled internally. Halted vCPUs must still enter
|
|
+ * mshv_cpu_exec() so that MSHV_RUN_VP is called and the hypervisor will
|
|
+ * wake APs.
|
|
+ */
|
|
+static bool mshv_vcpu_thread_is_idle(CPUState *cpu)
|
|
+{
|
|
+ return false;
|
|
+}
|
|
+
|
|
static void mshv_accel_ops_class_init(ObjectClass *oc, const void *data)
|
|
{
|
|
AccelOpsClass *ops = ACCEL_OPS_CLASS(oc);
|
|
|
|
ops->create_vcpu_thread = mshv_start_vcpu_thread;
|
|
+ ops->cpu_thread_is_idle = mshv_vcpu_thread_is_idle;
|
|
ops->synchronize_post_init = mshv_cpu_synchronize_post_init;
|
|
ops->synchronize_post_reset = mshv_cpu_synchronize_post_reset;
|
|
ops->synchronize_state = mshv_cpu_synchronize;
|
|
--
|
|
2.52.0
|
|
|