Re: [Qemu-devel] [PATCH] Vmchannel PCI device.

Daniel P. Berrange
2008-12-14T22:13:52Z

On Sun, Dec 14, 2008 at 01:15:42PM -0600, Anthony Liguori wrote:
> Gleb Natapov wrote:
> >On Sun, Dec 14, 2008 at 02:28:23PM +0200, Blue Swirl wrote:
> >
> >>On 12/14/08, Gleb Natapov <gleb@redhat.com> wrote:
> >>
> >>>There is a need for communication channel between host and various
> >>> agents that are running inside a VM guest. The channel will be used
> >>> for statistic gathering, logging, cut & paste, host screen resolution
> >>> changes notification, guest configuration etc.
> >>>
> >>Isn't this exactly what the firmware configuration device was supposed
> >>to be used for? In the list of use cases you gave, I don't see
> >>anything that could not be done with it.
> >>
> >>
> >The requirement for firmware configuration interface was different. We
> >wanted something simple that we can use as early as possible in cpu init
> >code and performance was not considered at all. Obviously PCI device
> >doesn't
> >fit for this. We don't want to write PCI driver inside a BIOS and PCI
> >initialization is too late in HW initialization sequence.
> >
> >The requirement for vmchannel was that it should allow a guest
> >to communicate with external (to qemu) process and with reasonable
> >performance too.
>
> This is not a requirement that I think is important. It's only a
> requirement for you because you have closed code that you want to
> implement the backend with. I would personally be more interested in
> vmchannel backends in QEMU and I think there will be a lot of them.

One non-QEMU backend I can see being implemented is a DBus daemon,
providing a simple bus for RPC calls between guests & host. Or on
a similar theme, perhaps a QPid message broker in the host OS. Yet
another backend is a clustering service providing a virtual fence
device to VMs. All of these would live outside QEMU, and as such
exposing the backend using the character device infrastructure
is a natural fit.

Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|