darthkielbasa Posted June 26, 2023 Share Posted June 26, 2023 (edited) Looking for a push in the right direction. I've had GPU passthrough working for quite a while until today. I swapped GPUs for a bit and reinstalled the original. The GPU i tested sucked so I rolled back to my original, AMD RX570X. I was able to boot a VM successfully once. Now unraid is complaining about VFIO_MAP_DMA failed: Invalid argument What I've done so far: Rebooted Bind/Unbind GPU Reseated GPU I've searched a bit but couldn't find a solution to this problem. Any ideas? I've attached my diagnostics. Current GPU: AMD RX570x Error: qemu-system-x86_64: VFIO_MAP_DMA failed: Invalid argument Unraid 6.12.1 Edit: Attached additional error msg ashla-234-diagnostics-20230626-1718.zip Edited June 26, 2023 by darthkielbasa Quote Link to comment
mackid1993 Posted June 28, 2023 Share Posted June 28, 2023 (edited) I'm seeing this as well but my VM starts and my GPU passes through just fine. I'm wondering if this is a bug. I'm seeing this with a Quadro P400 on Win 11. Edited June 28, 2023 by mackid1993 Quote Link to comment
darthkielbasa Posted June 29, 2023 Author Share Posted June 29, 2023 1 hour ago, mackid1993 said: I'm seeing this as well but my VM starts and my GPU passes through just fine. I'm wondering if this is a bug. I'm seeing this with a Quadro P400 on Win 11. I'm passing through an AMD Dell RX570x w/ windows 10. I had a few Linux VMs passing thorugh the same GPU w/ no problem. I rolled back to 6.11.5 now i'm all good. Quote Link to comment
mackid1993 Posted June 29, 2023 Share Posted June 29, 2023 20 hours ago, darthkielbasa said: I'm passing through an AMD Dell RX570x w/ windows 10. I had a few Linux VMs passing thorugh the same GPU w/ no problem. I rolled back to 6.11.5 now i'm all good. It must be a 6.12 bug. Personally it's not causing an issue for me. Quote Link to comment
Donkie Posted July 15, 2023 Share Posted July 15, 2023 Had this issue too in 6.12.1, updating to 6.12.3 fixed it. Quote Link to comment
0xMDIV Posted July 15, 2023 Share Posted July 15, 2023 2 hours ago, Donkie said: Had this issue too in 6.12.1, updating to 6.12.3 fixed it. Updated aswell, but vm still doesnt work, well it boots and then starts automatic repair, but vfio_map_dma failed is still there Quote Link to comment
snolly Posted October 14, 2023 Share Posted October 14, 2023 Same issue in 6.12.4 - Windows 11 VM with direct pass through of an RTX3080ti and an NVME disk. It takes a couple of minute for the unraid boot logo to show up (in this time log gets filled with this exact error) but then the VM boots and works properly. Quote Link to comment
cURLY Posted November 30, 2023 Share Posted November 30, 2023 Do You have a solution? Quote Link to comment
snolly Posted November 30, 2023 Share Posted November 30, 2023 Nope this still happens Quote Link to comment
Leandres Posted December 14, 2023 Share Posted December 14, 2023 Is this fixed yet? I'm experiencing this also. Quote Link to comment
snolly Posted December 15, 2023 Share Posted December 15, 2023 Mine fixed itself after editing the VM config because I changed some hardware. After saving it with the new config (new SSD direct pass through) it fixed this annoying bug. Quote Link to comment
ich777 Posted December 23, 2023 Share Posted December 23, 2023 18 hours ago, Evolze said: My thought process is: If I'm able to transfer these older OVMF files from 6.11.5 to 6.12.6, along with pointing them to my NVIDIA-specific VMs, perhaps these errors will go away? Please remove your guide if possible! This will certainly cause issues for users if they upgrade or modify the libvirt.img in any way, instead I would recommend that you install the files which ship with Unraid 6.11.x via this method, please make sure that you first stop all of your VMs in the first place and then execute these commands from a terminal: mkdir -p /tmp/edk2 cd /tmp/edk2 wget -O /tmp/edk2/edk2.txz https://github.com/ich777/edk2-unraid/releases/download/edk2-stable202305/ovmf-stable202305-x86_64-3.txz installpkg /tmp/edk2/edk2.txz rm -rf /tmp/edk2 This will install the edk2 firmware files from 6.11.5 (should be the build from 202305 - build 3). BTW, you can find all the builds from edk2 over here. 2 1 Quote Link to comment
SimonF Posted December 23, 2023 Share Posted December 23, 2023 @EvolzeYou could put the package into /boot/extra to be installed at boot. Quote Link to comment
Evolze Posted December 24, 2023 Share Posted December 24, 2023 On 12/23/2023 at 1:02 AM, ich777 said: mkdir -p /tmp/edk2 cd /tmp/edk2 wget -O /tmp/edk2/edk2.txz https://github.com/ich777/edk2-unraid/releases/download/edk2-stable202305/ovmf-stable202305-x86_64-3.txz installpkg /tmp/edk2/edk2.txz rm -rf /tmp/edk2 @ich777 Removed my temporary workaround guide above. I had no idea it could cause issues to the libvirt.img, so I appreciate you mentioning this! Out of curiosity, what would happen to the libvirt image using the temp fix I mentioned? Curious as I don't believe I encountered any issues, but then again, I only tested this with one test GPU passthrough VM. 😀 I haven't tried these commands yet, but I am wondering -- does this override the default 6.12.x OVMF files in /usr/share/qemu? Or does it create a separate directory and all affected VMs would need to be updated to point to those edk2 OVMF files? I also ask as in my workaround, I mentioned copying the 6.11.x files to that directory as this issue only seemed to impact GPU-based VMs as others using VNC didn't seem to be impacted. That way, both OVMF file versions could co-exist at once (if that makes sense). 😀 Nonetheless, thanks again for this! Looking forward to trying this out in the coming days. ----- @SimonF thanks for this too! I've only installed plugins and extensions via the CA, so I was curious how manually plugin installs would persist across reboots. 1 Quote Link to comment
SimonF Posted December 24, 2023 Share Posted December 24, 2023 24 minutes ago, Evolze said: @ich777 Removed my temporary workaround guide above. I had no idea it could cause issues to the libvirt.img, so I appreciate you mentioning this! Out of curiosity, what would happen to the libvirt image using the temp fix I mentioned? Curious as I don't believe I encountered any issues, but then again, I only tested this with one test GPU passthrough VM. 😀 I haven't tried these commands yet, but I am wondering -- does this override the default 6.12.x OVMF files in /usr/share/qemu? Or does it create a separate directory and all affected VMs would need to be updated to point to those edk2 OVMF files? I also ask as in my workaround, I mentioned copying the 6.11.x files to that directory as this issue only seemed to impact GPU-based VMs as others using VNC didn't seem to be impacted. That way, both OVMF file versions could co-exist at once (if that makes sense). 😀 Nonetheless, thanks again for this! Looking forward to trying this out in the coming days. ----- @SimonF thanks for this too! I've only installed plugins and extensions via the CA, so I was curious how manually plugin installs would persist across reboots. If you install the package into /boot/extra it will install into the /usr/share/qemu at boot overwriting the existing files. libvirt image is just a persistent storage location that is mapped to /etc/libvirt in the file system. 1 Quote Link to comment
ich777 Posted December 25, 2023 Share Posted December 25, 2023 13 hours ago, Evolze said: That way, both OVMF file versions could co-exist at once (if that makes sense). 😀 You don‘t have to do that because the VMs should work fine even if you i stall the older version. However it seems really strange to me that you have issues with the new version since nothing should have changed, but I haven‘t gone through the source from the files what could cause this and haven‘t got a chnce to look into the conversation that you‘ve linked above (Christmas and holidays…). Quote Link to comment
Evolze Posted December 26, 2023 Share Posted December 26, 2023 (edited) On 12/25/2023 at 12:30 AM, ich777 said: However it seems really strange to me that you have issues with the new version since nothing should have changed, but I haven‘t gone through the source from the files what could cause this and haven‘t got a chnce to look into the conversation that you‘ve linked above (Christmas and holidays…). Understood, sounds good. Thanks again for taking a look at this - especially during this time of the year! I deleted my original temp workaround a few days ago, but did manage to save a copy of the Arch Linux bug report and Tianocore GitHub discussion (Oct 2022) I had mentioned, if that's what you were referring to? I also had a chance to look at your edk2-unraid repo w/looking at the compile shell script, and I see what you mean. Hopefully, nothing too drastic was changed between the newer versions. ------------------------- On a completely separate note, out of curiosity regarding your compile.sh script, where are these variables stored or fetched from? Are they set in GitHub, your personal system, or via the tianocore repo? I'm able to follow most of it but am a bit lost on where the directory locations are being called and stored. 😀 ${DATA_DIR} ${LAT_V} ${LAT_V##*-} Edited December 26, 2023 by Evolze Quote Link to comment
ich777 Posted December 26, 2023 Share Posted December 26, 2023 1 hour ago, Evolze said: if that's what you were referring to? Yes, but I haven't looked into that yet. 1 hour ago, Evolze said: regarding your compile.sh script 1 hour ago, Evolze said: ${DATA_DIR} This is just the main directory where you want to compile in, doesn't matter where. 1 hour ago, Evolze said: ${LAT_V} This is just the tag from here. 2 hours ago, Evolze said: ${LAT_V##*-} This is just a shell expansion from the version from above. 1 Quote Link to comment
sonofdbn Posted January 2 Share Posted January 2 I have the same error message (qemu-system-x86_64: VFIO_MAP_DMA failed: Invalid argument) on my Win11 VM with Nvidia 4070 passthrough. Nothing else passed through. I'm on 6.12.6. However, the VM seems fine, except that recently (and I don't think I changed anything) it pauses (sleeps?) soon after I disconnect my Remote Desktop and today I woke it up but couldn't get back into it from Remote Desktop except via Force Stop and then Start. Quote Link to comment
sonofdbn Posted January 7 Share Posted January 7 Any update on this? While I can't be sure that this issue is the cause, I'm now unable to Remote Desktop in to my Win11 VM. The VM tab in the GUI claims the VM is running, but the error log has many lines with that error message, and the (isolated) VM CPUs show 0% activity on the GUI Dashboard. So it seems to me that the VM is not actually running. Quote Link to comment
sonofdbn Posted January 8 Share Posted January 8 My bad. I found that the SSD cache drive with the VM was full (thanks to a Fix Common Problems notification - I'd been ignoring the disk utilisation messages). Once I cleared some space the VM worked fine again (although the error message still appears in the log). Quote Link to comment
lzrdking71 Posted February 9 Share Posted February 9 (edited) I am on unraid 6.12.6 and am seeing this same error in my windows 11 vm logs when passing through a 3060ti gpu on and Intel 13900k system. I have the gpu stubbed out and the vm starts but have no idea how to fix the vm so the errors don't occur. @ich777 and @SimonF, I tried the below and it did not resolve the issue, any ideas? On 12/23/2023 at 1:02 AM, ich777 said: Please remove your guide if possible! This will certainly cause issues for users if they upgrade or modify the libvirt.img in any way, instead I would recommend that you install the files which ship with Unraid 6.11.x via this method, please make sure that you first stop all of your VMs in the first place and then execute these commands from a terminal: mkdir -p /tmp/edk2 cd /tmp/edk2 wget -O /tmp/edk2/edk2.txz https://github.com/ich777/edk2-unraid/releases/download/edk2-stable202305/ovmf-stable202305-x86_64-3.txz installpkg /tmp/edk2/edk2.txz rm -rf /tmp/edk2 This will install the edk2 firmware files from 6.11.5 (should be the build from 202305 - build 3). BTW, you can find all the builds from edk2 over here. Update: If I use the commands above and install OVMF for QEMU - edk2-stable202208, the errors in the log go away. I did this working my way back from the newest version and all of the other versions did produce the errors in the log. Edited February 10 by lzrdking71 update Quote Link to comment
mackid1993 Posted February 10 Share Posted February 10 I've been getting these errors for months and have no adverse effects from them minus the errors in the log. My VM is super stable and GPU passthrough works fine. Quote Link to comment
Juugis Posted February 14 Share Posted February 14 Using intel i5 13500. Seeing these warnings on both linux and windows vms. GPU pastrough works fine, but my idle power usage on windows is 20w higher than linux, tested with and without GPU, the issue is with CPU. Quote Link to comment
WobbleBobble2 Posted February 20 Share Posted February 20 On 12/23/2023 at 12:02 AM, ich777 said: I would recommend that you install the files which ship with Unraid 6.11.x via this method, please make sure that you first stop all of your VMs in the first place and then execute these commands from a terminal: mkdir -p /tmp/edk2 cd /tmp/edk2 wget -O /tmp/edk2/edk2.txz https://github.com/ich777/edk2-unraid/releases/download/edk2-stable202305/ovmf-stable202305-x86_64-3.txz installpkg /tmp/edk2/edk2.txz rm -rf /tmp/edk2 This will install the edk2 firmware files from 6.11.5 (should be the build from 202305 - build 3). Ok I installed the edk2 firmware from 6.11.5 as directed above, however I am still getting the same VFIO_MAP_DMA errors. I've attached my diagnostics but the basic situation is I have a 12600k and am trying to pass through the iGPU to a windows 10 VM. I am using the SR-IOV plug in currently under development here. The author of that plug in has said the issue is not related to SR-IOV. text error warn system array login 2024-02-20T05:20:41.404687Z qemu-system-x86_64: vfio_dma_map(0x1483cec48800, 0x381000000000, 0x20000000, 0x1483aca00000) = -22 (Invalid argument) 2024-02-20T05:20:42.966784Z qemu-system-x86_64: VFIO_MAP_DMA failed: Invalid argument 2024-02-20T05:20:42.966833Z qemu-system-x86_64: vfio_dma_map(0x1483cec48800, 0x381000000000, 0x20000000, 0x1483aca00000) = -22 (Invalid argument) 2024-02-20T05:20:43.017611Z qemu-system-x86_64: VFIO_MAP_DMA failed: Invalid argument 2024-02-20T05:20:43.017651Z qemu-system-x86_64: vfio_dma_map(0x1483cec48800, 0x381000000000, 0x20000000, 0x1483aca00000) = -22 (Invalid argument) 2024-02-20T05:20:43.072592Z qemu-system-x86_64: VFIO_MAP_DMA failed: Invalid argument 2024-02-20T05:20:43.072615Z qemu-system-x86_64: vfio_dma_map(0x1483cec48800, 0x381000000000, 0x20000000, 0x1483aca00000) = -22 (Invalid argument) 2024-02-20T05:20:43.108840Z qemu-system-x86_64: VFIO_MAP_DMA failed: Invalid argument 2024-02-20T05:20:43.108863Z qemu-system-x86_64: vfio_dma_map(0x1483cec48800, 0x381000000000, 0x20000000, 0x1483aca00000) = -22 (Invalid argument) 2024-02-20T05:20:44.578237Z qemu-system-x86_64: VFIO_MAP_DMA failed: Invalid argument 2024-02-20T05:20:44.578261Z qemu-system-x86_64: vfio_dma_map(0x1483cec48800, 0x381000000000, 0x20000000, 0x1483aca00000) = -22 (Invalid argument) 2024-02-20T05:21:43.977750Z qemu-system-x86_64: terminating on signal 15 from pid 18602 (/usr/sbin/libvirtd) 2024-02-20 05:21:44.402+0000: shutting down, reason=shutdown 2024-02-20 17:53:18.103+0000: starting up libvirt version: 8.7.0, qemu version: 7.2.0, kernel: 6.1.64-Unraid, hostname: HAL9000 LC_ALL=C \ PATH=/bin:/sbin:/usr/bin:/usr/sbin \ HOME='/var/lib/libvirt/qemu/domain-8-Windows 10' \ XDG_DATA_HOME='/var/lib/libvirt/qemu/domain-8-Windows 10/.local/share' \ XDG_CACHE_HOME='/var/lib/libvirt/qemu/domain-8-Windows 10/.cache' \ XDG_CONFIG_HOME='/var/lib/libvirt/qemu/domain-8-Windows 10/.config' \ /usr/local/sbin/qemu \ -name 'guest=Windows 10,debug-threads=on' \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain-8-Windows 10/master-key.aes"}' \ -blockdev '{"driver":"file","filename":"/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd","node-name":"libvirt-pflash0-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-pflash0-format","read-only":true,"driver":"raw","file":"libvirt-pflash0-storage"}' \ -blockdev '{"driver":"file","filename":"/etc/libvirt/qemu/nvram/9ff111d8-9ac0-34f8-4fdf-cbc8b866a6fa_VARS-pure-efi.fd","node-name":"libvirt-pflash1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-pflash1-format","read-only":false,"driver":"raw","file":"libvirt-pflash1-storage"}' \ -machine pc-i440fx-7.2,usb=off,dump-guest-core=off,mem-merge=off,memory-backend=pc.ram,pflash0=libvirt-pflash0-format,pflash1=libvirt-pflash1-format \ -accel kvm \ -cpu host,migratable=on,hv-time=on,hv-relaxed=on,hv-vapic=on,hv-spinlocks=0x1fff,hv-vendor-id=none,host-cache-info=on,l3-cache=off \ -m 16384 \ -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":17179869184}' \ -overcommit mem-lock=off \ -smp 8,sockets=1,dies=1,cores=4,threads=2 \ -uuid 9ff111d8-9ac0-34f8-4fdf-cbc8b866a6fa \ -display none \ -no-user-config \ -nodefaults \ -chardev socket,id=charmonitor,fd=35,server=on,wait=off \ -mon chardev=charmonitor,id=monitor,mode=control \ -rtc base=localtime \ -no-hpet \ -no-shutdown \ -boot strict=on \ -device '{"driver":"pci-bridge","chassis_nr":1,"id":"pci.1","bus":"pci.0","addr":"0x3"}' \ -device '{"driver":"pci-bridge","chassis_nr":2,"id":"pci.2","bus":"pci.0","addr":"0x6"}' \ -device '{"driver":"pci-bridge","chassis_nr":3,"id":"pci.3","bus":"pci.0","addr":"0xb"}' \ -device '{"driver":"pci-bridge","chassis_nr":4,"id":"pci.4","bus":"pci.0","addr":"0x8"}' \ -device '{"driver":"pci-bridge","chassis_nr":5,"id":"pci.5","bus":"pci.0","addr":"0x9"}' \ -device '{"driver":"pci-bridge","chassis_nr":6,"id":"pci.6","bus":"pci.0","addr":"0xa"}' \ -device '{"driver":"ich9-usb-ehci1","id":"usb","bus":"pci.0","addr":"0x7.0x7"}' \ -device '{"driver":"ich9-usb-uhci1","masterbus":"usb.0","firstport":0,"bus":"pci.0","multifunction":true,"addr":"0x7"}' \ -device '{"driver":"ich9-usb-uhci2","masterbus":"usb.0","firstport":2,"bus":"pci.0","addr":"0x7.0x1"}' \ -device '{"driver":"ich9-usb-uhci3","masterbus":"usb.0","firstport":4,"bus":"pci.0","addr":"0x7.0x2"}' \ -device '{"driver":"ahci","id":"sata0","bus":"pci.0","addr":"0x4"}' \ -device '{"driver":"virtio-serial-pci","id":"virtio-serial0","bus":"pci.0","addr":"0x5"}' \ -blockdev '{"driver":"file","filename":"/mnt/user/domains/Windows 10/vdisk1.img","node-name":"libvirt-3-storage","cache":{"direct":false,"no-flush":false},"auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-3-format","read-only":false,"cache":{"direct":false,"no-flush":false},"driver":"raw","file":"libvirt-3-storage"}' \ -device '{"driver":"virtio-blk-pci","bus":"pci.0","addr":"0xc","drive":"libvirt-3-format","id":"virtio-disk2","bootindex":1,"write-cache":"on","serial":"vdisk1"}' \ -blockdev '{"driver":"file","filename":"/mnt/user/isos/Win10_22H2_English_x64v1.iso","node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-2-format","read-only":true,"driver":"raw","file":"libvirt-2-storage"}' \ -device '{"driver":"ide-cd","bus":"sata0.0","drive":"libvirt-2-format","id":"sata0-0-0","bootindex":2}' \ -blockdev '{"driver":"file","filename":"/mnt/user/isos/virtio-win-0.1.240-1.iso","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":true,"driver":"raw","file":"libvirt-1-storage"}' \ -device '{"driver":"ide-cd","bus":"sata0.1","drive":"libvirt-1-format","id":"sata0-0-1"}' \ -netdev tap,fd=36,id=hostnet0 \ -device '{"driver":"virtio-net","netdev":"hostnet0","id":"net0","mac":"52:54:00:73:76:08","bus":"pci.0","addr":"0x2"}' \ -chardev pty,id=charserial0 \ -device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0","index":0}' \ -chardev socket,id=charchannel0,fd=34,server=on,wait=off \ -device '{"driver":"virtserialport","bus":"virtio-serial0.0","nr":1,"chardev":"charchannel0","id":"channel0","name":"org.qemu.guest_agent.0"}' \ -device '{"driver":"usb-tablet","id":"input0","bus":"usb.0","port":"1"}' \ -audiodev '{"id":"audio1","driver":"none"}' \ -device '{"driver":"vfio-pci","host":"0000:00:02.1","id":"hostdev0","bus":"pci.6","addr":"0x10"}' \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \ -msg timestamp=on char device redirected to /dev/pts/0 (label charserial0) 2024-02-20T17:54:01.680257Z qemu-system-x86_64: VFIO_MAP_DMA failed: Invalid argument 2024-02-20T17:54:01.687495Z qemu-system-x86_64: vfio_dma_map(0x14f69d048800, 0x381000000000, 0x20000000, 0x14f67ae00000) = -2 (No such file or directory) 2024-02-20T17:54:01.745119Z qemu-system-x86_64: VFIO_MAP_DMA failed: Invalid argument 2024-02-20T17:54:01.745135Z qemu-system-x86_64: vfio_dma_map(0x14f69d048800, 0x381000000000, 0x20000000, 0x14f67ae00000) = -22 (Invalid argument) 2024-02-20T17:54:03.650076Z qemu-system-x86_64: VFIO_MAP_DMA failed: Invalid argument 2024-02-20T17:54:03.650107Z qemu-system-x86_64: vfio_dma_map(0x14f69d048800, 0x381000000000, 0x20000000, 0x14f67ae00000) = -22 (Invalid argument) 2024-02-20T17:54:03.679258Z qemu-system-x86_64: VFIO_MAP_DMA failed: Invalid argument 2024-02-20T17:54:03.679274Z qemu-system-x86_64: vfio_dma_map(0x14f69d048800, 0x381000000000, 0x20000000, 0x14f67ae00000) = -22 (Invalid argument) 2024-02-20T17:54:03.732239Z qemu-system-x86_64: VFIO_MAP_DMA failed: Invalid argument 2024-02-20T17:54:03.732283Z qemu-system-x86_64: vfio_dma_map(0x14f69d048800, 0x381000000000, 0x20000000, 0x14f67ae00000) = -22 (Invalid argument) 2024-02-20T17:54:03.764302Z qemu-system-x86_64: VFIO_MAP_DMA failed: Invalid argument 2024-02-20T17:54:03.764316Z qemu-system-x86_64: vfio_dma_map(0x14f69d048800, 0x381000000000, 0x20000000, 0x14f67ae00000) = -22 (Invalid argument) 2024-02-20T17:54:05.426380Z qemu-system-x86_64: VFIO_MAP_DMA failed: Invalid argument 2024-02-20T17:54:05.426401Z qemu-system-x86_64: vfio_dma_map(0x14f69d048800, 0x381000000000, 0x20000000, 0x14f67ae00000) = -22 (Invalid argument) hal9000-diagnostics-20240220-0955.zip Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.