kvm tools: Respect VRING_AVAIL_F_NO_INTERRUPT

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>
This commit is contained in:
Asias He
2015-06-01 16:39:43 +01:00
committed by Will Deacon
parent 7f5ffaf512
commit 9b6022b8f7
+3
View 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);