From: Kevin Wolf <kwolf@redhat.com>
To: anthony@codemonkey.ws
Cc: kwolf@redhat.com, qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH 10/30] block: include flush requests in info blockstats
Date: Mon, 29 Aug 2011 16:53:18 +0200 [thread overview]
Message-ID: <1314629618-8308-11-git-send-email-kwolf@redhat.com> (raw)
In-Reply-To: <1314629618-8308-1-git-send-email-kwolf@redhat.com>
From: Christoph Hellwig <hch@lst.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
block.c | 18 +++++++++++++-----
block_int.h | 1 +
qmp-commands.hx | 6 ++++++
3 files changed, 20 insertions(+), 5 deletions(-)
diff --git a/block.c b/block.c
index 4186a2f..0f256f5 100644
--- a/block.c
+++ b/block.c
@@ -1915,11 +1915,13 @@ static void bdrv_stats_iter(QObject *data, void *opaque)
" wr_bytes=%" PRId64
" rd_operations=%" PRId64
" wr_operations=%" PRId64
+ " flush_operations=%" PRId64
"\n",
qdict_get_int(qdict, "rd_bytes"),
qdict_get_int(qdict, "wr_bytes"),
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)
@@ -1937,12 +1939,16 @@ static QObject* bdrv_info_stats_bs(BlockDriverState *bs)
"'wr_bytes': %" PRId64 ","
"'rd_operations': %" PRId64 ","
"'wr_operations': %" PRId64 ","
- "'wr_highest_offset': %" PRId64
+ "'wr_highest_offset': %" PRId64 ","
+ "'flush_operations': %" PRId64
"} }",
- bs->rd_bytes, bs->wr_bytes,
- bs->rd_ops, bs->wr_ops,
+ bs->rd_bytes,
+ bs->wr_bytes,
+ bs->rd_ops,
+ bs->wr_ops,
bs->wr_highest_sector *
- (uint64_t)BDRV_SECTOR_SIZE);
+ (uint64_t)BDRV_SECTOR_SIZE,
+ bs->flush_ops);
dict = qobject_to_qdict(res);
if (*bs->device_name) {
@@ -2606,6 +2612,8 @@ BlockDriverAIOCB *bdrv_aio_flush(BlockDriverState *bs,
trace_bdrv_aio_flush(bs, opaque);
+ bs->flush_ops++;
+
if (bs->open_flags & BDRV_O_NO_FLUSH) {
return bdrv_aio_noop_em(bs, cb, opaque);
}
diff --git a/block_int.h b/block_int.h
index f6d02b3..f1480d6 100644
--- a/block_int.h
+++ b/block_int.h
@@ -188,6 +188,7 @@ struct BlockDriverState {
uint64_t wr_bytes;
uint64_t rd_ops;
uint64_t wr_ops;
+ uint64_t flush_ops;
uint64_t wr_highest_sector;
/* Whether the disk can expand beyond total_sectors */
diff --git a/qmp-commands.hx b/qmp-commands.hx
index 03f67da..8570b33 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -1201,6 +1201,7 @@ Each json-object contain the following:
- "wr_bytes": bytes written (json-int)
- "rd_operations": read 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
BlockDriverState has been opened (json-int)
- "parent": Contains recursively the statistics of the underlying
@@ -1222,6 +1223,7 @@ Example:
"wr_operations":751,
"rd_bytes":122567168,
"rd_operations":36772
+ "flush_operations":61,
}
},
"stats":{
@@ -1230,6 +1232,7 @@ Example:
"wr_operations":692,
"rd_bytes":122739200,
"rd_operations":36604
+ "flush_operations":51,
}
},
{
@@ -1240,6 +1243,7 @@ Example:
"wr_operations":0,
"rd_bytes":0,
"rd_operations":0
+ "flush_operations":0,
}
},
{
@@ -1250,6 +1254,7 @@ Example:
"wr_operations":0,
"rd_bytes":0,
"rd_operations":0
+ "flush_operations":0,
}
},
{
@@ -1260,6 +1265,7 @@ Example:
"wr_operations":0,
"rd_bytes":0,
"rd_operations":0
+ "flush_operations":0,
}
}
]
--
1.7.6
next prev parent reply other threads:[~2011-08-29 14:51 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-29 14:53 [Qemu-devel] [PULL 00/30] Block patches Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 01/30] coroutine: Add CoRwlock support Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 02/30] block: parse cache mode flags in a single place Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 03/30] block: add cache=directsync parameter to -drive Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 04/30] qcow2: Fix DEBUG_* compilation Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 05/30] qemu-img: Use qemu_blockalign Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 06/30] qcow2: fix typo in documentation for qcow2_get_cluster_offset() Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 07/30] qcow: initialize coroutine mutex Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 08/30] qemu-img: print error codes when convert fails Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 09/30] block/curl: Handle failed reads gracefully Kevin Wolf
2011-08-29 14:53 ` Kevin Wolf [this message]
2011-08-29 14:53 ` [Qemu-devel] [PATCH 11/30] posix-aio-compat: fix latency issues Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 12/30] qcow/qcow2: Allocate QCowAIOCB structure using stack Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 13/30] qcow: QCowAIOCB field cleanup Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 14/30] qcow: move some blocks of code to avoid useless variable initialization Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 15/30] qcow: Remove QCowAIOCB Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 16/30] qcow: remove old #undefined code Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 17/30] qcow2: Removed unused AIOCB fields Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 18/30] qcow2: removed cur_nr_sectors field in QCowAIOCB Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 19/30] qcow2: remove l2meta from QCowAIOCB Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 20/30] qcow2: remove cluster_offset " Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 21/30] qcow2: remove common " Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 22/30] qcow2: reindent and use while before the big jump Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 23/30] qcow2: Removed QCowAIOCB entirely Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 24/30] qcow2: remove memory leak Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 25/30] sheepdog: use coroutines Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 26/30] qcow2: use always stderr for debugging Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 27/30] qcow2: remove unused qcow2_create_refcount_update function Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 28/30] block: explicit I/O accounting Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 29/30] block: latency accounting Kevin Wolf
2011-08-29 14:53 ` [Qemu-devel] [PATCH 30/30] qemu-img: Require larger zero areas for sparse handling Kevin Wolf
2011-08-29 19:15 ` [Qemu-devel] [PULL 00/30] Block patches Anthony Liguori
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1314629618-8308-11-git-send-email-kwolf@redhat.com \
--to=kwolf@redhat.com \
--cc=anthony@codemonkey.ws \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).