lkml.org 
[lkml]   [2015]   [Jul]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [v5 15/19] KVM: eventfd: add irq bypass consumer management
Hi Feng,
On 07/13/2015 11:47 AM, Feng Wu wrote:
> From: Eric Auger <eric.auger@linaro.org>
>
> This patch adds the registration/unregistration of an
> irq_bypass_consumer on irqfd assignment/deassignment.
>
> Signed-off-by: Eric Auger <eric.auger@linaro.org>
> Signed-off-by: Feng Wu <feng.wu@intel.com>
> ---
> virt/kvm/eventfd.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c
> index 647ffb8..4225eea 100644
> --- a/virt/kvm/eventfd.c
> +++ b/virt/kvm/eventfd.c
> @@ -35,6 +35,7 @@
> #include <linux/srcu.h>
> #include <linux/slab.h>
> #include <linux/seqlock.h>
> +#include <linux/irqbypass.h>
> #include <trace/events/kvm.h>
>
> #include <kvm/iodev.h>
> @@ -140,6 +141,7 @@ irqfd_shutdown(struct work_struct *work)
> /*
> * It is now safe to release the object's resources
> */
> + irq_bypass_unregister_consumer(&irqfd->consumer);
> eventfd_ctx_put(irqfd->eventfd);
> kfree(irqfd);
> }
> @@ -380,6 +382,11 @@ kvm_irqfd_assign(struct kvm *kvm, struct kvm_irqfd *args)
> */
> fdput(f);
>
> + irqfd->consumer.token = (void *)irqfd->eventfd;
> + kvm_arch_irq_consumer_init(&irqfd->consumer);
what if the architecture does not implement kvm_arch_irq_consumer_init?

Also you are using here this single function kvm_arch_irq_consumer_init
to do some irq bypass manager settings + attaching your
irqfd->arch_update cb which does not really relate to IRQ bypass
manager. I think I preferred the approach where start/top/add/del were
exposed separately ([RFC v2 5/6] KVM: introduce kvm_arch functions for
IRQ bypass).

Why not adding another kvm_arch_irq_routing_update then, not necessarily
linked to irq bypass manager.

Best Regards

Eric
> + ret = irq_bypass_register_consumer(&irqfd->consumer);
> + WARN_ON(ret);
> +
> return 0;
>
> fail:
>



\
 
 \ /
  Last update: 2015-07-13 15:41    [W:0.115 / U:0.744 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site