Am 28.01.2019 um 17:12 hat Daniel P. Berrangé geschrieben:
> On Mon, Jan 28, 2019 at 04:37:50PM +0100, Kevin Wolf wrote:
> > Am 28.01.2019 um 16:15 hat Anton Kuchin geschrieben:
> > > This option is broken since a6baa60807 in v2.9 and returns mostly
> > > zeroes instead of real stats because actual querring of BlockStats
> > > that resides in blk is missing.
> > > 
> > > And it makes no sense because with this option BlockDriverState-s
> > > are iterated but BlockAcctStats belong to BlockBackend and not BDS
> > > since 7f0e9da6f13 in v2.5
> > > 
> > > Signed-off-by: Anton Kuchin <antonkuc...@yandex-team.ru>
> > 
> > Isn't query-nodes the only way to get wr_highest_offset for the protocol
> > layer? oVirt depends on this, as far as I know.
> 
> Libvirt just invokes 'query-blockstats' with no arguments, so is not
> relying on 'query-nodes' working. Given that libvirt doesn't use it,
> it doesn't seem like this is relevant for oVirt unless they were
> using QMP passthrough from libvirt. That this has been broken
> since v2.9 though rather suggests oVirt doesn't use it.

It's not broken at all. The type of the return value is just a bit messy
because we mix statistics from the device with statistics from the
nodes. query-nodes=true can't return device statistics, but the
respective fields aren't optional in the schema either, so it just puts
0 there. This is ugly, but if you know which information you can use, it
works fine, so cleaning it up was never considered to have a good
justification for breaking compatibility.

In any case, wr_highest_offset is part of the node statistics and it
contains the correct value for each node.

Kevin

Reply via email to