[PATCH 0/3] domain capabilites improvements

Jim Fehlig jfehlig at suse.com
Thu Sep 8 19:18:19 UTC 2022


On 9/8/22 01:52, Peter Krempa wrote:
> On Wed, Sep 07, 2022 at 15:20:44 -0600, Jim Fehlig wrote:
>> On 9/6/22 14:42, Jim Fehlig wrote:
>>> The first two patches add USB redirect and channel devices to
>>> domcapabilities. Patch3 fixes reporting of spice support.
>>>
>>> Patch1 was sent previously, before I noticed the others were needed
>>
>> Another capability I'd like to expose is the functionality provided by
>> qemu's audio-spice module, which IIUC is essentially `-audiodev spice`.
>> After peeking at the qmp ref manual [1] I expected to find an "audiodev"
>> object, however
>>
>> # virsh qemu-monitor-command test \
>>    --cmd '{"execute":"qom-list-types"}' | grep -i audiodev
>> #
>> # virsh qemu-monitor-command test --cmd \
>>    '{"execute":"qom-list-properties","arguments":{"typename":"audiodev"}}'
>> {"id":"libvirt-411","error":{"class":"DeviceNotFound","desc":"Class
>> 'audiodev' not found"}}
>> # virsh qemu-monitor-command test --cmd \
>>    '{"execute":"device-list-properties","arguments":{"typename":"audiodev"}}'
>> {"id":"libvirt-412","error":{"class":"DeviceNotFound","desc":"Device
>> 'audiodev' not found"}}
>>
>> Command line help is not available either, which spawned Claudio's qemu patch [2]
>>
>> # qemu-system-x86_64 -audiodev help
>> qemu-system-x86_64: -audiodev help: Help is not available for this option
> 
> In cases where a command line option parser in qemu was implemented via
> the modern QOM based approach, but at the same time is not runtime
> configurable or queryable via the monitor it's not possible for libvirt
> to detect the options.
> 
> Historically command line arguments could be queried via
> 'query-command-line-options' command but that was deemed to be
> un-extendible and new code is not getting coverage. At the same time
> libvirt is trying to decrease the reliance on the command to allow
> deprecation and promote some form of replacement.
> 
> We had a similar problem for graphics options, which was side-stepped by
> implementing 'query-display-options' which in turn exposed all the
> objects in the QMP schema (query-qmp-schema) which allowed us to detet
> graphics related functionality.
> 
> At this point we e.g. assume that the modern -audiodev is present. For
> few specific configs we validate that the appropriate graphics protocol
> is used for the VM but don't validate anything else.
> 
> For your specific query, the spice backend for audio is allowed only
> when spice video is enabled anyways, so the capability you are
> suggesting does not seem to be that much interesting as the decision can
> be based on the graphics protocol support.

IIUC, it is possible to have a qemu installation with spice video support but 
without the audio-spice module. If that is the case, seems we need to report the 
available audio backends in domcaps.

Regards,
Jim



More information about the libvir-list mailing list