On Fri, Aug 8, 2014 at 11:21 AM, Martin Kletzander <mkletzan(a)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(a)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