qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] block/iscsi: speed up read for unallocated sect


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH] block/iscsi: speed up read for unallocated sectors
Date: Thu, 27 Mar 2014 15:17:41 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0

Il 27/03/2014 14:43, Peter Lieven ha scritto:

+static void iscsi_allocationmap_set(IscsiLun *iscsilun, int64_t sector_num,
+                                    int nb_sectors)
+{
+    if (!iscsilun->cluster_sectors) {
+        return;
+    }
+    bitmap_set(iscsilun->allocationmap,
+               sector_num / iscsilun->cluster_sectors,
+               DIV_ROUND_UP(nb_sectors, iscsilun->cluster_sectors));
+}
+
+static void iscsi_allocationmap_clear(IscsiLun *iscsilun, int64_t sector_num,
+                                      int nb_sectors)
+{
+    if (!iscsilun->cluster_sectors) {
+        return;
+    }
+    bitmap_clear(iscsilun->allocationmap,
+                 sector_num / iscsilun->cluster_sectors,
+                 DIV_ROUND_UP(nb_sectors, iscsilun->cluster_sectors));
+}
+

Here you need to round the other way, because partial clusters are not unmapped:

        cluster_num = DIV_ROUND_UP(sector_num, iscsi->cluster_sectors);
        nb_clusters = (sector_num + nb_sectors) / iscsi->cluster_sectors
                - cluster_num;
        bitmap_clear(iscsilun->allocationmap, cluster_num, nb_clusters);

Paolo



reply via email to

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