Commit e8045d67 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Kevin Wolf
Browse files

block: include flush requests in info blockstats



Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
parent f785a5ae
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -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);
    }
+1 −0
Original line number Diff line number Diff line
@@ -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 */
+6 −0
Original line number Diff line number Diff line
@@ -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,
            }
         }
      ]