qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH for-2.5 3/4] vhost: switch region lookup from linear


From: Igor Mammedov
Subject: [Qemu-devel] [PATCH for-2.5 3/4] vhost: switch region lookup from linear to bsearch
Date: Tue, 28 Jul 2015 16:52:52 +0200

Signed-off-by: Igor Mammedov <address@hidden>
---
 hw/virtio/vhost.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index 8bef43e..5b8598b 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -420,13 +420,11 @@ static struct vhost_memory_region 
*vhost_dev_find_reg(struct vhost_dev *dev,
                                                       uint64_t start_addr,
                                                       uint64_t size)
 {
-    int i, n = dev->mem->nregions;
-    for (i = 0; i < n; ++i) {
-        struct vhost_memory_region *reg = dev->mem->regions + i;
-        if (ranges_overlap(reg->guest_phys_addr, reg->memory_size,
-                           start_addr, size)) {
-            return reg;
-        }
+    int i = memory_range_bsearch(dev, start_addr), n = dev->mem->nregions;
+    struct vhost_memory_region *reg = dev->mem->regions + i;
+    if (i < n && ranges_overlap(reg->guest_phys_addr, reg->memory_size,
+                                start_addr, size)) {
+        return reg;
     }
     return NULL;
 }
-- 
1.8.3.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]