qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Re: [libvirt] Supporting hypervisor specific APIs in li


From: Anthony Liguori
Subject: Re: [Qemu-devel] Re: [libvirt] Supporting hypervisor specific APIs in libvirt
Date: Wed, 24 Mar 2010 16:40:18 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091209 Fedora/3.0-4.fc12 Lightning/1.0pre Thunderbird/3.0

On 03/24/2010 04:25 PM, Luiz Capitulino wrote:

  I see it as a related problem, because what seems to be under discussion
is the quality of our interfaces with humans and tools.

  Also, when we were discussing the usuability problems I remember that
you

*WARNING: I might be wrong here, please correct me if so*

  you said that you don't push users to libvirt because it's out of sync with
our features.

Yes.

  The point is that, even if this true and even if we solve that,
I don't think it will solve the problem of a good experience for a
'single VM user', because libvirt is more than that and people will likely
be annoyed as much as they are today.

  I believe this problem is up to us to solve.

With my qemu hat on, I'm happy to ignore libvirt and say we need to own our interfaces and to compete with libvirt for users.

But with my Linux virtualization hat on, I want to see a single management interface that users can use without having to make a choice between libvirt features or libqemu features.

   Then we make virt-manager optional and this is good because we can sync
features way faster and we don't have to care about _managing_ several
VMs, our world in terms of usability and maintainability is about one VM.

   IMVHO, everything else should be done by third-party tools like libvirt,
we just provide the means for it.

We need to have a common management interface for third party tools.
  QMP? :-)

Only if QMP is compatible with libvirt. I don't want a user to have to choose between QMP and libvirt.
So far, a libqemu.so with a flexible transport that could be used
directly by a libvirt user (ala cairo/gdk type interactions) seems like
the best solution to me.
  I tend to disagree.

  First, I think we should invest our time and effort on the text protocol
business, which is QMP. Having yet another public interface will likely split
efforts a bit and will make clients' life harder (which one should I choose?
What if they get out of sync?). Not to mention that I think Paul has a point,
if QMP is not useful here, why do we have it in the first place (vs. a C library
from the beginning)?

  You mentioned dynamic dispatch, but this is useful only for C clients right?
If so, what C clients you expected beyond libvirt?

Users want a C API. I don't agree that libvirt is the only C interface consumer out there.

  Note that libvirt has added
a new events API recently.

  The second most important point for me is: why do you believe that
libqemu.so is going to improve things? Do you expect that libvirt will
sync faster?

With GDK and Cairo, when Cairo adds a new feature, GDK doesn't have to do anything to support it. Users just get a cairo context from GDK and use the cairo API directly.

GDK provides a higher level interface for 2d operations that is more platform agnostic, and users can choice to use that or write directly to the cairo API.

  If this is the case, I think it will be as slower as it's
currently, as the problem is not the availability of interfaces, but
most likely community integration.

  I like the idea of having a transient qemu-specific API in libvirt,
as suggested by someone in this thread.

I really think what we want is for a libvirt user to be able to call libqemu functions directly. There shouldn't have to be libvirt specific functions for every operation we expose.

Regards,

Anthony Liguori





reply via email to

[Prev in Thread] Current Thread [Next in Thread]