[Spice-devel] Windows 10 KVM guest very slow in SPICE console

Carlos González piteccelaya at gmail.com
Fri Jun 15 17:38:45 UTC 2018


Thanks very much for answering, sir.

I'd like to comment just in case that I'm a novice in the whole qemu-KVM
world, and what I have done until now has been after some amount of
previous reading and few forum questions. Also, I still do everything the
GUI way; still have to learn -and I wish to- how to do it the command
line/script ways.


> For windows 10 you need QXL-WDDM-DOD driver. I'm not 100% sure
> that's included in latest spice-guest-tools but you can download
> it on spice-space.org/download.html page.

The way I installed the drivers was through the Windows VirtIO ISO (latest
stable) from the fedoraproject website.

For the VM installation I mounted both the Windows 10 and VirtIO ISOs, and
during Windows installation process, in the disk selection step (where of
course there was no recognized disk drive), this is where I manually loaded
all drivers: viostor, NetKVM, Balloon, vioserial, and qxldod; all of them
under w10/amd64 directory.

However, since I was totally clueless about how to manually install the
SPICE agent in the Windows VM (until much later, when I was able to find a
SPICE manual...), I ended up just running the spice-guest-tools installer.
Guess this also overwrote many stuff...

FWIW, and asking permission beforehand to briefly go offtopic, I was at
first very confused about whether using VirtIO ISO or spice-guest-tools
installer for all the virtualization device stuff since both ship the very
same driver set. In another forum I was told the Fedora ISO usually shipped
more updated versions, so this is why I preferred this manual way. User
also commented, in subjective tone, that maybe some more coordination
between Fedora and SPICE teams would be good to avoid different versions,
but I have no word about this.

Also, I read in Proxmox documentation that SCSI disk drive was in its way
to replace VirtIO disk hence why Proxmox now selects this by default, but
trying selecting SCSI as disk type here (openSUSE 42.3 using libvirt) made
Windows installer unable to recognize any disk device, so had to go back to
VirtIO disk.



> I would suggest trying some SSD.

I know about it, but I'm currently unable to get one. Besides I don't know
how much worth would it be for an old -yet functional enough- rig...



> But some correct configuration is expected too as we do guest ->
> host -> client communication.
>
> Would be nice to share your domain information like:
> # virsh dumpxml $my-windows-guest

Done as root user, since as standard user virsh showed no VM at all neither
running nor shutdown.

# virsh dumpxml win10
<domain type='kvm'>
  <name>win10</name>
  <uuid>8c4944b8-8edc-4f77-99e5-b576b8a3e89f</uuid>
  <memory unit='KiB'>3145728</memory>
  <currentMemory unit='KiB'>2097152</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.9'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
    </hyperv>
    <vmport state='off'/>
  </features>
  <cpu mode='custom' match='exact' check='partial'>
    <model fallback='allow'>Nehalem</model>
  </cpu>
  <clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
    <timer name='hypervclock' present='yes'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <pm>
    <suspend-to-mem enabled='no'/>
    <suspend-to-disk enabled='no'/>
  </pm>
  <devices>
    <emulator>/usr/bin/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/home/user1/VMs/win10.qcow2'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07'
function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <target dev='hdb' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05'
function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05'
function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05'
function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05'
function='0x2'/>
    </controller>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01'
function='0x1'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06'
function='0x0'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'/>
    <interface type='network'>
      <mac address='52:54:00:63:6f:c2'/>
      <source network='default'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03'
function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='spicevmc'>
      <target type='virtio' name='com.redhat.spice.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='tablet' bus='usb'>
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <graphics type='spice' autoport='yes'>
      <listen type='address'/>
      <image compression='off'/>
    </graphics>
    <sound model='ich6'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04'
function='0x0'/>
    </sound>
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1'
primary='yes'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02'
function='0x0'/>
    </video>
    <redirdev bus='usb' type='spicevmc'>
      <address type='usb' bus='0' port='2'/>
    </redirdev>
    <redirdev bus='usb' type='spicevmc'>
      <address type='usb' bus='0' port='3'/>
    </redirdev>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08'
function='0x0'/>
    </memballoon>
  </devices>
</domain>

#

Sorry, I didn't know how to get a xml dump for the Windows 10 VM installed
in the Proxmox server since Proxmox doesn't use libvirt and the VM .conf
file shows little to no information.



> Also, can you confirm that kvm is enabled in your host? That also
> should impact your guest's performance (but not related to remote
> protocol).
>
> - This would tell if you have the driver loaded
> # lsmod | grep -i kvm
>
> The domain xml could clarify if you are using it or not.

Done as standard user:

$ lsmod | grep -i kvm
kvm_intel             180224  0
kvm                   606208  1 kvm_intel
irqbypass              16384  1 kvm
$
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20180615/a0d6352a/attachment-0001.html>


More information about the Spice-devel mailing list