From: Dor Laor <dor.laor@gmail.com>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [RFC] QEMU Dbus support - a proposal management API
Date: Tue, 11 Dec 2007 17:59:36 +0200 [thread overview]
Message-ID: <475EB3E8.4040708@qumranet.com> (raw)
In-Reply-To: <475EB146.9000105@codemonkey.ws>
[-- Attachment #1: Type: text/plain, Size: 3339 bytes --]
Anthony Liguori wrote:
>
> 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.
>
While this is good for home usage, it does not match product needs because
you don't always want to allow the user of the VM to control it. For
example,
the user might hack memory values from the monitor and comprise his
permission
within the guest.
>
> Otherwise, you end up with a bunch of temporary sockets for things like
> the monitor, serial devices, parallel devices, etc.
>
Actually this is what we do in Qumranet to run multiple VMs.
We just need to improve/replace the monitor. Maybe enhancing the current
implementation
as you suggested might be good enough, although library interface might
be cleaner (no ugly return code
for the user).
Thanks,
Dor.
> Regards,
>
> Anthony Liguori
>
> > Rich.
> >
>
>
>
[-- Attachment #2: Type: text/html, Size: 4760 bytes --]
next prev parent reply other threads:[~2007-12-11 15:59 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
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 [this message]
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=475EB3E8.4040708@qumranet.com \
--to=dor.laor@gmail.com \
--cc=dor.laor@qumranet.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).