[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] ad523b: iov: avoid memcpy for "simple" iov_fr
From: |
GitHub |
Subject: |
[Qemu-commits] [qemu/qemu] ad523b: iov: avoid memcpy for "simple" iov_from_buf/iov_to... |
Date: |
Tue, 09 Feb 2016 11:30:05 -0800 |
Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: ad523bca56a7202d2498c550a41be5c986c4d33c
https://github.com/qemu/qemu/commit/ad523bca56a7202d2498c550a41be5c986c4d33c
Author: Paolo Bonzini <address@hidden>
Date: 2016-02-09 (Tue, 09 Feb 2016)
Changed paths:
M include/qemu/iov.h
M util/iov.c
Log Message:
-----------
iov: avoid memcpy for "simple" iov_from_buf/iov_to_buf
memcpy can take a large amount of time for small reads and writes.
For virtio it is a common case that the first iovec can satisfy the
whole read or write. In that case, and if bytes is a constant to
avoid excessive growth of code, inline the first iteration
into the caller.
Signed-off-by: Paolo Bonzini <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Commit: 794f01414f9f4c4d0c6f1961154674961941c197
https://github.com/qemu/qemu/commit/794f01414f9f4c4d0c6f1961154674961941c197
Author: Fam Zheng <address@hidden>
Date: 2016-02-09 (Tue, 09 Feb 2016)
Changed paths:
M blockjob.c
M include/block/blockjob.h
Log Message:
-----------
blockjob: Fix hang in block_job_finish_sync
With a mirror job running on a virtio-blk dataplane disk, sending "q" to
HMP will cause a dead loop in block_job_finish_sync.
This is because the aio_poll() only processes the AIO context of bs
which has no more work to do, while the main loop BH that is scheduled
for setting the job->completed flag is never processed.
Fix this by adding a flag in BlockJob structure, to track which context
to poll for the block job to make progress. Its value is set to true
when block_job_coroutine_complete() is called, and is checked in
block_job_finish_sync to determine which context to poll.
Suggested-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Commit: 9dcf8ecd9e74804aa1687e5688386001a1f3f89f
https://github.com/qemu/qemu/commit/9dcf8ecd9e74804aa1687e5688386001a1f3f89f
Author: Paolo Bonzini <address@hidden>
Date: 2016-02-09 (Tue, 09 Feb 2016)
Changed paths:
M block/io.c
Log Message:
-----------
block: add missing call to bdrv_drain_recurse
This is also needed in bdrv_drain_all, not just in bdrv_drain.
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Commit: f075c89f0a9cb31daf38892371d2822177505706
https://github.com/qemu/qemu/commit/f075c89f0a9cb31daf38892371d2822177505706
Author: Peter Maydell <address@hidden>
Date: 2016-02-09 (Tue, 09 Feb 2016)
Changed paths:
M block/io.c
M blockjob.c
M include/block/blockjob.h
M include/qemu/iov.h
M util/iov.c
Log Message:
-----------
Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into
staging
# gpg: Signature made Tue 09 Feb 2016 15:11:25 GMT using RSA key ID 81AB73C8
# gpg: Good signature from "Stefan Hajnoczi <address@hidden>"
# gpg: aka "Stefan Hajnoczi <address@hidden>"
* remotes/stefanha/tags/block-pull-request:
block: add missing call to bdrv_drain_recurse
blockjob: Fix hang in block_job_finish_sync
iov: avoid memcpy for "simple" iov_from_buf/iov_to_buf
Signed-off-by: Peter Maydell <address@hidden>
Compare: https://github.com/qemu/qemu/compare/84c0781103dc...f075c89f0a9c
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] ad523b: iov: avoid memcpy for "simple" iov_from_buf/iov_to...,
GitHub <=