qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] vfio/pci: IGD assignment


From: nicolas prochazka
Subject: [Qemu-devel] vfio/pci: IGD assignment
Date: Thu, 6 Oct 2016 08:06:24 +0200

Hello,
Since I upgrade my linux kernel from linux 4.8rc1 to 4.8.0, I can observe
regression with VFIO/PCI IGD Assignment .
All works very well with linux 4.8rc1 ( broadwell/skylake cpu + win10 guest
/ Linux Guest ) .
Since linux 4.8.0, Windows guest screen is a " blink pixel , multi color
blink , a matrix revisited.

Only linux kernel change between two test,
no log in qemu or dmesg.

Is there modification to vfio in kernel between 4.8rc1 and 4.8.0 ? , can i
test something.

Qemu version is 2.7.0
my libvirt configuration :
<domain type='kvm' id='2' xmlns:qemu='
http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>win10_sabrina</name>
  <uuid>7e3cc74f-e3c9-3753-a4dc-a63d5ff8c415</uuid>
  <memory unit='KiB'>14418944</memory>
  <currentMemory unit='KiB'>14417969</currentMemory>
  <memoryBacking>
    <hugepages/>
  </memoryBacking>
  <vcpu placement='static'>2</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='2'/>
    <vcpupin vcpu='1' cpuset='3'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.7'>hvm</type>
    <loader readonly='yes' type='rom'>/usr/share/seabios/bios.bin</loader>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hap/>
    <hyperv>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
    </hyperv>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='2' threads='1'/>
  </cpu>
  <clock offset='localtime'>
    <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.igd</emulator>
    <disk type='network' device='disk'>
      <driver name='qemu' type='raw'/>
      <source protocol='nbd'>
        <host transport='unix' socket='/tmp/win10_sabrina.ctl'/>
      </source>
      <backingStore/>
      <target dev='hda' bus='ide'/>
      <alias name='ide0-0-0'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='network' device='disk'>
      <driver name='qemu' type='raw'/>
      <source protocol='nbd'>
        <host transport='unix' socket='/tmp/swap.ctl'/>
      </source>
      <backingStore/>
      <target dev='hdb' bus='ide'/>
      <alias name='ide0-0-1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <controller type='usb' index='0'>
      <alias name='usb0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01'
function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='ide' index='0'>
      <alias name='ide0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01'
function='0x1'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04'
function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='ac:de:50:7d:88:85'/>
      <source bridge='switch0'/>
      <vlan>
        <tag id='0'/>
      </vlan>
      <virtualport type='openvswitch'>
        <parameters interfaceid='1fa42874-b2aa-44c6-88da-2203088ce6f9'/>
      </virtualport>
      <target dev='vnet0'/>
      <model type='e1000'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03'
function='0x0'/>
    </interface>
    <channel type='unix'>
      <source mode='bind'
path='/var/lib/libvirt/qemu/channel/target/win10_sabrina.org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0'
state='connected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
      </source>
      <alias name='hostdev0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02'
function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x00' slot='0x14' function='0x0'/>
      </source>
      <alias name='hostdev1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05'
function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x00' slot='0x1f' function='0x3'/>
      </source>
      <alias name='hostdev2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06'
function='0x0'/>
    </hostdev>
    <memballoon model='none'>
      <alias name='balloon0'/>
    </memballoon>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-netdev
user,id=user.0,restrict=on,hostfwd=tcp:127.0.0.1:5901-:5900 -device
e1000,netdev=user.0'/>
  </qemu:commandline>
</domain>


qemu cmd line : qemu-nbd --aio=native --discard=unmap --detect-zeroes=on
--cache=none /data/VMS/win10_sabrina/hda.qcow2 -k /tmp/win10_sabrina.ctl -t
13930 root       0:00 qemu-nbd --cache=unsafe -s --discard=unmap
--detect-zeroes=on /swap.ntfs -k /tmp/swap.ctl -t
14013 root     305:17 /usr/bin/qemu-system-x86_64.igd -name win10_sabrina
-S -machine pc-i440fx-2.7,accel=kvm,usb=off -cpu
host,hv_time,hv_relaxed,hv_vapic,hv_spinlocks=0x1fff -bios
/usr/share/seabios/bios.bin -m 14081 -mem-prealloc -mem-path
/dev/hugepages/libvirt/qemu -realtime mlock=off -smp
2,sockets=1,cores=2,threads=1 -uuid 7e3cc74f-e3c9-3753-a4dc-a63d5ff8c415
-nographic -no-user-config -nodefaults -chardev
socket,id=charmonitor,path=/var/lib/libvirt/qemu/win10_sabrina.monitor,server,nowait
-mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime
-no-hpet -no-shutdown -global PIIX4_PM.disable_s3=1 -global
PIIX4_PM.disable_s4=1 -boot strict=on -device
piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device
virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x4 -drive
file=nbd:unix:/tmp/win10_sabrina.ctl,if=none,id=drive-ide0-0-0,format=raw
-device
ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -drive
file=nbd:unix:/tmp/swap.ctl,if=none,id=drive-ide0-0-1,format=raw -device
ide-hd,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1 -netdev
tap,fd=20,id=hostnet0 -device
e1000,netdev=hostnet0,id=net0,mac=ac:de:50:7d:88:85,bus=pci.0,addr=0x3
-chardev
socket,id=charchannel0,path=/var/lib/libvirt/qemu/channel/target/win10_sabrina.org.qemu.guest_agent.0,server,nowait
-device
virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0
-device vfio-pci,host=00:02.0,id=hostdev0,bus=pci.0,addr=0x2 -device
vfio-pci,host=00:14.0,id=hostdev1,bus=pci.0,addr=0x5 -device
vfio-pci,host=00:1f.3,id=hostdev2,bus=pci.0,addr=0x6 -netdev
user,id=user.0,restrict=on,hostfwd=tcp:127.0.0.1:5901-:5900 -device
e1000,netdev=user.0 -msg timestamp=on



Regards,
Nicolas Prochazka


reply via email to

[Prev in Thread] Current Thread [Next in Thread]