[PATCH v6 10/15] KVM: arm64: connect LPIs to the VGIC emulation
From: Marc Zyngier <hidden>
Date: 2016-06-22 16:26:56
Also in:
kvm, kvmarm
From: Marc Zyngier <hidden>
Date: 2016-06-22 16:26:56
Also in:
kvm, kvmarm
On 17/06/16 13:08, Andre Przywara wrote:
LPIs are dynamically created (mapped) at guest runtime and their actual number can be quite high, but is mostly assigned using a very sparse allocation scheme. So arrays are not an ideal data structure to hold the information. We use an RCU protected list to hold all mapped LPIs. vgic_its_get_lpi() iterates the list using RCU list primitives, so it's safe to be called from an non-preemptible context like the KVM exit/entry path. Also we store a pointer to that struct vgic_irq in our struct its_itte, so we can easily access it. Eventually we call our new vgic_its_get_lpi() from vgic_get_irq(), so the VGIC code gets transparently access to LPIs. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
I'm skipping the review of this particular patch until you've switched to the kref API. Thanks, M. -- Jazz is not dead. It just smells funny...