<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link="#0563C1" vlink="#954F72"><div class=WordSection1><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:.2in;margin-left:0in;background:white'><span style='font-size:9.0pt;font-family:"Courier New";color:#333333'>When running multiple VMs with GPU passthrugh, both VMs will crash unless all virtual disks are on the same physical volume as root, likely on all X58 chipset motherboards. I've tested with 3.<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:.2in;margin-left:0in;background:white;max-width: 45em;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;widows: 2;-webkit-text-stroke-width: 0px;word-spacing:0px'><span style='font-size:9.0pt;font-family:"Courier New";color:#333333'>Expected Behavior: No Crash<br>Result: Both VMs GPU drivers fail and the guest OS are unrecoverable, usually within seconds, though the degree of "fickleness" of it depends on the multidisk setup.<br>Reproducibility: 100%<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:.2in;margin-left:0in;background:white;max-width: 45em;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;widows: 2;-webkit-text-stroke-width: 0px;word-spacing:0px'><span style='font-size:9.0pt;font-family:"Courier New";color:#333333'>Steps to reproduce:<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:.2in;margin-left:0in;background:white;max-width: 45em;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;widows: 2;-webkit-text-stroke-width: 0px;word-spacing:0px'><span style='font-size:9.0pt;font-family:"Courier New";color:#333333'>* Install OS (In my case Debian Jessie/Proxmox), and update to latest<br>* Setup VMs<br>* Setup up GPU passthrough with 1 GPU per VM, and one for host, as per<span class=apple-converted-space> </span><a href="https://pve.proxmox.com/wiki/Pci_passthrough"><span style='color:#0033AA'>https://pve.proxmox.com/wiki/Pci_passthrough</span></a><br>* Setup up USB passthrough<br>* Launch both VM<br>* Observe "everything is working"<br>* Stop VMs<br>* Add a second disk to one of the VMs, which exists on a separate physical disk from Host OS /<br>* Observe both VMs crash when the virtual disk which exists on separate physical media is used (i.e. copy files to the disk)<br>* Stop VMs<br>* Remove new disk, and move Guest OS virtual root disk to separate physical media.<br>* Observe both VMs crash around the time GPU driver is loaded on one<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:.2in;margin-left:0in;background:white;max-width: 45em;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;widows: 2;-webkit-text-stroke-width: 0px;word-spacing:0px'><span style='font-size:9.0pt;font-family:"Courier New";color:#333333'>As I mentioned earlier, there is some degree of difference in how difficult it is to trigger a crash, depending on the multidisk setup. For instance, when / is ZFS, and the virtual disks exist on a separate ZFS raid-z volume, both VMs must be doing some relatively intensive HW 3d acceleration in order to trigger the crash.<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:.2in;margin-left:0in;background:white;max-width: 45em;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;widows: 2;-webkit-text-stroke-width: 0px;word-spacing:0px'><span style='font-size:9.0pt;font-family:"Courier New";color:#333333'>Passing two GPU to one VM works fine all the time, and running either VM on its in general will not trigger a crash.<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:.2in;margin-left:0in;background:white;max-width: 45em;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;widows: 2;-webkit-text-stroke-width: 0px;word-spacing:0px'><span style='font-size:9.0pt;font-family:"Courier New";color:#333333'>There are many variables I have yet to test, such as using sata instead of virtio for the virtual disks, however unfortunately I do not have anything from std err or logs to indicate what the problem could be.<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:.2in;margin-left:0in;background:white;max-width: 45em;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;widows: 2;-webkit-text-stroke-width: 0px;word-spacing:0px'><span style='font-size:9.0pt;font-family:"Courier New";color:#333333'>kernel verion: Linux test-ve 4.4.15-1-pve (other versions >= 4.2.1 and <= 4.7.? tested)<br>qemu version: 2.6.0 pve-qemu-kvm_2.6-1<br>motherboards tested: rampage iii, ga-ex58-ud5, asus Psomething<br>CPUs tested: i7 920, X5670<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:.2in;margin-left:0in;background:white;max-width: 45em;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;widows: 2;-webkit-text-stroke-width: 0px;word-spacing:0px'><span style='font-size:9.0pt;font-family:"Courier New";color:#333333'>KVM invocation 1:<o:p></o:p></span></p><p style='background:white;max-width: 45em;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;widows: 2;-webkit-text-stroke-width: 0px;word-spacing:0px' id="yui_3_10_3_1_1478380447352_1500"><span style='font-size:9.0pt;font-family:"Courier New";color:#333333'>/usr/bin/kvm \<br>-id 101 \<br>-chardev socket,id=qmp,path=/var/run/qemu-server/101.qmp,server,nowait \<br>-mon chardev=qmp,mode=control \<br>-pidfile /var/run/qemu-server/101.pid \<br>-daemonize \<br>-smbios type=1,uuid=450e337e-244c-429b-9aa8-afb7aee037e8 \<br>-drive if=pflash,format=raw,readonly,file=/usr/share/kvm/OVMF-pure-efi.fd \<br>-drive if=pflash,format=raw,file=/root/101-OVMF_VARS-pure-efi.fd \<br>-name Madzia-PC \<br>-smp 12,sockets=1,cores=12,maxcpus=12 \<br>-nodefaults \<br>-boot menu=on,strict=on,reboot-timeout=1000 \<br>-vga none \<br>-nographic \<br>-no-hpet \<br>-cpu host,hv_vendor_id=Nvidia43FIX,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_reset,hv_vpindex,hv_runtime,hv_relaxed,+kvm_pv_unhalt,+kvm_pv_eoi,kvm=off \<br>-m 8192 \<br>-object memory-backend-ram,id=ram-node0,size=8192M \<br>-numa node,nodeid=0,cpus=0-11,memdev=ram-node0 \<br>-k en-us -readconfig /usr/share/qemu-server/pve-q35.cfg \<br>-device usb-tablet,id=tablet,bus=ehci.0,port=1 \<br>-device vfio-pci,host=04:00.0,id=hostpci0,bus=ich9-pcie-port-1,addr=0x0 \<br>-device vfio-pci,host=04:00.1,id=hostpci1,bus=ich9-pcie-port-2,addr=0x0 \<br>-device usb-host,hostbus=1,hostport=6.1,id=usb0 \<br>-device usb-host,hostbus=1,hostport=6.2.1,id=usb1 \<br>-device usb-host,hostbus=1,hostport=6.2.2,id=usb2 \<br>-device usb-host,hostbus=1,hostport=6.2.3,id=usb3 \<br>-device usb-host,hostbus=1,hostport=6.2,id=usb4 \<br>-device usb-host,hostbus=1,hostport=6.3,id=usb5 \<br>-device usb-host,hostbus=1,hostport=6.4,id=usb6 \<br>-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \<br>-iscsi initiator-name=iqn.1993-08.org.debian:01:3f3df5515b13 \<br>-drive file=/dev/pve/vm-101-disk-1,if=none,id=drive-virtio0,cache=writeback,format=raw,aio=threads,detect-zeroes=on \<br>-device virtio-blk-pci,drive=drive-virtio0,id=virtio0,bus=pci.0,addr=0xa,bootindex=100 \<br>-drive 'file=/dev/zvol/rpool/data/vm-110-disk-2,if=none,id=drive-virtio1,cache=writeback,format=raw,aio=threads,detect-$<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:.2in;margin-left:0in;background:white'><span style='font-size:9.0pt;font-family:"Courier New";color:#333333'>-device 'virtio-blk-pci,drive=drive-virtio1,id=virtio1,bus=pci.0,addr=0xb' \<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:.2in;margin-left:0in;background:white'><span style='font-size:9.0pt;font-family:"Courier New";color:#333333'>-netdev type=tap,id=net0,ifname=tap101i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on \<br>-device virtio-net-pci,mac=4E:DD:47:D7:DF:C9,netdev=net0,bus=pci.0,addr=0x12,id=net0 \<br>-rtc driftfix=slew,base=localtime \<br>-machine type=q35 \<br>-global kvm-pit.lost_tick_policy=discard<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:.2in;margin-left:0in;background:white'><span style='font-size:9.0pt;font-family:"Courier New";color:#333333'>KVM invocation 2:<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:.2in;margin-left:0in;background:white;max-width: 45em;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;widows: 2;-webkit-text-stroke-width: 0px;word-spacing:0px' id="yui_3_10_3_1_1478380447352_1529"><span style='font-size:9.0pt;font-family:"Courier New";color:#333333'>/usr/bin/kvm \<br>-id 102 \<br>-chardev socket,id=qmp,path=/var/run/qemu-server/102.qmp,server,nowait \<br>-mon chardev=qmp,mode=control \<br>-pidfile /var/run/qemu-server/102.pid \<br>-daemonize \<br>-smbios type=1,uuid=450e337e-244c-429b-9aa8-afb7aee037e8 \<br>-drive if=pflash,format=raw,readonly,file=/usr/share/kvm/OVMF-pure-efi.fd \<br>-drive if=pflash,format=raw,file=/root/102-OVMF_VARS-pure-efi.fd \<br>-name Madzia-PC \<br>-smp 12,sockets=1,cores=12,maxcpus=12 \<br>-nodefaults \<br>-boot menu=on,strict=on,reboot-timeout=1000 \<br>-vga none \<br>-nographic \<br>-no-hpet \<br>-cpu host,hv_vendor_id=Nvidia43FIX,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_reset,hv_vpindex,hv_runtime,hv_relaxed,+kvm_pv_unhalt,+kvm_pv_eoi,kvm=off \<br>-m 512 \<br>-object memory-backend-ram,id=ram-node0,size=512M \<br>-numa node,nodeid=0,cpus=0-11,memdev=ram-node0 \<br>-k en-us \<br>-readconfig /usr/share/qemu-server/pve-q35.cfg \<br>-device usb-tablet,id=tablet,bus=ehci.0,port=1 \<br>-device vfio-pci,host=05:00.0,id=hostpci2,bus=ich9-pcie-port-3,addr=0x0 \<br>-device vfio-pci,host=05:00.1,id=hostpci3,bus=ich9-pcie-port-4,addr=0x0 \<br>-device usb-host,hostbus=2,hostport=2.1,id=usb0 \<br>-device usb-host,hostbus=2,hostport=2.2,id=usb1 \<br>-device usb-host,hostbus=2,hostport=2.3,id=usb2 \<br>-device usb-host,hostbus=2,hostport=2.4,id=usb3 \<br>-device usb-host,hostbus=2,hostport=2.5,id=usb4 \<br>-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \<br>-iscsi initiator-name=iqn.1993-08.org.debian:01:3f3df5515b13 \<br>-drive file=/dev/pve/vm-102-disk-1,if=none,id=drive-virtio0,cache=writeback,format=raw,aio=threads,detect-zeroes=on \<br>-device virtio-blk-pci,drive=drive-virtio0,id=virtio0,bus=pci.0,addr=0xa,bootindex=100 \<br>-netdev type=tap,id=net0,ifname=tap102i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on \<br>-device virtio-net-pci,mac=4E:DD:47:D7:DF:C9,netdev=net0,bus=pci.0,addr=0x12,id=net0 \<br>-rtc driftfix=slew,base=localtime \<br>-machine type=q35 \<br>-global kvm-pit.lost_tick_policy=discard<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:.2in;margin-left:0in;background:white;max-width: 45em;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;widows: 2;-webkit-text-stroke-width: 0px;word-spacing:0px'><span style='font-size:9.0pt;font-family:"Courier New";color:#333333'>Please let me know what additional information may be helpful, or how I can be of any assistance.<o:p></o:p></span></p></div></body></html>