blob: ef9d5fbbef56c4245a2c2d955358845896b591e4 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
graphic: 0.992
device: 0.966
instruction: 0.922
mistranslation: 0.858
semantic: 0.751
network: 0.740
vnc: 0.727
boot: 0.725
socket: 0.666
KVM: 0.475
assembly: 0.339
other: 0.243
Virtio-vga with blobs on fails, when qemu compiled with enabled modules
Description of problem:
When using qemu configured with `--enabled-modules` and starting qemu with command line above, qemu crashes with following output:
```
qemu-system-x86_64: -device virtio-vga,blob=on: cannot enable blob resources without udmabuf
```
While qemu configured without `--enabled-modules` runs this command successfully.
Steps to reproduce:
1. Get latest qemu source code
2. Build qemu `mkdir build && cd build && ../configure && ninja`
3. Check if following command runs without errors and show sdl qemu window
```
sudo ./qemu-system-x86_64 \
-object memory-backend-memfd,id=mem1,size=512M \
-machine memory-backend=mem1 \
-display sdl \
-device virtio-vga,blob=on
```
4. Then try to build with modules enabled `mkdir build && cd build && ../configure --enable-modules && ninja`
5. Try to do step 3 again
Additional information:
I tried to debug this bug, and found that problem is with function `virtio_gpu_have_udmabuf`: when qemu is build without modules this function is from `hw/display/virtio-gpu-udmabuf.c` (which is correct), but when qemu compiled with modules this function comes from `stubs/virtio-gpu-udmabuf.c` and when `hw-display-virtio-gpu.so` is loaded, `virtio_gpu_have_udmabuf` is not replaced, and remains function from stub (which always return 0) and command fails.
I think I will submit patch that fix it tomorrow
|