> Let me try once more to explain our options and why I think this is series is > our best choice. > > Basically, we have try options: > > 1. Add stats to query-balloon > > This breaks existing clients, because query-balloon is a synchronous > command that returns immediately. If we add stats to it (as we did) then it > will have to wait for the guest to respond, which can take a long time or even > doesn't happen at all if the guest is paused.
No, there is no need to wait (see my patch). > This broke libvirt, as explained here: > > https://bugzilla.redhat.com/show_bug.cgi?id=623903 My new patch does not introduce such bug. > 2. Add a new command that just request the stats to be sent (ie. it doesn't > block), and then get the stats through an event > > This was my last proposal: > > http://lists.gnu.org/archive/html/qemu-devel/2012-02/msg00983.html > > This sort of worked, but it has two problems. First, events can be lost. > Second, most failures can't be synchronously reported. > > 3. Add stats through device properties (this series) > > While this isn't perfect, it does solve the issues with previous > implementations. Besides, it has the advantage of avoiding adding new > commands and it integrates nicely with the balloon driver, making some > errors automatically reported (eg. if the balloon is not enabled). We can have both - see my new patch.