From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:56572) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QwTNz-0000jU-Q4 for qemu-devel@nongnu.org; Thu, 25 Aug 2011 02:25:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QwTNy-0000mf-DH for qemu-devel@nongnu.org; Thu, 25 Aug 2011 02:25:55 -0400 Received: from verein.lst.de ([213.95.11.211]:38700 helo=newverein.lst.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QwTNx-0000mV-VS for qemu-devel@nongnu.org; Thu, 25 Aug 2011 02:25:54 -0400 Date: Thu, 25 Aug 2011 08:25:53 +0200 From: Christoph Hellwig Message-ID: <20110825062553.GA30639@lst.de> References: <20110821222547.GA22046@lst.de> <20110825062544.GA30579@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110825062544.GA30579@lst.de> Subject: [Qemu-devel] [PATCH 1/3] block: include flush requests in info blockstats List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Signed-off-by: Christoph Hellwig Index: qemu/block.c =================================================================== --- qemu.orig/block.c 2011-08-11 12:32:35.842658196 +0200 +++ qemu/block.c 2011-08-11 16:04:48.302061893 +0200 @@ -1888,11 +1888,13 @@ static void bdrv_stats_iter(QObject *dat " 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) @@ -1910,12 +1912,16 @@ static QObject* bdrv_info_stats_bs(Block "'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) { @@ -2579,6 +2585,8 @@ BlockDriverAIOCB *bdrv_aio_flush(BlockDr 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); } Index: qemu/block_int.h =================================================================== --- qemu.orig/block_int.h 2011-08-11 12:32:35.852658142 +0200 +++ qemu/block_int.h 2011-08-11 16:04:48.302061893 +0200 @@ -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 */ Index: qemu/qmp-commands.hx =================================================================== --- qemu.orig/qmp-commands.hx 2011-08-11 12:32:36.062657004 +0200 +++ qemu/qmp-commands.hx 2011-08-11 16:04:48.305395208 +0200 @@ -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, } } ]