[libvirt] [PATCH 2/7] qemu: capabilities: fill in domcaps <rng>

Daniel Henrique Barboza danielhb413 at gmail.com
Fri Apr 26 21:49:32 UTC 2019


Running make check on the patch series, using the current
master branch, I got the following error:

TEST: domaincapstest
       ..................!.                     20  FAIL
FAIL domaincapstest (exit status: 255)


Running it manually:

In 
'/home/danielhb/kvm-project/libvirt/tests/domaincapsschemadata/qemu_3.1.0.x86_64.xml':
Offset 5119
Expect [<]
Actual [  <rng supported='yes'>
       <enum name='model'>
         <value>virtio</value>
         <value>virtio-transitional</value>
         <value>virtio-non-transitional</value>
       </enum>
       <enum name='backendModel'>
         <value>random</value>
         <value>egd</value>
       </enum>
     </rng>
   <]
                                                                      
... FAILED


I believe that you'll need to update the file qemu_3.1.0.x86_64.xml
as well.



DHB


On 4/4/19 8:37 PM, Cole Robinson wrote:
> The model logic is taken from qemuDomainRNGDefValidate
>
> Signed-off-by: Cole Robinson <crobinso at redhat.com>
> ---
>   src/qemu/qemu_capabilities.c                  | 30 +++++++++++++++++++
>   .../qemu_1.7.0.x86_64.xml                     |  9 ++++++
>   .../qemu_2.12.0-virt.aarch64.xml              | 11 +++++++
>   .../qemu_2.12.0.ppc64.xml                     | 11 +++++++
>   .../qemu_2.12.0.s390x.xml                     | 11 +++++++
>   .../qemu_2.12.0.x86_64.xml                    | 11 +++++++
>   .../qemu_2.6.0-virt.aarch64.xml               | 11 +++++++
>   .../qemu_2.6.0.aarch64.xml                    | 11 +++++++
>   .../domaincapsschemadata/qemu_2.6.0.ppc64.xml | 11 +++++++
>   .../qemu_2.6.0.x86_64.xml                     | 11 +++++++
>   .../domaincapsschemadata/qemu_2.7.0.s390x.xml | 11 +++++++
>   .../qemu_2.8.0-tcg.x86_64.xml                 | 11 +++++++
>   .../domaincapsschemadata/qemu_2.8.0.s390x.xml | 11 +++++++
>   .../qemu_2.8.0.x86_64.xml                     | 11 +++++++
>   .../qemu_2.9.0-q35.x86_64.xml                 | 11 +++++++
>   .../qemu_2.9.0-tcg.x86_64.xml                 | 11 +++++++
>   .../qemu_2.9.0.x86_64.xml                     | 11 +++++++
>   .../domaincapsschemadata/qemu_3.0.0.s390x.xml | 11 +++++++
>   .../qemu_4.0.0.x86_64.xml                     | 11 +++++++
>   19 files changed, 226 insertions(+)
>
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index 71d4c01296..46ba5e30b5 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -5165,6 +5165,34 @@ virQEMUCapsFillDomainDeviceHostdevCaps(virQEMUCapsPtr qemuCaps,
>   }
>   
>   
> +static int
> +virQEMUCapsFillDomainDeviceRNGCaps(virQEMUCapsPtr qemuCaps,
> +                                   virDomainCapsDeviceRNGPtr rng)
> +{
> +    rng->supported = VIR_TRISTATE_BOOL_YES;
> +    rng->model.report = true;
> +    rng->backendModel.report = true;
> +
> +    if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VIRTIO_RNG)) {
> +        VIR_DOMAIN_CAPS_ENUM_SET(rng->model, VIR_DOMAIN_RNG_MODEL_VIRTIO);
> +
> +        if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_PCI_TRANSITIONAL) ||
> +            virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY)) {
> +            VIR_DOMAIN_CAPS_ENUM_SET(rng->model,
> +                                     VIR_DOMAIN_RNG_MODEL_VIRTIO_TRANSITIONAL,
> +                                     VIR_DOMAIN_RNG_MODEL_VIRTIO_NON_TRANSITIONAL);
> +        }
> +    }
> +
> +    if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_RNG_EGD))
> +        VIR_DOMAIN_CAPS_ENUM_SET(rng->backendModel, VIR_DOMAIN_RNG_BACKEND_EGD);
> +    if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_RNG_RANDOM))
> +        VIR_DOMAIN_CAPS_ENUM_SET(rng->backendModel, VIR_DOMAIN_RNG_BACKEND_RANDOM);
> +
> +    return 0;
> +}
> +
> +
>   /**
>    * virQEMUCapsSupportsGICVersion:
>    * @qemuCaps: QEMU capabilities
> @@ -5306,6 +5334,7 @@ virQEMUCapsFillDomainCaps(virCapsPtr caps,
>       virDomainCapsDeviceHostdevPtr hostdev = &domCaps->hostdev;
>       virDomainCapsDeviceGraphicsPtr graphics = &domCaps->graphics;
>       virDomainCapsDeviceVideoPtr video = &domCaps->video;
> +    virDomainCapsDeviceRNGPtr rng = &domCaps->rng;
>   
>       domCaps->maxvcpus = virQEMUCapsGetMachineMaxCpus(qemuCaps,
>                                                        domCaps->machine);
> @@ -5332,6 +5361,7 @@ virQEMUCapsFillDomainCaps(virCapsPtr caps,
>           virQEMUCapsFillDomainDeviceGraphicsCaps(qemuCaps, graphics) < 0 ||
>           virQEMUCapsFillDomainDeviceVideoCaps(qemuCaps, video) < 0 ||
>           virQEMUCapsFillDomainDeviceHostdevCaps(qemuCaps, hostdev) < 0 ||
> +        virQEMUCapsFillDomainDeviceRNGCaps(qemuCaps, rng) < 0 ||
>           virQEMUCapsFillDomainFeatureGICCaps(qemuCaps, domCaps) < 0 ||
>           virQEMUCapsFillDomainFeatureSEVCaps(qemuCaps, domCaps) < 0)
>           return -1;
> diff --git a/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml b/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml
> index 497363bbe9..a9b0efdbdb 100644
> --- a/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml
> +++ b/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml
> @@ -109,6 +109,15 @@
>           <value>vfio</value>
>         </enum>
>       </hostdev>
> +    <rng supported='yes'>
> +      <enum name='model'>
> +        <value>virtio</value>
> +      </enum>
> +      <enum name='backendModel'>
> +        <value>random</value>
> +        <value>egd</value>
> +      </enum>
> +    </rng>
>     </devices>
>     <features>
>       <gic supported='no'/>
> diff --git a/tests/domaincapsschemadata/qemu_2.12.0-virt.aarch64.xml b/tests/domaincapsschemadata/qemu_2.12.0-virt.aarch64.xml
> index 7639df44c6..654ce1f538 100644
> --- a/tests/domaincapsschemadata/qemu_2.12.0-virt.aarch64.xml
> +++ b/tests/domaincapsschemadata/qemu_2.12.0-virt.aarch64.xml
> @@ -114,6 +114,17 @@
>           <value>vfio</value>
>         </enum>
>       </hostdev>
> +    <rng supported='yes'>
> +      <enum name='model'>
> +        <value>virtio</value>
> +        <value>virtio-transitional</value>
> +        <value>virtio-non-transitional</value>
> +      </enum>
> +      <enum name='backendModel'>
> +        <value>random</value>
> +        <value>egd</value>
> +      </enum>
> +    </rng>
>     </devices>
>     <features>
>       <gic supported='yes'>
> diff --git a/tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml b/tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml
> index f10d361359..2ac32fcb3b 100644
> --- a/tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml
> +++ b/tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml
> @@ -80,6 +80,17 @@
>           <value>vfio</value>
>         </enum>
>       </hostdev>
> +    <rng supported='yes'>
> +      <enum name='model'>
> +        <value>virtio</value>
> +        <value>virtio-transitional</value>
> +        <value>virtio-non-transitional</value>
> +      </enum>
> +      <enum name='backendModel'>
> +        <value>random</value>
> +        <value>egd</value>
> +      </enum>
> +    </rng>
>     </devices>
>     <features>
>       <gic supported='no'/>
> diff --git a/tests/domaincapsschemadata/qemu_2.12.0.s390x.xml b/tests/domaincapsschemadata/qemu_2.12.0.s390x.xml
> index 41a81ff02f..fa377d33a0 100644
> --- a/tests/domaincapsschemadata/qemu_2.12.0.s390x.xml
> +++ b/tests/domaincapsschemadata/qemu_2.12.0.s390x.xml
> @@ -172,6 +172,17 @@
>           <value>vfio</value>
>         </enum>
>       </hostdev>
> +    <rng supported='yes'>
> +      <enum name='model'>
> +        <value>virtio</value>
> +        <value>virtio-transitional</value>
> +        <value>virtio-non-transitional</value>
> +      </enum>
> +      <enum name='backendModel'>
> +        <value>random</value>
> +        <value>egd</value>
> +      </enum>
> +    </rng>
>     </devices>
>     <features>
>       <gic supported='no'/>
> diff --git a/tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml b/tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml
> index 5913e7fc63..712b83f443 100644
> --- a/tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml
> +++ b/tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml
> @@ -142,6 +142,17 @@
>           <value>vfio</value>
>         </enum>
>       </hostdev>
> +    <rng supported='yes'>
> +      <enum name='model'>
> +        <value>virtio</value>
> +        <value>virtio-transitional</value>
> +        <value>virtio-non-transitional</value>
> +      </enum>
> +      <enum name='backendModel'>
> +        <value>random</value>
> +        <value>egd</value>
> +      </enum>
> +    </rng>
>     </devices>
>     <features>
>       <gic supported='no'/>
> diff --git a/tests/domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml b/tests/domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml
> index 9ee801092e..26bd16788a 100644
> --- a/tests/domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml
> +++ b/tests/domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml
> @@ -111,6 +111,17 @@
>           <value>vfio</value>
>         </enum>
>       </hostdev>
> +    <rng supported='yes'>
> +      <enum name='model'>
> +        <value>virtio</value>
> +        <value>virtio-transitional</value>
> +        <value>virtio-non-transitional</value>
> +      </enum>
> +      <enum name='backendModel'>
> +        <value>random</value>
> +        <value>egd</value>
> +      </enum>
> +    </rng>
>     </devices>
>     <features>
>       <gic supported='yes'>
> diff --git a/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml b/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml
> index 4dd0b52ed3..3aa5474e64 100644
> --- a/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml
> +++ b/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml
> @@ -111,6 +111,17 @@
>           <value>vfio</value>
>         </enum>
>       </hostdev>
> +    <rng supported='yes'>
> +      <enum name='model'>
> +        <value>virtio</value>
> +        <value>virtio-transitional</value>
> +        <value>virtio-non-transitional</value>
> +      </enum>
> +      <enum name='backendModel'>
> +        <value>random</value>
> +        <value>egd</value>
> +      </enum>
> +    </rng>
>     </devices>
>     <features>
>       <gic supported='no'/>
> diff --git a/tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml b/tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml
> index aa982d237e..cb179b34af 100644
> --- a/tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml
> +++ b/tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml
> @@ -84,6 +84,17 @@
>           <value>vfio</value>
>         </enum>
>       </hostdev>
> +    <rng supported='yes'>
> +      <enum name='model'>
> +        <value>virtio</value>
> +        <value>virtio-transitional</value>
> +        <value>virtio-non-transitional</value>
> +      </enum>
> +      <enum name='backendModel'>
> +        <value>random</value>
> +        <value>egd</value>
> +      </enum>
> +    </rng>
>     </devices>
>     <features>
>       <gic supported='no'/>
> diff --git a/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml b/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml
> index 6aa3f52ee4..5a675e205f 100644
> --- a/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml
> +++ b/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml
> @@ -116,6 +116,17 @@
>           <value>vfio</value>
>         </enum>
>       </hostdev>
> +    <rng supported='yes'>
> +      <enum name='model'>
> +        <value>virtio</value>
> +        <value>virtio-transitional</value>
> +        <value>virtio-non-transitional</value>
> +      </enum>
> +      <enum name='backendModel'>
> +        <value>random</value>
> +        <value>egd</value>
> +      </enum>
> +    </rng>
>     </devices>
>     <features>
>       <gic supported='no'/>
> diff --git a/tests/domaincapsschemadata/qemu_2.7.0.s390x.xml b/tests/domaincapsschemadata/qemu_2.7.0.s390x.xml
> index 8daa15ab9d..f601922d5e 100644
> --- a/tests/domaincapsschemadata/qemu_2.7.0.s390x.xml
> +++ b/tests/domaincapsschemadata/qemu_2.7.0.s390x.xml
> @@ -77,6 +77,17 @@
>           <value>vfio</value>
>         </enum>
>       </hostdev>
> +    <rng supported='yes'>
> +      <enum name='model'>
> +        <value>virtio</value>
> +        <value>virtio-transitional</value>
> +        <value>virtio-non-transitional</value>
> +      </enum>
> +      <enum name='backendModel'>
> +        <value>random</value>
> +        <value>egd</value>
> +      </enum>
> +    </rng>
>     </devices>
>     <features>
>       <gic supported='no'/>
> diff --git a/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml b/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml
> index 081805aa4a..4d48e7d251 100644
> --- a/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml
> +++ b/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml
> @@ -117,6 +117,17 @@
>           <value>vfio</value>
>         </enum>
>       </hostdev>
> +    <rng supported='yes'>
> +      <enum name='model'>
> +        <value>virtio</value>
> +        <value>virtio-transitional</value>
> +        <value>virtio-non-transitional</value>
> +      </enum>
> +      <enum name='backendModel'>
> +        <value>random</value>
> +        <value>egd</value>
> +      </enum>
> +    </rng>
>     </devices>
>     <features>
>       <gic supported='no'/>
> diff --git a/tests/domaincapsschemadata/qemu_2.8.0.s390x.xml b/tests/domaincapsschemadata/qemu_2.8.0.s390x.xml
> index 62c51e4087..f18dc262b4 100644
> --- a/tests/domaincapsschemadata/qemu_2.8.0.s390x.xml
> +++ b/tests/domaincapsschemadata/qemu_2.8.0.s390x.xml
> @@ -158,6 +158,17 @@
>           <value>vfio</value>
>         </enum>
>       </hostdev>
> +    <rng supported='yes'>
> +      <enum name='model'>
> +        <value>virtio</value>
> +        <value>virtio-transitional</value>
> +        <value>virtio-non-transitional</value>
> +      </enum>
> +      <enum name='backendModel'>
> +        <value>random</value>
> +        <value>egd</value>
> +      </enum>
> +    </rng>
>     </devices>
>     <features>
>       <gic supported='no'/>
> diff --git a/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml b/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml
> index 1bb034aa4f..46d398949a 100644
> --- a/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml
> +++ b/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml
> @@ -117,6 +117,17 @@
>           <value>vfio</value>
>         </enum>
>       </hostdev>
> +    <rng supported='yes'>
> +      <enum name='model'>
> +        <value>virtio</value>
> +        <value>virtio-transitional</value>
> +        <value>virtio-non-transitional</value>
> +      </enum>
> +      <enum name='backendModel'>
> +        <value>random</value>
> +        <value>egd</value>
> +      </enum>
> +    </rng>
>     </devices>
>     <features>
>       <gic supported='no'/>
> diff --git a/tests/domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml b/tests/domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml
> index 67c6d5e77e..a7392c0929 100644
> --- a/tests/domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml
> +++ b/tests/domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml
> @@ -125,6 +125,17 @@
>           <value>vfio</value>
>         </enum>
>       </hostdev>
> +    <rng supported='yes'>
> +      <enum name='model'>
> +        <value>virtio</value>
> +        <value>virtio-transitional</value>
> +        <value>virtio-non-transitional</value>
> +      </enum>
> +      <enum name='backendModel'>
> +        <value>random</value>
> +        <value>egd</value>
> +      </enum>
> +    </rng>
>     </devices>
>     <features>
>       <gic supported='no'/>
> diff --git a/tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml b/tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml
> index 588ef08199..f94f805b81 100644
> --- a/tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml
> +++ b/tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml
> @@ -149,6 +149,17 @@
>           <value>vfio</value>
>         </enum>
>       </hostdev>
> +    <rng supported='yes'>
> +      <enum name='model'>
> +        <value>virtio</value>
> +        <value>virtio-transitional</value>
> +        <value>virtio-non-transitional</value>
> +      </enum>
> +      <enum name='backendModel'>
> +        <value>random</value>
> +        <value>egd</value>
> +      </enum>
> +    </rng>
>     </devices>
>     <features>
>       <gic supported='no'/>
> diff --git a/tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml b/tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml
> index 598937a971..b0039c8246 100644
> --- a/tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml
> +++ b/tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml
> @@ -126,6 +126,17 @@
>           <value>vfio</value>
>         </enum>
>       </hostdev>
> +    <rng supported='yes'>
> +      <enum name='model'>
> +        <value>virtio</value>
> +        <value>virtio-transitional</value>
> +        <value>virtio-non-transitional</value>
> +      </enum>
> +      <enum name='backendModel'>
> +        <value>random</value>
> +        <value>egd</value>
> +      </enum>
> +    </rng>
>     </devices>
>     <features>
>       <gic supported='no'/>
> diff --git a/tests/domaincapsschemadata/qemu_3.0.0.s390x.xml b/tests/domaincapsschemadata/qemu_3.0.0.s390x.xml
> index 1d97f1f344..b33ff6a09d 100644
> --- a/tests/domaincapsschemadata/qemu_3.0.0.s390x.xml
> +++ b/tests/domaincapsschemadata/qemu_3.0.0.s390x.xml
> @@ -178,6 +178,17 @@
>           <value>vfio</value>
>         </enum>
>       </hostdev>
> +    <rng supported='yes'>
> +      <enum name='model'>
> +        <value>virtio</value>
> +        <value>virtio-transitional</value>
> +        <value>virtio-non-transitional</value>
> +      </enum>
> +      <enum name='backendModel'>
> +        <value>random</value>
> +        <value>egd</value>
> +      </enum>
> +    </rng>
>     </devices>
>     <features>
>       <gic supported='no'/>
> diff --git a/tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml b/tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml
> index df66be9e29..7596e414d6 100644
> --- a/tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml
> +++ b/tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml
> @@ -143,6 +143,17 @@
>           <value>vfio</value>
>         </enum>
>       </hostdev>
> +    <rng supported='yes'>
> +      <enum name='model'>
> +        <value>virtio</value>
> +        <value>virtio-transitional</value>
> +        <value>virtio-non-transitional</value>
> +      </enum>
> +      <enum name='backendModel'>
> +        <value>random</value>
> +        <value>egd</value>
> +      </enum>
> +    </rng>
>     </devices>
>     <features>
>       <gic supported='no'/>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20190426/5d61050c/attachment-0001.htm>


More information about the libvir-list mailing list