[PATCH] KVM: arm64: vgic-v4: Make the doorbell request robust w.r.t preemption

Oliver Upton oliver.upton at linux.dev
Fri Jul 14 09:40:01 PDT 2023


On Thu, 13 Jul 2023 08:06:57 +0100, Marc Zyngier wrote:
> Xiang reports that VMs occasionally fail to boot on GICv4.1 systems when
> running a preemptible kernel, as it is possible that a vCPU is blocked
> without requesting a doorbell interrupt.
> 
> The issue is that any preemption that occurs between vgic_v4_put() and
> schedule() on the block path will mark the vPE as nonresident and *not*
> request a doorbell irq. This occurs because when the vcpu thread is
> resumed on its way to block, vcpu_load() will make the vPE resident
> again. Once the vcpu actually blocks, we don't request a doorbell
> anymore, and the vcpu won't be woken up on interrupt delivery.
> 
> [...]

Applied to kvmarm/fixes, thanks!

[1/1] KVM: arm64: vgic-v4: Make the doorbell request robust w.r.t preemption
      https://git.kernel.org/kvmarm/kvmarm/c/b321c31c9b7b

--
Best,
Oliver



More information about the linux-arm-kernel mailing list