Re: [RFC] Unify KVM kernel-space and user-space code into a single project

Avi Kivity
2010-03-23T09:07:48Z

On 03/23/2010 12:06 AM, Anthony Liguori wrote:
>> Having qemu enumerate guests one way or another is not a good idea
>> IMO since it is focused on one guest and doesn't have a system-wide
>> entity.
>
>
> There always needs to be a system wide entity. There are two ways to
> enumerate instances from that system wide entity. You can centralize
> the creation of instances and there by maintain an list of current
> instances. You can also allow instances to be created in a
> decentralized manner and provide a standard mechanism for instances to
> register themselves with the system wide entity.
>
> IOW, it's the difference between asking libvirtd to exec(qemu) vs
> allowing a user to exec(qemu) and having qemu connect to a well known
> unix domain socket for libvirt to tell libvirtd that it exists.
>
> The later approach has a number of advantages. libvirt already
> supports both models. The former is the '/system' uri and the later
> is the '/session' uri.
>
> What I'm proposing, is to use the host file system as the system wide
> entity instead of libvirtd. libvirtd can monitor the host file system
> to participate in these activities but ultimately, moving this
> functionality out of libvirtd means that it becomes the standard
> mechanism for all qemu instances regardless of how they're launched.

I don't like dropping sockets into the host filesystem, especially as
they won't be cleaned up on abnormal exit. I also think this breaks our
'mechanism, not policy' policy. Someone may want to do something weird
with qemu that doesn't work well with this.

We could allow starting monitors from the global configuration file, so
a distribution can do this if it wants, but I don't think we should do
this ourselves by default.

--
error compiling committee.c: too many arguments to function