qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] block/iscsi: precache the allocation status of a target
@ 2016-06-30 11:08 Peter Lieven
  2016-06-30 15:59 ` Paolo Bonzini
  0 siblings, 1 reply; 4+ messages in thread
From: Peter Lieven @ 2016-06-30 11:08 UTC (permalink / raw)
  To: qemu-block
  Cc: qemu-devel, pbonzini, kwolf, mreitz, ronniesahlberg, famz,
	Peter Lieven

this fills up the allocationmap at iscsi_open. This helps
to reduce the number of get_block_status requests during runtime
significantly.

Signed-off-by: Peter Lieven <pl@kamp.de>
---
 block/iscsi.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/block/iscsi.c b/block/iscsi.c
index 0cdcedb..04fb0a3 100644
--- a/block/iscsi.c
+++ b/block/iscsi.c
@@ -1774,6 +1774,22 @@ static int iscsi_open(BlockDriverState *bs, QDict *options, int flags,
                                      iscsilun->block_size) >> BDRV_SECTOR_BITS;
         if (iscsilun->lbprz) {
             ret = iscsi_allocmap_init(iscsilun, bs->open_flags);
+            if (ret == 0) {
+                unsigned int max_reqs = 64;
+                int64_t sector_num = 0;
+                while (max_reqs-- && sector_num < bs->total_sectors) {
+                    int n;
+                    BlockDriverState *file;
+                    ret = bdrv_get_block_status(bs, sector_num,
+                                                BDRV_REQUEST_MAX_SECTORS,
+                                                &n, &file);
+                    if (ret < 0) {
+                        break;
+                    }
+                    sector_num += n;
+                    ret = 0;
+                }
+            }
         }
     }
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-07-07 12:21 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-06-30 11:08 [Qemu-devel] [PATCH] block/iscsi: precache the allocation status of a target Peter Lieven
2016-06-30 15:59 ` Paolo Bonzini
2016-07-07 11:40   ` Peter Lieven
2016-07-07 12:21     ` Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).