]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
x86/kvm: Preserve BSP MSR_KVM_POLL_CONTROL across suspend/resume
authorWanpeng Li <wanpengli@tencent.com>
Mon, 18 Apr 2022 07:42:32 +0000 (00:42 -0700)
committerStefan Bader <stefan.bader@canonical.com>
Wed, 22 Jun 2022 12:23:23 +0000 (14:23 +0200)
commitb5485fe80ac14fa6e8230638841a3abc5864fcd3
tree0aba8d9e57a42bb8007951ad1a7b576e41400afd
parent5fe5ba730e83bac3d36a6fbb67b7081d973779bb
x86/kvm: Preserve BSP MSR_KVM_POLL_CONTROL across suspend/resume

BugLink: https://bugs.launchpad.net/bugs/1978240
[ Upstream commit 0361bdfddca20c8855ea3bdbbbc9c999912b10ff ]

MSR_KVM_POLL_CONTROL is cleared on reset, thus reverting guests to
host-side polling after suspend/resume.  Non-bootstrap CPUs are
restored correctly by the haltpoll driver because they are hot-unplugged
during suspend and hot-plugged during resume; however, the BSP
is not hotpluggable and remains in host-sde polling mode after
the guest resume.  The makes the guest pay for the cost of vmexits
every time the guest enters idle.

Fix it by recording BSP's haltpoll state and resuming it during guest
resume.

Cc: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Wanpeng Li <wanpengli@tencent.com>
Message-Id: <1650267752-46796-1-git-send-email-wanpengli@tencent.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
arch/x86/kernel/kvm.c