[libvirt] [RFC PATCH 1/5] doc: schema: Add basic documentation for the ivshmem support

Maxime Leroy maxime.leroy at 6wind.com
Fri Aug 8 12:07:56 UTC 2014


On Fri, Aug 8, 2014 at 11:21 AM, Martin Kletzander <mkletzan at redhat.com> wrote:
> On Thu, Aug 07, 2014 at 05:34:35PM +0200, Maxime Leroy wrote:
>>
>> On Thu, Aug 7, 2014 at 12:33 PM, Martin Kletzander <mkletzan at redhat.com>
>> wrote:
>>>
>>> On Tue, Aug 05, 2014 at 06:48:01PM +0200, Maxime Leroy wrote:
>>>>
[...]
>>>
>>>> Note: the ivshmem server needs to be launched before
>>>>       creating the VM. It's not done by libvirt.
>>>>
>>>
>>> This is a good temporary workaround, but keep in mind that libvirt
>>> works remotely as well and for remote machines libvirt should be able
>>> to do everything for you to be able to run the machine if necessary.
>>> So even if it might not start the server now, it should in the future.
>>> That should be at least differentiable by some parameter (maybe you do
>>> it somewhere in the code somehow, I haven't got into that).
>>>
>>
>> The new version of ivshmem server has not been accepted yet in QEMU.
>> I think it's too early to have an option to launch an ivshmem server or
>> not.
>>
>> I will prefer to focus on integrating these patches in libvirt first,
>> before adding a new feature to launch an ivhsmem server.
>>
>> Are you ok with that ?
>>
>
> There was a suggestion of implementing the non-server variant first
> and expand it to the variant with server afterwards.  That might be
> the best solution because we'll have bit more time to see the
> re-factoring differences in QEMU as well.  And we can concentrate on
> other details.
>

I would prefer to have ivshmen server and non-server mode supported in
libvirt with these patches; because the XML format need to be designed
with both at the same time.

The new XML format supporting a start or not of ivshmem server could be:

<shmem type='ivshmem'>
  <shm file='ivshmem0'>
  <server socket='/tmp/socket-ivshmem0'  start='yes'>
  <size unit='M'>32</size>
  <msi vectors='32' ioeventfd='on'/>
</shmem>

Note: This new XML format can support different types of shmem.

After my holiday, I am going to check how to implement this feature.
What do you think about this XML format?

Any hints to develop this feature (i.e. starting ivshmen server in
libvirt) is welcomed.

I assume I need to add a new file: src/util/virivshmemserver.c to add
a new function virIvshmemServerRun() and to use it in qemu_command.c.

How can I check whether an ivshmem-server application is installed or
not on the host ? Are there other equivalent behaviors into libvirt?

Maxime




More information about the libvir-list mailing list