]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
kvm tools: Respect VRING_AVAIL_F_NO_INTERRUPT
authorAsias He <asias.hejun@gmail.com>
Sat, 7 May 2011 02:34:20 +0000 (10:34 +0800)
committerPekka Enberg <penberg@kernel.org>
Sat, 7 May 2011 08:38:39 +0000 (11:38 +0300)
Do not inject IRQ when guest suppress it.

This can reduce IRQ injection further and bumps
host to guest bandwitdh to 6178.78 Mbps(cpu 63.96%).

Signed-off-by: Asias He <asias.hejun@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
tools/kvm/virtio/core.c

index 07349848f56709ba05bf315a640f2b60cf91c7cc..2b3503d23bf7652dc6b371c26e05092c1618445e 100644 (file)
@@ -60,6 +60,9 @@ u16 virt_queue__get_iov(struct virt_queue *queue, struct iovec iov[], u16 *out,
 
 void virt_queue__trigger_irq(struct virt_queue *vq, int irq, u8 *isr, struct kvm *kvm)
 {
+       if (vq->vring.avail->flags & VRING_AVAIL_F_NO_INTERRUPT)
+               return;
+
        if (*isr == VIRTIO_IRQ_LOW) {
                *isr = VIRTIO_IRQ_HIGH;
                kvm__irq_line(kvm, irq, VIRTIO_IRQ_HIGH);