[libvirt] [PATCH v6 02/13] qemu: Detect support for vxhs

John Ferlan jferlan at redhat.com
Thu Aug 31 16:59:59 UTC 2017



On 08/31/2017 11:34 AM, Peter Krempa wrote:
> On Wed, Aug 30, 2017 at 18:46:02 -0400, John Ferlan wrote:
>> Using the query-qmp-schema introspection - look for the 'vxhs'
>> blockdevOptions type
>>
>> Signed-off-by: John Ferlan <jferlan at redhat.com>
>> ---
>>
>>  This is new from v5, this is the way I figured out in order to
>>  use the query-qmp-schema in order to determine if 'vxhs' was
>>  possible. It sets the libvirt capability.
>>
>>  src/qemu/qemu_capabilities.c                      | 4 ++++
>>  src/qemu/qemu_capabilities.h                      | 3 +++
>>  tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 1 +
>>  3 files changed, 8 insertions(+)
>>
>> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
>> index e7ea6f4..173bcf3 100644
>> --- a/src/qemu/qemu_capabilities.c
>> +++ b/src/qemu/qemu_capabilities.c
> 
> [...]
> 
>> @@ -1811,6 +1814,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsIntelIOMMU[] = {
>>  static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] = {
>>      { "blockdev-add/arg-type/options/+gluster/debug-level", QEMU_CAPS_GLUSTER_DEBUG_LEVEL},
>>      { "blockdev-add/arg-type/+gluster/debug", QEMU_CAPS_GLUSTER_DEBUG_LEVEL},
>> +    { "blockdev-add/arg-type/+vxhs", QEMU_CAPS_VXHS},
> 
> I've just noticed that this is reported by qemu even if it isn't built
> with libvxhs, thus this is not a 100% proof that qemu in fact supports
> such volumes.
> 
> So with this you still might get a failure from qemu even if libvirt
> thinks that it's supported. For other storage protocols we don't really
> have capabilities. I'm not sure whether it's worth adding it. It will
> catch that your qemu is too old, but won't if it has the feature
> disabled.
> 

Well it's essentially in reaction to your review from v4:

https://www.redhat.com/archives/libvir-list/2017-June/msg01389.html

so the reality is there's not way to tell at all. All we can do is
"hope" that someone successfully built qemu w/ --enable-vxhs. As seen
from qemu commit id 'da92c3ff6'.

Kind of makes introspection a bit useless seeing as I assume it's keyed
off the qapi/block-core.json file and furthermore that it cannot be
built based on whether or not --enable-vxhs was successful. Thus the
only way to really know is to run and fail. Seems like a qemu problem to
me ;-)!  We tried at least.

John




More information about the libvir-list mailing list