On 2/9/19 6:23 pm, Brad Campbell wrote:
Here is the holdup :
11725@1567416625.003504:qxl_ring_command_check 0 native
11725@1567416625.102653:qxl_io_write 0 native addr=0
(QXL_IO_NOTIFY_CMD) val=0 size=1 async=0
~100ms delay prior to each logged QXL_IO_NOTIFY_CMD on the AMD box
which explains the performance difference. Now I just need to figure
out if that lies in the guest, the guest QXL driver, QEMU or SPICE and
why it exhibits on the AMD box and not the i7.
To get to this point, I recompiled the kernel on the i7 box with both
AMD and Intel KVM modules. Once that was running I cloned the drive
and put it in the AMD box, so the OS, software stack and all
dependencies are identical.
Reacp :
I have a machine with a Windows 7 VM which is running on an i7-3770.
This works perfectly.
Clone the disk and put it in a new(ish) AMD Ryzen 1500x machine and the
display output using qxl/spice is now limited to ~5-7fps.
I originally cloned the entire machine to keep the software versions
identical.
To simplify debugging and reproduction I'm now using :
- An identical SPICE version to that on the i7.
- A fresh 64 bit Windows 7 VM.
- The D2D benchmark from Crystalmark 2004R7.
The machine is booted with :
qemu -enable-kvm \
-m 8192\
-rtc base=localtime\
-vga qxl\
-device qxl\
-global qxl-vga.guestdebug=3\
-global qxl-vga.cmdlog=1\
-global qxl-vga.vram_size=65536\
-global qxl.vram_size=65536\
-global qxl-vga.ram_size=65536\
-global qxl.ram_size=65536\
-net nic,model=virtio\
-net tap,ifname=tap0,script=/etc/qemu-ifup,vhost=on\
-usbdevice tablet\
-spice port=5930,disable-ticketing\
-device virtio-serial\
-chardev spicevmc,id=vdagent,name=vdagent\
-device virtserialport,chardev=vdagent,name=com.redhat.spice.0\
-smp 3,maxcpus=3,cores=3,threads=1,sockets=1\
-cpu qemu64,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time \
-drive
file=/server/VM/Cadbox.raw,if=virtio,aio=threads,format=raw,cache=unsafe
-boot c \
-drive
file=/server/VM/Cadbox_swap.raw,if=virtio,aio=threads,format=raw,cache=unsafe
\
The D2D benchmark runs through a series of Sprites (stars) and it just
shuffles them around the screen.
With KVM enabled I get :
Sprite 10 - 8.66fps
Sprite 100 - 8.47fps
Sprite 500 - 8.45fps
Sprite 1000 - 8.18fps
Sprite 5000 - 7.64fps
Sprite 10000 - 7.26fps
With the identical system, with KVM disabled I get :
Sprite 10 - 28.97fps
Sprite 100 - 27.24fps
Sprite 500 - 23.85fps
Sprite 1000 - 22.00fps
Sprite 5000 - 11.11fps
Sprite 10000 - 4.50fps
On the i7 with the same software version and kvm enabled :
Sprite 10 - 88.58fps
Sprite 100 - 88.35fps
Sprite 500 - 85.64fps
Sprite 1000 - 83.33fps
Sprite 5000 - 58.08fps
Sprite 10000 - 45.29fps