[PATCH v2 12/17] arm64: KVM: vgic-v2: Make GICD_SGIR quicker to hit
Christoffer Dall
christoffer.dall at linaro.org
Wed Mar 2 15:08:23 PST 2016
On Wed, Feb 17, 2016 at 04:40:44PM +0000, Marc Zyngier wrote:
> The GICD_SGIR register lives a long way from the beginning of
> the handler array, which is searched linearly. As this is hit
> pretty often, let's move it up. This saves us some precious
> cycles when the guest is generating IPIs.
>
> Signed-off-by: Marc Zyngier <marc.zyngier at arm.com>
Acked-by: Christoffer Dall <christoffer.dall at linaro.org>
> ---
> virt/kvm/arm/vgic-v2-emul.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/virt/kvm/arm/vgic-v2-emul.c b/virt/kvm/arm/vgic-v2-emul.c
> index 1390797..1b0bee0 100644
> --- a/virt/kvm/arm/vgic-v2-emul.c
> +++ b/virt/kvm/arm/vgic-v2-emul.c
> @@ -321,6 +321,11 @@ static bool handle_mmio_sgi_clear(struct kvm_vcpu *vcpu,
>
> static const struct vgic_io_range vgic_dist_ranges[] = {
> {
> + .base = GIC_DIST_SOFTINT,
> + .len = 4,
> + .handle_mmio = handle_mmio_sgi_reg,
> + },
> + {
> .base = GIC_DIST_CTRL,
> .len = 12,
> .bits_per_irq = 0,
> @@ -387,11 +392,6 @@ static const struct vgic_io_range vgic_dist_ranges[] = {
> .handle_mmio = handle_mmio_cfg_reg,
> },
> {
> - .base = GIC_DIST_SOFTINT,
> - .len = 4,
> - .handle_mmio = handle_mmio_sgi_reg,
> - },
> - {
> .base = GIC_DIST_SGI_PENDING_CLEAR,
> .len = VGIC_NR_SGIS,
> .handle_mmio = handle_mmio_sgi_clear,
> --
> 2.1.4
>
More information about the linux-arm-kernel
mailing list