[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 01/44] block: Add more types for tracked request
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PULL 01/44] block: Add more types for tracked request |
Date: |
Tue, 10 Nov 2015 14:13:56 +0000 |
From: Fam Zheng <address@hidden>
We'll track more request types besides read and write, change the
boolean field to an enum.
Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
block/io.c | 9 +++++----
include/block/block_int.h | 10 +++++++++-
2 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/block/io.c b/block/io.c
index 8dcad3b..793809a 100644
--- a/block/io.c
+++ b/block/io.c
@@ -348,13 +348,14 @@ static void tracked_request_end(BdrvTrackedRequest *req)
static void tracked_request_begin(BdrvTrackedRequest *req,
BlockDriverState *bs,
int64_t offset,
- unsigned int bytes, bool is_write)
+ unsigned int bytes,
+ enum BdrvTrackedRequestType type)
{
*req = (BdrvTrackedRequest){
.bs = bs,
.offset = offset,
.bytes = bytes,
- .is_write = is_write,
+ .type = type,
.co = qemu_coroutine_self(),
.serialising = false,
.overlap_offset = offset,
@@ -971,7 +972,7 @@ static int coroutine_fn bdrv_co_do_preadv(BlockDriverState
*bs,
bytes = ROUND_UP(bytes, align);
}
- tracked_request_begin(&req, bs, offset, bytes, false);
+ tracked_request_begin(&req, bs, offset, bytes, BDRV_TRACKED_READ);
ret = bdrv_aligned_preadv(bs, &req, offset, bytes, align,
use_local_qiov ? &local_qiov : qiov,
flags);
@@ -1292,7 +1293,7 @@ static int coroutine_fn
bdrv_co_do_pwritev(BlockDriverState *bs,
* Pad qiov with the read parts and be sure to have a tracked request not
* only for bdrv_aligned_pwritev, but also for the reads of the RMW cycle.
*/
- tracked_request_begin(&req, bs, offset, bytes, true);
+ tracked_request_begin(&req, bs, offset, bytes, BDRV_TRACKED_WRITE);
if (!qiov) {
ret = bdrv_co_do_zero_pwritev(bs, offset, bytes, flags, &req);
diff --git a/include/block/block_int.h b/include/block/block_int.h
index 3ceeb5a..7db9900 100644
--- a/include/block/block_int.h
+++ b/include/block/block_int.h
@@ -60,11 +60,19 @@
#define BLOCK_PROBE_BUF_SIZE 512
+enum BdrvTrackedRequestType {
+ BDRV_TRACKED_READ,
+ BDRV_TRACKED_WRITE,
+ BDRV_TRACKED_FLUSH,
+ BDRV_TRACKED_IOCTL,
+ BDRV_TRACKED_DISCARD,
+};
+
typedef struct BdrvTrackedRequest {
BlockDriverState *bs;
int64_t offset;
unsigned int bytes;
- bool is_write;
+ enum BdrvTrackedRequestType type;
bool serialising;
int64_t overlap_offset;
--
2.5.0
- [Qemu-devel] [PULL 00/44] Block patches, Stefan Hajnoczi, 2015/11/10
- [Qemu-devel] [PULL 01/44] block: Add more types for tracked request,
Stefan Hajnoczi <=
- [Qemu-devel] [PULL 04/44] iscsi: Emulate commands in iscsi_aio_ioctl as iscsi_ioctl, Stefan Hajnoczi, 2015/11/10
- [Qemu-devel] [PULL 02/44] block: Track flush requests, Stefan Hajnoczi, 2015/11/10
- [Qemu-devel] [PULL 03/44] block: Track discard requests, Stefan Hajnoczi, 2015/11/10
- [Qemu-devel] [PULL 05/44] block: Add ioctl parameter fields to BlockRequest, Stefan Hajnoczi, 2015/11/10
- [Qemu-devel] [PULL 06/44] block: Emulate bdrv_ioctl with bdrv_aio_ioctl and track both, Stefan Hajnoczi, 2015/11/10
- [Qemu-devel] [PULL 09/44] qed: Implement .bdrv_drain, Stefan Hajnoczi, 2015/11/10
- [Qemu-devel] [PULL 07/44] block: Drop BlockDriver.bdrv_ioctl, Stefan Hajnoczi, 2015/11/10
- [Qemu-devel] [PULL 08/44] block: Introduce BlockDriver.bdrv_drain callback, Stefan Hajnoczi, 2015/11/10
- [Qemu-devel] [PULL 10/44] qapi: Add transaction support to block-dirty-bitmap operations, Stefan Hajnoczi, 2015/11/10
- [Qemu-devel] [PULL 11/44] iotests: add transactional incremental backup test, Stefan Hajnoczi, 2015/11/10