From: Chris Lalancette <clalance@redhat.com>
To: Jamie Lokier <jamie@shareable.org>
Cc: Libvirt <libvir-list@redhat.com>,
Jiri Denemark <jdenemar@redhat.com>, Avi Kivity <avi@redhat.com>,
qemu-devel@nongnu.org
Subject: Re: [libvirt] [Qemu-devel] Re: Libvirt debug API
Date: Mon, 26 Apr 2010 10:25:46 -0400 [thread overview]
Message-ID: <4BD5A26A.90003@redhat.com> (raw)
In-Reply-To: <20100426125424.GC16976@shareable.org>
On 04/26/2010 08:54 AM, Jamie Lokier wrote:
> All the features? The qemu API is quite large already (look at all
> the command line options and monitor commands). I'll be very
> surprised if libvirt provides all of it that obscure apps may use.
>
> I'm thinking of features which are relatively obscure but nonetheless
> useful to a small number of deployments. Probably not enough to
> justify the effort building data models, specifying the XML and remote
> protocol and so on in libvirt.
>
> (Unless that becomes so easily mapped to qemu's API that it's almost an
> automatic thing... Which sounds like QMP, doesn't it?)
>
> Is libvirt ever likely to go to the effort of providing all the
> easily-usable API, or hooks, for:
>
> - sending keys to a guest, driven by a timed host script?
>
> - rebooting the guest while switching between USB touchpad and
> mouse devices, because one of them is needed during an OS
> install and the other is needed after?
>
> - changing the amount of RAM available to the guest at the next
> reboot, for OS install needing more memory than run time, in a
> scripted fashion when building new VMs from install disk images?
>
> - switching the guest between qemu mode and kvm mode on the next
> guest reset, because qemu is faster for some things (VGA
> updates) and kvm is faster for other things, so the best choice
> depends on which app you need to run on that guest
>
> - pausing a VM, making a copy, and resuming it, so as to fork it
> into two VMs (literally fork)?
>
> - setting up the host network container and NAT IP forwarding, on
> demand as guests are stopped and started, so that it works in
> the above scenario despite clashing IP addresses?
>
> - running a copy of the same guest, or perhaps an entire OS
> install process (scripted), many times for different qemu and
> qemu-kvm versions, different BIOSes, and different
> almost-equivalent hardware emulations (i.e. different NIC types,
> SMP count, CPU features, disk controller type, AIO/cache type) -
> for testing guests and apps on them - with some paralellism?
>
> None of those, except perhaps the first, as what I think of as typical
> virtualisation workloads, and they all seem obscure things probably
> outside libvirt's remit. Probably not many users either :-)
>
> Yet you can do them all today with qemu and scripting the monitor, and
> it's getting easier with QMP.
In point of fact, you can also do some of them today more-or-less with libvirt
and some scripting. However, you are right, there are probably obscure features
that libvirt will *never* be able to entirely implement, either because they
don't fit into libvirt's world-view or because they are too obscure or difficult
to do.
However, Dan's point stands; for most features that most users want to use,
it is far better to spend effort creating a cross-hypervisor, long-term API than
to spend too much effort on individual hypervisor hacks.
<snip>
> I'm just raising my hand as a potential user who might like to monitor
> a bunch of active and inactive guests, remotely, see how much memory
> they report using, etc. launch VNC viewer from the GUI, even choose
> the target host based on load and migrate on demand, while also
> needing a fair bit of non-standardness and qemu-level scripting too.
>
> Imho, that probably comes under the heading of apps using pass-through
> or multiple QMP monitors, which use features that probably won't and
> probably shouldn't ever be handled by libvirt itself.
Right, and you are probably one of the users this work targets. But in
general, for those not very familiar with virtualization/qemu, we want
to steer them far clear of this API. That goes doubly true for application
developers; we want them to be able to use a stable, long-term API and
not have to worry about the nitty-gritty details of the monitor. It's that
latter group that we want to make sure doesn't use this API.
--
Chris Lalancette
next prev parent reply other threads:[~2010-04-26 14:27 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-09 13:41 [Qemu-devel] Libvirt debug API Chris Lalancette
2010-04-09 14:27 ` [Qemu-devel] Re: [libvirt] " Daniel P. Berrange
2010-04-09 18:16 ` Chris Lalancette
2010-04-12 12:41 ` Daniel P. Berrange
2010-04-12 13:56 ` Chris Lalancette
2010-04-12 14:18 ` Daniel P. Berrange
2010-04-09 21:06 ` Jamie Lokier
2010-04-09 21:30 ` [libvirt] [Qemu-devel] " Eric Blake
2010-04-10 12:05 ` Paolo Bonzini
2010-04-11 20:28 ` [Qemu-devel] Re: [libvirt] " Richard W.M. Jones
2010-04-11 22:17 ` Jamie Lokier
[not found] ` <20100412085621.GN26162@redhat.com>
2010-04-12 12:23 ` [libvirt] [Qemu-devel] " Jamie Lokier
2010-04-12 13:05 ` Daniel P. Berrange
2010-04-22 18:47 ` Anthony Liguori
2010-04-23 6:36 ` Jes Sorensen
2010-04-23 10:30 ` Daniel P. Berrange
2010-04-12 12:53 ` [Qemu-devel] Re: [libvirt] " Daniel P. Berrange
2010-04-12 15:20 ` Luiz Capitulino
2010-04-22 18:49 ` Anthony Liguori
2010-04-23 12:48 ` Avi Kivity
2010-04-23 13:48 ` Anthony Liguori
2010-04-23 14:24 ` Avi Kivity
2010-04-23 14:36 ` [libvirt] [Qemu-devel] " Daniel P. Berrange
2010-04-26 12:54 ` Jamie Lokier
2010-04-26 14:25 ` Chris Lalancette [this message]
2010-04-26 14:34 ` Avi Kivity
2010-04-26 14:54 ` Daniel P. Berrange
2010-04-26 15:08 ` Anthony Liguori
2010-04-26 15:20 ` Daniel P. Berrange
2010-04-26 15:55 ` Anthony Liguori
2010-04-23 18:29 ` [Qemu-devel] Re: [libvirt] " Anthony Liguori
2010-04-24 9:46 ` Avi Kivity
2010-04-25 3:39 ` Anthony Liguori
2010-04-25 11:51 ` Avi Kivity
2010-04-26 1:53 ` Anthony Liguori
2010-04-26 5:56 ` Avi Kivity
2010-04-26 9:56 ` [libvirt] [Qemu-devel] " Matthias Bolte
2010-04-26 13:14 ` [Qemu-devel] Re: [libvirt] " Anthony Liguori
2010-04-26 13:41 ` Avi Kivity
2010-04-26 13:46 ` Anthony Liguori
2010-04-26 13:53 ` Avi Kivity
2010-04-26 13:58 ` Daniel P. Berrange
2010-04-26 14:26 ` Anthony Liguori
2010-04-26 14:32 ` Daniel P. Berrange
2010-04-26 9:59 ` Daniel P. Berrange
2010-04-26 13:13 ` Anthony Liguori
2010-04-26 13:31 ` Daniel P. Berrange
2010-04-26 13:43 ` Anthony Liguori
2010-04-26 14:01 ` Avi Kivity
2010-04-26 14:19 ` Anthony Liguori
2010-04-26 14:25 ` Avi Kivity
2010-04-26 14:28 ` Anthony Liguori
2010-04-26 14:38 ` Avi Kivity
2010-04-26 14:48 ` Anthony Liguori
2010-04-26 14:51 ` Avi Kivity
2010-04-23 14:34 ` Daniel P. Berrange
2010-04-23 15:43 ` Markus Armbruster
2010-04-22 18:45 ` Anthony Liguori
2010-04-22 19:10 ` Anthony Liguori
2010-04-23 10:28 ` Daniel P. Berrange
2010-04-23 13:40 ` Anthony Liguori
2010-04-23 14:21 ` Daniel P. Berrange
2010-04-23 18:33 ` Anthony Liguori
2010-04-25 14:50 ` Avi Kivity
2010-04-26 13:14 ` Anthony Liguori
2010-04-09 20:07 ` Eric Blake
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=4BD5A26A.90003@redhat.com \
--to=clalance@redhat.com \
--cc=avi@redhat.com \
--cc=jamie@shareable.org \
--cc=jdenemar@redhat.com \
--cc=libvir-list@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.