qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [RFC] QEMU Dbus support - a proposal management API
Date: Tue, 11 Dec 2007 09:48:22 -0600	[thread overview]
Message-ID: <475EB146.9000105@codemonkey.ws> (raw)
In-Reply-To: <475EAF65.5050809@redhat.com>

Richard W.M. Jones wrote:
> Anthony Liguori wrote:
>> Daniel P. Berrange wrote:
>>> Or have 2 monitor interaction modes. One mode uses the command line 
>>> style
>>> suitable for people / scripting languages. The other umode ses a 
>>> binary XDR
>>> protocol for serializing the args & returns values for formal control
>>> APIs to use in a easy manner. It ought to be reasonably 
>>> straightforward to
>>> add a binary serialization format for all existing commands
>>>   
>>
>> I don't think binary is inherently easier to parse than text provided 
>> that some thought is put into the format of the textual output.
>
> XDR (aka RFC 1014 & RFC 4506) does let you generate complex interfaces 
> with relative ease.  For example, here's the description of the remote 
> protocol used by libvirt:
>
> http://git.et.redhat.com/?p=libvirt.git;a=blob;f=qemud/remote_protocol.x;h=d409c74387c2642651896136aba9bc1e2b62b621;hb=HEAD 
>
>
> "Parsing" is done for you by stubs that are generated from the above 
> file.
>
> On the downside it turns out that it's not very well supported under 
> Windows.  For libvirt I had to basically port an XDR implementation by 
> hand to MinGW and add extra functions from glibc to it.
>
>> I think we just want to levels of verbosity.
>
> This would work too.
>
> On the point of controlling multiple qemu instances on a machine from 
> a single place: Easiest way to do this would be to direct all the 
> monitor sockets into a single known directory.  Something along the 
> lines of:
>
>   qemu -monitor unix:/var/lib/qemu-monitors/`uuidgen`,nowait
>
> A control process can then just keep an eye on entries under that 
> directory, and (unlike libvirtd) it's robust against the control 
> process restarting.

Actually, this was the original intention of the -name parameter.  What 
a management tool would want to do is:

1) if -name is specified by user, generate one with uuidgen
2) pass -name <name> and -pidfile /path/to/well/known/location/name.pid

This will ensure uniqueness of name without requiring the creation tool 
to maintain any state (so no daemon is required).  Right now, you would 
also have to store a monitor socket in that well known path.  However, 
I'm working on a VNC tunnels patch right now that would allow the 
monitor to be tunneled through a VNC session.  The idea here is that a 
management tool could just store a hint about the VNC location and then 
you can get at the rest of the character devices through the VNC session.

Otherwise, you end up with a bunch of temporary sockets for things like 
the monitor, serial devices, parallel devices, etc.

Regards,

Anthony Liguori

> Rich.
>

  reply	other threads:[~2007-12-11 15:48 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-10  8:28 [Qemu-devel] [RFC] QEMU Dbus support - a proposal management API Yuval Kashtan
2007-12-10 20:51 ` Blue Swirl
2007-12-11  7:16   ` Yuval Kashtan
2007-12-11  9:10     ` Fabrice Bellard
2007-12-11  9:23       ` Laurent Vivier
2007-12-11 10:06         ` Brad Campbell
2007-12-11 10:07         ` Dor Laor
2007-12-11 14:51           ` Anthony Liguori
2007-12-11 15:00             ` Daniel P. Berrange
2007-12-11 15:21               ` Yuval Kashtan
2007-12-11 15:31                 ` Daniel P. Berrange
2007-12-11 15:36                 ` Anthony Liguori
2007-12-11 15:59                   ` Avi Kivity
2007-12-11 16:18                     ` Paul Brook
2007-12-11 16:40                       ` Avi Kivity
2007-12-11 15:02             ` Daniel P. Berrange
2007-12-11 15:15               ` Anthony Liguori
2007-12-11 15:40                 ` Richard W.M. Jones
2007-12-11 15:48                   ` Anthony Liguori [this message]
2007-12-11 15:58                     ` Daniel P. Berrange
2007-12-11 16:49                       ` Anthony Liguori
2007-12-11 17:04                         ` Daniel P. Berrange
2007-12-11 15:59                     ` Dor Laor
2007-12-11 15:17             ` Jean-Christian de Rivaz
2007-12-11 15:24               ` Daniel P. Berrange
2007-12-11 10:20         ` Andreas Färber
2007-12-11 10:29           ` Laurent Vivier
2007-12-11 10:50             ` Andreas Färber
2007-12-11 10:21         ` Heikki Lindholm
2007-12-11 11:05       ` Avi Kivity
2007-12-11 14:43         ` Anthony Liguori
2007-12-11 14:56         ` Daniel P. Berrange
2007-12-11 15:57           ` Avi Kivity
2007-12-11 16:07             ` Richard W.M. Jones
2007-12-11 15:44     ` Daniel P. Berrange
2007-12-11 16:10       ` Fabrice Bellard
2007-12-11 14:53 ` Daniel P. Berrange

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=475EB146.9000105@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --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).