[Top][All Lists]

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

Re: [Qemu-devel] [PATCH 07/11] block: optimization blk_pwrite_compressed

From: Pavel Butsykin
Subject: Re: [Qemu-devel] [PATCH 07/11] block: optimization blk_pwrite_compressed()
Date: Tue, 28 Jun 2016 15:32:13 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0

On 28.06.2016 14:47, Kevin Wolf wrote:
Am 31.05.2016 um 11:15 hat Denis V. Lunev geschrieben:
From: Pavel Butsykin <address@hidden>

For bdrv_pwrite_compressed() it looks like most of the code creating coroutine
is duplicated in blk_prw(). So we can just add a flag(BDRV_REQ_WRITE_COMPRESSED)
and use the blk_prw() as a generic one.

Signed-off-by: Pavel Butsykin <address@hidden>
Signed-off-by: Denis V. Lunev <address@hidden>
CC: Jeff Cody <address@hidden>
CC: Markus Armbruster <address@hidden>
CC: Eric Blake <address@hidden>
CC: John Snow <address@hidden>
CC: Stefan Hajnoczi <address@hidden>
CC: Kevin Wolf <address@hidden>

Oh, so you already do use a flag. Nice. :-)

diff --git a/block/block-backend.c b/block/block-backend.c
index 3c1fc50..9e1c793 100644
--- a/block/block-backend.c
+++ b/block/block-backend.c
@@ -785,7 +785,11 @@ int coroutine_fn blk_co_pwritev(BlockBackend *blk, int64_t 
          flags |= BDRV_REQ_FUA;

-    return bdrv_co_pwritev(blk_bs(blk), offset, bytes, qiov, flags);
+    if (flags & BDRV_REQ_WRITE_COMPRESSED) {
+        return bdrv_co_pwritev_compressed(blk_bs(blk), offset, bytes, qiov);
+    } else {
+        return bdrv_co_pwritev(blk_bs(blk), offset, bytes, qiov, flags);
+    }

If you move the processing of the flag inside bdrv_co_pwritev(), where I
think it belongs anyway, you could use the flag from the start (by going
through bdrv_prwv_co()) instead of temporarily introducing your own
coroutine wrapper. I think that would make the initial conversion
patches quite a bit simpler.

You propose to add bdrv_driver_compressed and call it from bdrv_aligned_pwritev ?


reply via email to

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