Re: Windows 10 KVM guest very slow in SPICE console

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
$
_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel

[Index of Archives]     [Linux Virtualization]     [Linux Virtualization]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]