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

Jonathon Jongsma jjongsma at redhat.com
Wed May 18 20:13:50 UTC 2022


On 5/11/22 7:06 AM, Peter Krempa wrote:
> 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.
> 

Do you still plan to take a look at this Peter, or should I post a new 
version with these changes and the doc changes suggested by Han Han?

Jonathon



More information about the libvir-list mailing list