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 | ||||
|                         " 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); | ||||
|     } | ||||
|  | ||||
| @ -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 */ | ||||
|  | ||||
| @ -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, | ||||
|             } | ||||
|          } | ||||
|       ] | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Christoph Hellwig
						Christoph Hellwig