On 09/10/2017 11:38 AM, Paolo Bonzini wrote:
On 28/08/2017 13:11, Michal Privoznik wrote:
> On 08/25/2017 12:41 AM, Paolo Bonzini wrote:
>> On 22/08/2017 18:27, Paolo Bonzini wrote:
>>> Hi all,
>
>>
>> The XML to use the helper with a predefined socket could be:
>>
>> <disk ...>
>> <pr mode='connect'>/path/to/unix.socket'</pr>
>> </disk>
This looks okay-ish. But from future proof POV, I'd have the path as an
attribute, or as a separate sub-element of <pr/> so that we can stick
more elements into it if we need to.
>
> Do we want to/need to expose the path here? I mean, is user expected to
> do something with it? We don't expose monitor path anywhere but keep it
> private (of course we store it in so called status XML which is a
> persistent storage solely for purpose of reloading the internal state
> when daemon is restarted).
In this case, yes. This is for the case of a global daemon.
I'm thinking if we should just use virDomainChrSourceDefPtr for this. I
mean, if you take look at the vhost-user XML format it looks something
like this:
<interface type='vhostuser'>
<mac address='52:54:00:3b:83:1b'/>
<source type='unix' path='/tmp/vhost2.sock'
mode='client'/>
<model type='virtio'/>
<driver queues='5'/>
</interface>
http://libvirt.org/formatdomain.html#elementVhostuser
So we could have:
<disk>
<pr>
<source type='unix' path='/path/to/unix.socket'
mode='client'/>
</pr>
</disk>
The advantage of this is that we can express other connection modes if
the pr-helper is ever going to support them (although, if you need to
pass FDs around, UNIX socket is the only way for you). Then again, I
think it follows what we have elsewhere. Also, if we go this way, we can
forbid any type='' but unix and mode='server'.
>>
>> while to use it with a dedicated daemon
>>
>> <disk ...>
>> <pr mode='private'>/path/to/qemu-pr-helper</pr>
>> </disk>
Ah, this breaks my design. I guess
<disk>
<pr>
<source type='unix' path='/path/to/qemu-pr-helper'
mode='server'/>
</pr>
</disk>
is pure madness, isn't it?
Michal