diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2017-01-09 13:54:31 +0000 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2017-01-09 13:54:31 +0000 |
| commit | dba5c337c83290d9559c171052c0a0de69fbab2f (patch) | |
| tree | 67ae4fd0f45b3f111a7d5dcff7fdf61326affe46 /qemu-img.c | |
| parent | 8305f9bdf7ca41ee5cabe018fb37b73472c1162d (diff) | |
| parent | c1bb86cd8ae67c14f79422b6e544d1e2bf40eeb2 (diff) | |
| download | focaccia-qemu-dba5c337c83290d9559c171052c0a0de69fbab2f.tar.gz focaccia-qemu-dba5c337c83290d9559c171052c0a0de69fbab2f.zip | |
Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging
Block layer patches
# gpg: Signature made Mon 09 Jan 2017 13:43:44 GMT
# gpg: using RSA key 0x7F09B272C88F2FD6
# gpg: Good signature from "Kevin Wolf <kwolf@redhat.com>"
# Primary key fingerprint: DC3D EB15 9A9A F95D 3D74 56FE 7F09 B272 C88F 2FD6
* remotes/kevin/tags/for-upstream:
block: Rename raw-{posix,win32} to file-*.c
block: Rename raw_bsd to raw-format.c
blkverify: Implement bdrv_co_preadv/pwritev/flush
blkdebug: Implement bdrv_co_preadv/pwritev/flush
quorum: Clean up quorum_aio_get()
quorum: Inline quorum_fifo_aio_cb()
quorum: Implement .bdrv_co_preadv/pwritev()
quorum: Avoid bdrv_aio_writev() for rewrites
quorum: Inline quorum_aio_cb()
quorum: Do cleanup in caller coroutine
quorum: Implement .bdrv_co_readv/writev
quorum: Remove s from quorum_aio_get() arguments
coroutine: Introduce qemu_coroutine_enter_if_inactive()
qemu-img: fix in-flight count for qemu-img bench
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'qemu-img.c')
| -rw-r--r-- | qemu-img.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/qemu-img.c b/qemu-img.c index 6949b73ca5..5df66fe661 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -3559,20 +3559,23 @@ static void bench_cb(void *opaque, int ret) } while (b->n > b->in_flight && b->in_flight < b->nrreq) { + int64_t offset = b->offset; + /* blk_aio_* might look for completed I/Os and kick bench_cb + * again, so make sure this operation is counted by in_flight + * and b->offset is ready for the next submission. + */ + b->in_flight++; + b->offset += b->step; + b->offset %= b->image_size; if (b->write) { - acb = blk_aio_pwritev(b->blk, b->offset, b->qiov, 0, - bench_cb, b); + acb = blk_aio_pwritev(b->blk, offset, b->qiov, 0, bench_cb, b); } else { - acb = blk_aio_preadv(b->blk, b->offset, b->qiov, 0, - bench_cb, b); + acb = blk_aio_preadv(b->blk, offset, b->qiov, 0, bench_cb, b); } if (!acb) { error_report("Failed to issue request"); exit(EXIT_FAILURE); } - b->in_flight++; - b->offset += b->step; - b->offset %= b->image_size; } } |