block: include flush requests in info blockstats
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
f785a5ae36
commit
e8045d6726
18
block.c
18
block.c
@ -1915,11 +1915,13 @@ static void bdrv_stats_iter(QObject *data, void *opaque)
|
|||||||
" wr_bytes=%" PRId64
|
" wr_bytes=%" PRId64
|
||||||
" rd_operations=%" PRId64
|
" rd_operations=%" PRId64
|
||||||
" wr_operations=%" PRId64
|
" wr_operations=%" PRId64
|
||||||
|
" flush_operations=%" PRId64
|
||||||
"\n",
|
"\n",
|
||||||
qdict_get_int(qdict, "rd_bytes"),
|
qdict_get_int(qdict, "rd_bytes"),
|
||||||
qdict_get_int(qdict, "wr_bytes"),
|
qdict_get_int(qdict, "wr_bytes"),
|
||||||
qdict_get_int(qdict, "rd_operations"),
|
qdict_get_int(qdict, "rd_operations"),
|
||||||
qdict_get_int(qdict, "wr_operations"));
|
qdict_get_int(qdict, "wr_operations"),
|
||||||
|
qdict_get_int(qdict, "flush_operations"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void bdrv_stats_print(Monitor *mon, const QObject *data)
|
void bdrv_stats_print(Monitor *mon, const QObject *data)
|
||||||
@ -1937,12 +1939,16 @@ static QObject* bdrv_info_stats_bs(BlockDriverState *bs)
|
|||||||
"'wr_bytes': %" PRId64 ","
|
"'wr_bytes': %" PRId64 ","
|
||||||
"'rd_operations': %" PRId64 ","
|
"'rd_operations': %" PRId64 ","
|
||||||
"'wr_operations': %" PRId64 ","
|
"'wr_operations': %" PRId64 ","
|
||||||
"'wr_highest_offset': %" PRId64
|
"'wr_highest_offset': %" PRId64 ","
|
||||||
|
"'flush_operations': %" PRId64
|
||||||
"} }",
|
"} }",
|
||||||
bs->rd_bytes, bs->wr_bytes,
|
bs->rd_bytes,
|
||||||
bs->rd_ops, bs->wr_ops,
|
bs->wr_bytes,
|
||||||
|
bs->rd_ops,
|
||||||
|
bs->wr_ops,
|
||||||
bs->wr_highest_sector *
|
bs->wr_highest_sector *
|
||||||
(uint64_t)BDRV_SECTOR_SIZE);
|
(uint64_t)BDRV_SECTOR_SIZE,
|
||||||
|
bs->flush_ops);
|
||||||
dict = qobject_to_qdict(res);
|
dict = qobject_to_qdict(res);
|
||||||
|
|
||||||
if (*bs->device_name) {
|
if (*bs->device_name) {
|
||||||
@ -2606,6 +2612,8 @@ BlockDriverAIOCB *bdrv_aio_flush(BlockDriverState *bs,
|
|||||||
|
|
||||||
trace_bdrv_aio_flush(bs, opaque);
|
trace_bdrv_aio_flush(bs, opaque);
|
||||||
|
|
||||||
|
bs->flush_ops++;
|
||||||
|
|
||||||
if (bs->open_flags & BDRV_O_NO_FLUSH) {
|
if (bs->open_flags & BDRV_O_NO_FLUSH) {
|
||||||
return bdrv_aio_noop_em(bs, cb, opaque);
|
return bdrv_aio_noop_em(bs, cb, opaque);
|
||||||
}
|
}
|
||||||
|
@ -188,6 +188,7 @@ struct BlockDriverState {
|
|||||||
uint64_t wr_bytes;
|
uint64_t wr_bytes;
|
||||||
uint64_t rd_ops;
|
uint64_t rd_ops;
|
||||||
uint64_t wr_ops;
|
uint64_t wr_ops;
|
||||||
|
uint64_t flush_ops;
|
||||||
uint64_t wr_highest_sector;
|
uint64_t wr_highest_sector;
|
||||||
|
|
||||||
/* Whether the disk can expand beyond total_sectors */
|
/* Whether the disk can expand beyond total_sectors */
|
||||||
|
@ -1201,6 +1201,7 @@ Each json-object contain the following:
|
|||||||
- "wr_bytes": bytes written (json-int)
|
- "wr_bytes": bytes written (json-int)
|
||||||
- "rd_operations": read operations (json-int)
|
- "rd_operations": read operations (json-int)
|
||||||
- "wr_operations": write operations (json-int)
|
- "wr_operations": write operations (json-int)
|
||||||
|
- "flush_operations": cache flush operations (json-int)
|
||||||
- "wr_highest_offset": Highest offset of a sector written since the
|
- "wr_highest_offset": Highest offset of a sector written since the
|
||||||
BlockDriverState has been opened (json-int)
|
BlockDriverState has been opened (json-int)
|
||||||
- "parent": Contains recursively the statistics of the underlying
|
- "parent": Contains recursively the statistics of the underlying
|
||||||
@ -1222,6 +1223,7 @@ Example:
|
|||||||
"wr_operations":751,
|
"wr_operations":751,
|
||||||
"rd_bytes":122567168,
|
"rd_bytes":122567168,
|
||||||
"rd_operations":36772
|
"rd_operations":36772
|
||||||
|
"flush_operations":61,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"stats":{
|
"stats":{
|
||||||
@ -1230,6 +1232,7 @@ Example:
|
|||||||
"wr_operations":692,
|
"wr_operations":692,
|
||||||
"rd_bytes":122739200,
|
"rd_bytes":122739200,
|
||||||
"rd_operations":36604
|
"rd_operations":36604
|
||||||
|
"flush_operations":51,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1240,6 +1243,7 @@ Example:
|
|||||||
"wr_operations":0,
|
"wr_operations":0,
|
||||||
"rd_bytes":0,
|
"rd_bytes":0,
|
||||||
"rd_operations":0
|
"rd_operations":0
|
||||||
|
"flush_operations":0,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1250,6 +1254,7 @@ Example:
|
|||||||
"wr_operations":0,
|
"wr_operations":0,
|
||||||
"rd_bytes":0,
|
"rd_bytes":0,
|
||||||
"rd_operations":0
|
"rd_operations":0
|
||||||
|
"flush_operations":0,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1260,6 +1265,7 @@ Example:
|
|||||||
"wr_operations":0,
|
"wr_operations":0,
|
||||||
"rd_bytes":0,
|
"rd_bytes":0,
|
||||||
"rd_operations":0
|
"rd_operations":0
|
||||||
|
"flush_operations":0,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user