kvm-irqchip: i386: add hook for add/remove virq
authorPeter Xu <peterx@redhat.com>
Thu, 14 Jul 2016 05:56:31 +0000 (13:56 +0800)
committerMichael S. Tsirkin <mst@redhat.com>
Thu, 21 Jul 2016 17:44:19 +0000 (20:44 +0300)
commit38d87493f37e5dc442c7419c5843fcf60bb39d63
tree3df87c6be19b1e00d20752de43904388973f4d36
parentd1f6af6a17a66f58c238e1c26b928cf71c0c11da
kvm-irqchip: i386: add hook for add/remove virq

Adding two hooks to be notified when adding/removing msi routes. There
are two kinds of MSI routes:

- in kvm_irqchip_add_irq_route(): before assigning IRQFD. Used by
  vhost, vfio, etc.

- in kvm_irqchip_send_msi(): when sending direct MSI message, if
  direct MSI not allowed, we will first create one MSI route entry
  in the kernel, then trigger it.

This patch only hooks the first one (irqfd case). We do not need to
take care for the 2nd one, since it's only used by QEMU userspace
(kvm-apic) and the messages will always do in-time translation when
triggered. While we need to note them down for the 1st one, so that we
can notify the kernel when cache invalidation happens.

Also, we do not hook IOAPIC msi routes (we have explicit notifier for
IOAPIC to keep its cache updated). We only need to care about irqfd
users.

Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
include/sysemu/kvm.h
kvm-all.c
target-arm/kvm.c
target-i386/kvm.c
target-i386/trace-events
target-mips/kvm.c
target-ppc/kvm.c
target-s390x/kvm.c