On Thu, Jul 26, 2018 at 17:04:19 +0800, Fam Zheng wrote:
On Thu, 07/26 10:44, Kevin Wolf wrote:
> Am 25.07.2018 um 17:57 hat Peter Krempa geschrieben:
> > This series adds support for starting and hotplug of disks with
> > -blockdev/blockdev-add.
> >
> > Blockjobs are not supported and thus the last patch should not be
> > applied yet as some refactoring of the jobs is required.
> >
> > At the beginning of the series there are a few cleanup patches which may
> > be pushed even at this point.
> >
> > The main reason this is in RFC state is that block stats reporting does
> > not work.
> >
> > The following command:
> >
> >
{"execute":"query-blockstats","arguments":{"query-nodes":true}}
>
> query-nodes was added in commit f71eaa74c0b by Fam and Max, CCed. I'm
> not sure what it was needed for at all and the commit message doesn't
> help with that, but I suppose the addition was related to
> wr_highest_offset (see below).
Yes, this was part of RHBZ 1158094. Sorry about the poor commit message.
Well the problem is that when using -blockdev with 'query-nodes' false/not present
you get a
even more useless output:
virsh qemu-monitor-command --pretty upstream
'{"execute":"query-blockstats","arguments":{"query-nodes":false}}'
{
"return": [
],
"id": "libvirt-20"
}
'query-named-block-nodes' don't provide the 'stats' section either:
(other drives snipped)
{
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"virtual-size": 520032256,
"filename":
"/var/lib/libvirt/images/systemrescuecd-x86-4.9.5.iso",
"format": "raw",
"actual-size": 520036352,
"dirty-flag": false
},
"iops_wr": 0,
"ro": true,
"node-name": "libvirt-7-format",
"backing_file_depth": 0,
"drv": "raw",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": false,
"writeback": true
},
"file": "/var/lib/libvirt/images/systemrescuecd-x86-4.9.5.iso",
"encryption_key_missing": false
},
{
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"virtual-size": 520032256,
"filename":
"/var/lib/libvirt/images/systemrescuecd-x86-4.9.5.iso",
"format": "file",
"actual-size": 520036352,
"dirty-flag": false
},
"iops_wr": 0,
"ro": true,
"node-name": "libvirt-7-storage",
"backing_file_depth": 0,
"drv": "file",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": false,
"writeback": true
},
"file": "/var/lib/libvirt/images/systemrescuecd-x86-4.9.5.iso",
"encryption_key_missing": false
}
],
"id": "libvirt-19"
}
Thus libvirt can't provide the stats it used to with -drive. Since we
need to special-case the code for gathering stats for -blockdev it
should not be a problem if e.g. query-named-block-nodes reported the
stats section along. (perhaps with a boolean flag to do so which also
could disable the nesting)
In either case we need the stats in the same extent as we had before
with -drive and query-blockstats.