qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [Patch] s390x/kvm: make setting of in-kernel irq routes


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [Patch] s390x/kvm: make setting of in-kernel irq routes more efficient
Date: Mon, 10 Aug 2015 16:10:08 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0


On 10/08/2015 16:02, Jens Freimann wrote:
> When we add new adapter routes we call kvm_irqchip_add_route() for every
> virtqueue and in the same step also do the KVM_SET_GSI_ROUTING ioctl.
> 
> This is unnecessary costly as the interface allows us to set multiple
> routes in one go. Let's first add all routes to the table stored in the
> global kvm_state and then do the ioctl to commit the routes to the
> in-kernel irqchip.
> 
> This saves us several ioctls to the kernel where for each call a list
> is reallocated and populated.

Acked-by: Paolo Bonzini <address@hidden>

but we should do the same for kvm_irqchip_add_msi_route as well.  I'll
prepare a patch.

Paolo

> Signed-off-by: Jens Freimann <address@hidden>
> Reviewed-by: David Hildenbrand <address@hidden>
> ---
>  hw/intc/s390_flic_kvm.c | 2 ++
>  kvm-all.c               | 1 -
>  2 files changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/intc/s390_flic_kvm.c b/hw/intc/s390_flic_kvm.c
> index b471e7a..48714f9 100644
> --- a/hw/intc/s390_flic_kvm.c
> +++ b/hw/intc/s390_flic_kvm.c
> @@ -228,6 +228,8 @@ static int kvm_s390_add_adapter_routes(S390FLICState *fs,
>          routes->gsi[i] = ret;
>          routes->adapter.ind_offset++;
>      }
> +    kvm_irqchip_commit_routes(kvm_state);
> +
>      /* Restore passed-in structure to original state. */
>      routes->adapter.ind_offset = ind_offset;
>      return 0;
> diff --git a/kvm-all.c b/kvm-all.c
> index 06e06f2..c6f5128 100644
> --- a/kvm-all.c
> +++ b/kvm-all.c
> @@ -1293,7 +1293,6 @@ int kvm_irqchip_add_adapter_route(KVMState *s, 
> AdapterInfo *adapter)
>      kroute.u.adapter.adapter_id = adapter->adapter_id;
>  
>      kvm_add_routing_entry(s, &kroute);
> -    kvm_irqchip_commit_routes(s);
>  
>      return virq;
>  }
> -- 2.3.8



reply via email to

[Prev in Thread] Current Thread [Next in Thread]