[libvirt PATCH v3 6/6] qemu: Implement 'blob' support for virtio gpu

Peter Krempa pkrempa at redhat.com
Wed May 11 12:06:27 UTC 2022


On Tue, May 10, 2022 at 11:24:31 -0500, Jonathon Jongsma wrote:
> This can improve performance for some guests since it reduces copying of
> display data between host and guest. Requires udmabuf on the host.
> 
> Signed-off-by: Jonathon Jongsma <jjongsma at redhat.com>
> ---
>  src/qemu/qemu_cgroup.c                        | 22 ++++++----
>  src/qemu/qemu_command.c                       |  3 ++
>  src/qemu/qemu_domain.h                        |  1 +
>  src/qemu/qemu_namespace.c                     | 22 ++++++++++
>  src/qemu/qemu_validate.c                      |  9 ++++
>  .../video-virtio-blob-absent.args             | 34 +++++++++++++++
>  .../video-virtio-blob-absent.xml              | 33 +++++++++++++++
>  .../video-virtio-blob-off.args                | 34 +++++++++++++++
>  .../video-virtio-blob-off.xml                 | 33 +++++++++++++++
>  .../video-virtio-blob-on.args                 | 34 +++++++++++++++
>  .../qemuxml2argvdata/video-virtio-blob-on.xml | 33 +++++++++++++++
>  .../video-virtio-vga-blob-on.args             | 34 +++++++++++++++
>  .../video-virtio-vga-blob-on.xml              | 33 +++++++++++++++
>  tests/qemuxml2argvtest.c                      | 12 ++++++
>  .../video-virtio-blob-absent.xml              | 41 +++++++++++++++++++
>  .../video-virtio-blob-off.xml                 | 41 +++++++++++++++++++
>  .../video-virtio-blob-on.xml                  | 41 +++++++++++++++++++
>  .../video-virtio-vga-blob-on.xml              | 41 +++++++++++++++++++
>  tests/qemuxml2xmltest.c                       | 12 ++++++
>  19 files changed, 506 insertions(+), 7 deletions(-)
>  create mode 100644 tests/qemuxml2argvdata/video-virtio-blob-absent.args
>  create mode 100644 tests/qemuxml2argvdata/video-virtio-blob-absent.xml
>  create mode 100644 tests/qemuxml2argvdata/video-virtio-blob-off.args
>  create mode 100644 tests/qemuxml2argvdata/video-virtio-blob-off.xml
>  create mode 100644 tests/qemuxml2argvdata/video-virtio-blob-on.args
>  create mode 100644 tests/qemuxml2argvdata/video-virtio-blob-on.xml
>  create mode 100644 tests/qemuxml2argvdata/video-virtio-vga-blob-on.args
>  create mode 100644 tests/qemuxml2argvdata/video-virtio-vga-blob-on.xml
>  create mode 100644 tests/qemuxml2xmloutdata/video-virtio-blob-absent.xml
>  create mode 100644 tests/qemuxml2xmloutdata/video-virtio-blob-off.xml
>  create mode 100644 tests/qemuxml2xmloutdata/video-virtio-blob-on.xml
>  create mode 100644 tests/qemuxml2xmloutdata/video-virtio-vga-blob-on.xml

[...]

> diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
> index 1d6e03490d..b2de8ef44f 100644
> --- a/tests/qemuxml2argvtest.c
> +++ b/tests/qemuxml2argvtest.c
> @@ -2437,6 +2437,18 @@ mymain(void)
>      DO_TEST("video-virtio-vga",
>              QEMU_CAPS_DEVICE_VIRTIO_GPU,
>              QEMU_CAPS_DEVICE_VIRTIO_VGA);
> +    DO_TEST("video-virtio-blob-on",
> +            QEMU_CAPS_DEVICE_VIRTIO_GPU,
> +            QEMU_CAPS_VIRTIO_GPU_BLOB);
> +    DO_TEST("video-virtio-vga-blob-on",
> +            QEMU_CAPS_DEVICE_VIRTIO_GPU,
> +            QEMU_CAPS_DEVICE_VIRTIO_VGA,
> +            QEMU_CAPS_VIRTIO_GPU_BLOB);
> +    DO_TEST("video-virtio-blob-off",
> +            QEMU_CAPS_DEVICE_VIRTIO_GPU,
> +            QEMU_CAPS_VIRTIO_GPU_BLOB);
> +    DO_TEST("video-virtio-blob-absent",
> +            QEMU_CAPS_DEVICE_VIRTIO_GPU);
>      DO_TEST_CAPS_LATEST("video-virtio-vga-gpu-gl");
>      DO_TEST_CAPS_LATEST("video-bochs-display-device");
>      DO_TEST_CAPS_LATEST("video-ramfb-display-device");

[...]

> diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
> index 518842112e..3d31a1480f 100644
> --- a/tests/qemuxml2xmltest.c
> +++ b/tests/qemuxml2xmltest.c
> @@ -1278,6 +1278,18 @@ mymain(void)
>              QEMU_CAPS_DEVICE_VIRTIO_GPU_CCW);
>      DO_TEST("video-none-device", QEMU_CAPS_VNC);
>      DO_TEST_CAPS_LATEST("video-virtio-vga-gpu-gl");
> +    DO_TEST("video-virtio-blob-on",
> +            QEMU_CAPS_DEVICE_VIRTIO_GPU,
> +            QEMU_CAPS_VIRTIO_GPU_BLOB);
> +    DO_TEST("video-virtio-vga-blob-on",
> +            QEMU_CAPS_DEVICE_VIRTIO_GPU,
> +            QEMU_CAPS_DEVICE_VIRTIO_VGA,
> +            QEMU_CAPS_VIRTIO_GPU_BLOB);
> +    DO_TEST("video-virtio-blob-off",
> +            QEMU_CAPS_DEVICE_VIRTIO_GPU,
> +            QEMU_CAPS_VIRTIO_GPU_BLOB);
> +    DO_TEST("video-virtio-blob-absent",
> +            QEMU_CAPS_DEVICE_VIRTIO_GPU);

Please make sure to preferrably use DO_TEST_CAPS_LATEST or
DO_TEST_CAPS_VER for positive test cases, unless there's a very
specific need to test with a certain flag combination.

I can have a closer look at this series later once I finish the other
stuff I planned to review.


More information about the libvir-list mailing list