Re: [PATCH v6 29/51] x86/kvm: Don't disable kvmclock on BSP in syscore_suspend()
[email protected] Fri, 07 Aug 2026 00:04:51 +0000
| Newsgroups | org.kernel.vger.linux-hyperv,org.kernel.vger.kvm |
|---|---|
| Message-ID | <[email protected]> |
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: Pre-existing issues: - [High] This problem wasn't introduced by this patch, but the KVM migration control MSR (MSR_KVM_MIGRATION_CONTROL) is disabled on suspend or CPU offline and never re-enabled on resume or CPU online, permanently breaking SEV live migration. -- --- Patch [29]: [PATCH v6 29/51] x86/kvm: Don't disable kvmclock on BSP in syscore_suspend() --- commit bb5c379a7a7675001e9cbd3ac5ed082d68cc68ae Author: Sean Christopherson <[email protected]> x86/kvm: Don't disable kvmclock on BSP in syscore_suspend() This commit introduces a kvm_guest_cpu_action enum to avoid disabling kvmclock on the BSP during syscore_suspend. The BSP's clock is restored earlier via sched_clock, and disabling it can cause time drift over time. > diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c > --- a/arch/x86/kernel/kvm.c > +++ b/arch/x86/kernel/kvm.c [ ... ] > @@ -460,7 +460,7 @@ static void __init sev_map_percpu_data(void) > } > } > > -static void kvm_guest_cpu_offline(bool shutdown) > +static void kvm_guest_cpu_offline(enum kvm_guest_cpu_action action) > { > kvm_disable_steal_time(); > if (kvm_para_has_feature(KVM_FEATURE_PV_EOI)) > @@ -468,9 +468,10 @@ static void kvm_guest_cpu_offline(bool shutdown) > if (kvm_para_has_feature(KVM_FEATURE_MIGRATION_CONTROL)) > wrmsrq(MSR_KVM_MIGRATION_CONTROL, 0); [Severity: High] This is a pre-existing issue, but does this permanently break SEV live migration after a suspend/resume cycle? When a CPU goes offline or the system suspends, kvm_guest_cpu_offline() clears MSR_KVM_MIGRATION_CONTROL. However, it appears this MSR is never re-enabled when the CPU comes back online. For example, when the system resumes, kvm_guest_cpu_init() is called to restore other PV state like PV EOI and async PF, but it does not appear to restore MSR_KVM_MIGRATION_CONTROL. Could this lack of restoration cause a SEV guest to permanently lose the ability to be live-migrated after an AP offline/online event or a suspend/resume? > kvm_pv_disable_apf(); > - if (!shutdown) > + if (action != KVM_GUEST_SHUTDOWN) > apf_task_wake_all(); > - kvmclock_disable(); > + > + kvmclock_cpu_action(action); > } -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=29