qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Luiz Capitulino <lcapitulino@redhat.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: qemu list <qemu-devel@nongnu.org>,
	Markus Armbruster <armbru@redhat.com>,
	agl@us.ibm.com, Amit Shah <amit.shah@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] Re: [PATCH v3 2/3] qerror: Add a new MACHINE_STOPPED error message
Date: Fri, 27 Aug 2010 16:24:13 -0300	[thread overview]
Message-ID: <20100827162413.0235bcd0@doriath> (raw)
In-Reply-To: <4C780BD5.4030700@codemonkey.ws>

On Fri, 27 Aug 2010 14:02:45 -0500
Anthony Liguori <anthony@codemonkey.ws> wrote:

> On 08/27/2010 11:08 AM, Luiz Capitulino wrote:
> >> 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.
> >>      
> > Are you talking about the testing namespace idea? It doesn't have anything
> > to do with balloon or how our interfaces are built. It would be just a way
> > to play with commands that has been converted to QMP but are not available
> > because they're not stable yet (eg. Jan's device_show).
> >    
> 
> My point is that we shouldn't build any QMP APIs and we definitely 
> shouldn't try to QMP-ize monitor commands.
> 
> Instead, we should design logical C APIs that we could consume within 
> QEMU that we think we can support long term and then expose those over QMP.

Comments on the Python comment below.

> Having a sandbox doesn't really solve the fundamental problem of making 
> sure the interface is consumable.

It doesn't and it shouldn't. It's just a way to test commands that might
not be stable yet. A very minor feature, anyway.

> >> 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.
> >>      
> > Main question is: can we drop the stats the way they are today to do the
> > Right Thing for 0.14 or not?
> >    
> 
> I don't see how 0.13.0 is going to get releases with anything but the 
> current behavior.  It's unfortunate but we're too delayed and can't 
> afford a change like this this late in the game.
> 
> In terms of the stable branch, the least disruptive thing would be a 
> timeout.

Okay.

> > I think we have agreed on the internal interfaces approach. My only
> > concern is whether this will conflict when extending the wire protocol
> > (eg. adding new arguments to existing commands). Not a problem if the
> > C API is not stable, of course.
> >    
> 
> We don't do that.  It's a recipe for disaster.  QEMU isn't written in 
> Python and if we try to module our interfaces are if we were a Python 
> library, we're destined to fail.

You mean we don't do simple protocol extensions?

So, if we need an new argument to an existing command, we add a new
command instead? Just because QEMU is not written in Python?

> >> 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);
> >>      
> > Shouldn't the API provide a general cancel method? All functions that
> > talk to the guest will need one.
> >    
> 
> See next proposal.  There's no cancel but I'd argue it's not needed.  
> You don't care if the request succeeds or fails so there's no point in 
> cancelling it.  Cancellation only works best when a request has a 
> discrete life cycle but in the case of requesting a guest to update 
> stats, there is not really a well define dstart and end.
> 
> Regards,
> 
> Anthony Liguori
> 
> >> 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.
> >>>>>
> >>>>>            
> >>>>
> >>>>          
> >>>
> >>>        
> >>      
> >    
> 

  reply	other threads:[~2010-08-27 19:24 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-27  5:27 [Qemu-devel] [PATCH v3 0/3] virtio-balloon: Don't wait indefinitely for guest response Amit Shah
2010-08-27  5:27 ` [Qemu-devel] [PATCH v3 1/3] balloon: Don't try fetching info if guest is unresponsive Amit Shah
2010-08-27  5:27 ` [Qemu-devel] [PATCH v3 2/3] qerror: Add a new MACHINE_STOPPED error message Amit Shah
2010-08-27  9:29   ` [Qemu-devel] " Daniel P. Berrange
2010-08-27 12:39     ` Anthony Liguori
2010-08-27 12:58       ` Daniel P. Berrange
2010-08-27 13:59         ` Markus Armbruster
2010-08-27 14:15           ` Luiz Capitulino
2010-08-27 14:59             ` Anthony Liguori
2010-08-27 15:33               ` Daniel P. Berrange
2010-08-27 15:45                 ` Anthony Liguori
2010-08-27 16:08               ` Luiz Capitulino
2010-08-27 19:02                 ` Anthony Liguori
2010-08-27 19:24                   ` Luiz Capitulino [this message]
2010-08-27 19:37                     ` Anthony Liguori
2010-08-27 20:58                       ` Luiz Capitulino
2010-08-30 14:52                       ` Should QMP be RPC to internal C interfaces? (was: [Qemu-devel] Re: [PATCH v3 2/3] qerror: Add a new MACHINE_STOPPED error message) Markus Armbruster
2010-08-30 15:28                         ` [Qemu-devel] Re: Should QMP be RPC to internal C interfaces? Anthony Liguori
2010-08-30 15:38                           ` Anthony Liguori
2010-08-30 16:16                             ` Luiz Capitulino
2010-08-30 16:26                               ` Anthony Liguori
2010-08-31 12:48                                 ` Markus Armbruster
2010-08-31 12:58                                   ` Luiz Capitulino
2010-08-31 13:05                                     ` Anthony Liguori
2010-08-31  8:47                           ` Markus Armbruster
2010-08-31 13:03                             ` Anthony Liguori
2010-08-28  0:52       ` [Qemu-devel] Re: [PATCH v3 2/3] qerror: Add a new MACHINE_STOPPED error message Amit Shah
2010-08-30  8:30         ` Markus Armbruster
2010-08-30 13:06           ` Anthony Liguori
2010-08-30 15:01             ` Markus Armbruster
2010-08-30 19:17               ` [Qemu-devel] [PATCH] Disable virtio-balloon memory stats interface Adam Litke
2010-08-31  3:42                 ` [Qemu-devel] " Amit Shah
2010-09-08 10:57                   ` Amit Shah
2010-08-27  5:27 ` [Qemu-devel] [PATCH v3 3/3] balloon: Don't try fetching info if machine is stopped Amit Shah

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100827162413.0235bcd0@doriath \
    --to=lcapitulino@redhat.com \
    --cc=agl@us.ibm.com \
    --cc=amit.shah@redhat.com \
    --cc=anthony@codemonkey.ws \
    --cc=armbru@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).