On 08/27/2010 09:15 AM, Luiz Capitulino wrote:
I wondered if we could drop it for now to make it right in 0.14, but I
believe it's already part of the user monitor for some time and libvirt
uses the stats, right?
I think we need testing/unstable namespace in QMP, where commands can be
tested for while so that we reduce the risk of nasty surprises like this one.
It's trying to plug a sieve with a band-aid. It's certainly an
"improvement" but it's of question utility looking at the bigger picture.
Balloon is a perfect example of where what we really need to do is build
interface interfaces that make sense, and then expose them in QMP.
What's a reasonable C-level API to query statistics that potentially may
never return? Building in a timeout is something of a crappy API
because it puts policy deep in the API that is trivial to implement
elsewhere. What you'd probably do is something like:
BalloonStatsRequest *query_guest_balloon_stats(CompletionCallback *cb,
void *opaque);
int cancel_guest_balloon_stats(BalloonStatsRequest *req);
void release_guest_balloon_stats(BalloonStatsRequest *req);
Regards,
Anthony Liguori
Beyond fixing that regression, I agree that this command is terminally
flawed& we need to deprecate it& provide better specified new
replacement(s). This seems like 0.14 work to me though.
Yup.
Regards,
Daniel
[1] I know that they could already suffer if there was a bug in qemu
that prevented it responding, even if the guest was not being
malicious/crashed.