From e08cffdc58d655cda82d11917bedf8344a52cde6 Mon Sep 17 00:00:00 2001 From: Michael S. Tsirkin Date: Wed, 21 May 2014 14:37:50 -0500 Subject: [PATCH 26/26] device-assignment: don't update msix if vector's unchanged RH-Author: Michael S. Tsirkin Message-id: <1400683021-23190-1-git-send-email-mst@redhat.com> Patchwork-id: 58971 O-Subject: [PATCH qemu-kvm RHEL6.6] device-assignment: don't update msix if vector's unchanged Bugzilla: 1096984 RH-Acked-by: Paolo Bonzini RH-Acked-by: Alex Williamson RH-Acked-by: Laszlo Ersek Old guests constantly mask/unmask msix vectors, doing slow path interrupt routing ioctls slows them down significantly. Signed-off-by: Michael S. Tsirkin Upstream status: N/A closest is 40509f7f52672fe41c2cce895e187352fc09f53a Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1096984 Brew build: http://brewweb.devel.redhat.com/brew/taskinfo?taskID=7482162 --- hw/device-assignment.c | 3 +++ 1 file changed, 3 insertions(+) Signed-off-by: Jeff E. Nelson --- hw/device-assignment.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/hw/device-assignment.c b/hw/device-assignment.c index e9fa3e0..63a1c5a 100644 --- a/hw/device-assignment.c +++ b/hw/device-assignment.c @@ -1773,6 +1773,9 @@ static void msix_mmio_writel(void *opaque, adev->entry[i].u.msi.address_lo = entry->addr_lo; adev->entry[i].u.msi.address_hi = entry->addr_hi; adev->entry[i].u.msi.data = entry->data; + if (!memcmp(&adev->entry[i].u.msi, &orig.u.msi, sizeof orig.u.msi)) { + return; + } ret = kvm_update_routing_entry(kvm_context, &orig, &adev->entry[i]); -- 1.7.1