Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

At wits end with Games crashing Windows VM with AMD passthrough

Featured Replies

Ive tried everything. Community drivers, old drivers, multiple re-installs. Same results. My AMD RX6750 passes through just fine however when i start games they load but then eventually freeze up and the VM becomes unresponsive. Im guessing I should have gone with nvidia but I didnt and hate to think I wasted $300. Here is my VM Config and diags. Is anything noticably wrong?

<?xml version='1.0' encoding='UTF-8'?>

<domain type='kvm'>

<name>Windows 11</name>

<uuid>4c428f86-dc51-5435-fafd-aa3a4e1581e0</uuid>

<metadata>

<vmtemplate xmlns="unraid" name="Windows 11" iconold="windows11.png" icon="windows11.png" os="windowstpm" webui="" storage="default"/>

</metadata>

<memory unit='KiB'>17301504</memory>

<currentMemory unit='KiB'>17301504</currentMemory>

<memoryBacking>

<nosharepages/>

</memoryBacking>

<vcpu placement='static'>8</vcpu>

<cputune>

<vcpupin vcpu='0' cpuset='12'/>

<vcpupin vcpu='1' cpuset='13'/>

<vcpupin vcpu='2' cpuset='14'/>

<vcpupin vcpu='3' cpuset='15'/>

<vcpupin vcpu='4' cpuset='16'/>

<vcpupin vcpu='5' cpuset='17'/>

<vcpupin vcpu='6' cpuset='18'/>

<vcpupin vcpu='7' cpuset='19'/>

</cputune>

<os>

<type arch='x86_64' machine='pc-q35-9.2'>hvm</type>

<loader readonly='yes' type='pflash' format='raw'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi-tpm.fd</loader>

<nvram format='raw'>/etc/libvirt/qemu/nvram/4c428f86-dc51-5435-fafd-aa3a4e1581e0_VARS-pure-efi-tpm.fd</nvram>

</os>

<features>

<acpi/>

<apic/>

<hyperv mode='custom'>

<relaxed state='on'/>

<vapic state='on'/>

<spinlocks state='on' retries='8191'/>

<vpindex state='on'/>

<synic state='on'/>

<stimer state='on'/>

<vendor_id state='on' value='none'/>

</hyperv>

</features>

<cpu mode='host-passthrough' check='none' migratable='on'>

<topology sockets='1' dies='1' clusters='1' cores='4' threads='2'/>

<cache mode='passthrough'/>

</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>restart</on_crash>

<devices>

<emulator>/usr/local/sbin/qemu</emulator>

<disk type='file' device='cdrom'>

<driver name='qemu' type='raw'/>

<source file='/mnt/user/ISOs/Win11_24H2_English_x64.iso'/>

<target dev='hda' bus='sata'/>

<readonly/>

<boot order='1'/>

<address type='drive' controller='0' bus='0' target='0' unit='0'/>

</disk>

<disk type='file' device='cdrom'>

<driver name='qemu' type='raw'/>

<source file='/mnt/user/ISOs/virtio-win-0.1.266-1.iso'/>

<target dev='hdb' bus='sata'/>

<readonly/>

<address type='drive' controller='0' bus='0' target='0' unit='1'/>

</disk>

<controller type='pci' index='0' model='pcie-root'/>

<controller type='pci' index='1' model='pcie-root-port'>

<model name='pcie-root-port'/>

<target chassis='1' port='0x8'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/>

</controller>

<controller type='pci' index='2' model='pcie-root-port'>

<model name='pcie-root-port'/>

<target chassis='2' port='0x9'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>

</controller>

<controller type='pci' index='3' model='pcie-root-port'>

<model name='pcie-root-port'/>

<target chassis='3' port='0xa'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>

</controller>

<controller type='pci' index='4' model='pcie-root-port'>

<model name='pcie-root-port'/>

<target chassis='4' port='0xb'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x3'/>

</controller>

<controller type='pci' index='5' model='pcie-root-port'>

<model name='pcie-root-port'/>

<target chassis='5' port='0xc'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x4'/>

</controller>

<controller type='pci' index='6' model='pcie-root-port'>

<model name='pcie-root-port'/>

<target chassis='6' port='0xd'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x5'/>

</controller>

<controller type='virtio-serial' index='0'>

<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>

</controller>

<controller type='sata' index='0'>

<address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>

</controller>

<controller type='usb' index='0' model='ich9-ehci1'>

<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>

</controller>

<controller type='usb' index='0' model='ich9-uhci1'>

<master startport='0'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/>

</controller>

<controller type='usb' index='0' model='ich9-uhci2'>

<master startport='2'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>

</controller>

<controller type='usb' index='0' model='ich9-uhci3'>

<master startport='4'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>

</controller>

<interface type='bridge'>

<mac address='52:54:00:c4:d9:aa'/>

<source bridge='br0'/>

<model type='virtio-net'/>

<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>

</interface>

<serial type='pty'>

<target type='isa-serial' port='0'>

<model name='isa-serial'/>

</target>

</serial>

<console type='pty'>

<target type='serial' port='0'/>

</console>

<channel type='unix'>

<target type='virtio' name='org.qemu.guest_agent.0'/>

<address type='virtio-serial' controller='0' bus='0' port='1'/>

</channel>

<input type='mouse' bus='ps2'/>

<input type='keyboard' bus='ps2'/>

<tpm model='tpm-tis'>

<backend type='emulator' version='2.0' persistent_state='yes'/>

</tpm>

<audio id='1' type='none'/>

<hostdev mode='subsystem' type='pci' managed='yes'>

<driver name='vfio'/>

<source>

<address domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>

</source>

<rom file='/mnt/user/isos/vbios/amdrx6750xt.rom'/>

<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>

</hostdev>

<hostdev mode='subsystem' type='pci' managed='yes'>

<driver name='vfio'/>

<source>

<address domain='0x0000' bus='0x03' slot='0x00' function='0x1'/>

</source>

<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>

</hostdev>

<hostdev mode='subsystem' type='pci' managed='yes'>

<driver name='vfio'/>

<source>

<address domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>

</source>

<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>

</hostdev>

<hostdev mode='subsystem' type='pci' managed='yes'>

<driver name='vfio'/>

<source>

<address domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>

</source>

<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>

</hostdev>

<hostdev mode='subsystem' type='usb' managed='no'>

<source>

<vendor id='0x046d'/>

<product id='0xc08b'/>

</source>

<address type='usb' bus='0' port='1'/>

</hostdev>

<hostdev mode='subsystem' type='usb' managed='no'>

<source>

<vendor id='0x1c4f'/>

<product id='0x0002'/>

</source>

<address type='usb' bus='0' port='2'/>

</hostdev>

<watchdog model='itco' action='reset'/>

<memballoon model='none'/>

</devices>

</domain>

tower-diagnostics-20250701-1707.zip

quite a bit is wrong in the XML. And I would advise you use host mode not vcpu select..

This will require editing the VMs xml...

image.png

as you have
Duplicate PCI Device Address Conflict

You have the following block:

<hostdev mode='subsystem' type='pci' managed='yes'>

<driver name='vfio'/>

<source>

<address domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>

</source>

<rom file='/mnt/user/isos/vbios/amdrx6750xt.rom'/>

<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>

</hostdev>

This same GPU is also listed in a second device:

<hostdev mode='subsystem' type='pci' managed='yes'>

<driver name='vfio'/>

<source>

<address domain='0x0000' bus='0x03' slot='0x00' function='0x1'/>

</source>

<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>

</hostdev>

And again:

<hostdev mode='subsystem' type='pci' managed='yes'>

<driver name='vfio'/>

<source>

<address domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>

</source>

<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>

</hostdev>

And again:

<hostdev mode='subsystem' type='pci' managed='yes'>

<driver name='vfio'/>

<source>

<address domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>

</source>

<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>

</hostdev>

this is causing conflts with device passthorugh...

These raise the following red flags:

  • You're assigning a device (or its function) from bus 0x03 slot 0x00 more than once (function 0x0 and 0x1). While it is technically valid to passthrough both a GPU and its HDMI audio device (function 0 and 1), you must be cautious that:

    • You don’t reassign the same physical PCI device's function to multiple virtual PCI slots unless it's intentional.

    • The final hostdev block for bus 0x06 slot 0x00 function 0x0 uses a PCI address that is both source and destination — this may cause conflicts or fail to start the VM.

so here is a cleaned up vm xml...

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>Windows 11</name>
  <uuid>4c428f86-dc51-5435-fafd-aa3a4e1581e0</uuid>
  <memory unit='KiB'>17301504</memory>
  <currentMemory unit='KiB'>17301504</currentMemory>
  <vcpu placement='static'>8</vcpu>
  <cpu mode='host-passthrough' check='none'>
    <topology sockets='1' cores='4' threads='2'/>
    <cache mode='passthrough'/>
  </cpu>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <os>
    <type arch='x86_64' machine='pc-q35-9.2'>hvm</type>
    <loader readonly='yes' type='pflash' format='raw'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi-tpm.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/4c428f86-dc51-5435-fafd-aa3a4e1581e0_VARS-pure-efi-tpm.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
      <vendor_id state='on' value='none'/>
    </hyperv>
  </features>
  <clock offset='localtime'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>

  <devices>
    <emulator>/usr/local/sbin/qemu</emulator>

    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/ISOs/Win11_24H2_English_x64.iso'/>
      <target dev='hda' bus='sata'/>
      <readonly/>
      <boot order='1'/>
    </disk>

    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/ISOs/virtio-win-0.1.266-1.iso'/>
      <target dev='hdb' bus='sata'/>
      <readonly/>
    </disk>

    <!-- Controllers -->
    <controller type='pci' index='0' model='pcie-root'/>
    <controller type='pci' index='1' model='pcie-root-port'/>
    <controller type='pci' index='2' model='pcie-root-port'/>
    <controller type='pci' index='3' model='pcie-root-port'/>
    <controller type='pci' index='4' model='pcie-root-port'/>
    <controller type='pci' index='5' model='pcie-root-port'/>
    <controller type='pci' index='6' model='pcie-root-port'/>
    <controller type='sata' index='0'/>
    <controller type='virtio-serial' index='0'/>
    <controller type='usb' index='0' model='ich9-ehci1'/>
    <controller type='usb' index='0' model='ich9-uhci1'/>
    <controller type='usb' index='0' model='ich9-uhci2'/>
    <controller type='usb' index='0' model='ich9-uhci3'/>

    <!-- Network -->
    <interface type='bridge'>
      <mac address='52:54:00:c4:d9:aa'/>
      <source bridge='br0'/>
      <model type='virtio-net'/>
    </interface>

    <!-- GPU passthrough (function 0: GPU) -->
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
      </source>
      <rom file='/mnt/user/isos/vbios/amdrx6750xt.rom'/>
      <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
    </hostdev>

    <!-- GPU HDMI Audio (function 1) -->
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x03' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x07' slot='0x01' function='0x0'/>
    </hostdev>

    <!-- USB passthrough devices -->
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc08b'/>
      </source>
      <address type='usb' bus='0' port='1'/>
    </hostdev>

    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x1c4f'/>
        <product id='0x0002'/>
      </source>
      <address type='usb' bus='0' port='2'/>
    </hostdev>

    <!-- Input and other devices -->
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <serial type='pty'>
      <target type='isa-serial' port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='unix'>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
    </channel>

    <tpm model='tpm-tis'>
      <backend type='emulator' version='2.0' persistent_state='yes'/>
    </tpm>

    <audio id='1' type='none'/>

    <watchdog model='itco' action='reset'/>

    <memballoon model='virtio'/>
  </devices>
</domain>

Review:
https://www.youtube.com/watch?v=QlTVANDndpM

Unraid uses libvirt XML Domain Configs to make and use QEMU/KVM VMs...
https://libvirt.org/formatdomain.html


Additionaly My personal Prefference is to remove vcpu and VM cpu pinning....

<vcpu placement='static'>8</vcpu> <cpu mode='host-passthrough' check='none'> <topology sockets='1' cores='4' threads='2'/> <cache mode='passthrough'/> </cpu>

I would delete Vcpu out right and set topolgy to match your CPU to allow the threads to the VM and let unraid loadbalcner handle CPU load for the VM...

delete:

 <vcpu placement='static'>8</vcpu>
  <cpu mode='host-passthrough' check='none'>
    <topology sockets='1' cores='4' threads='2'/>
    <cache mode='passthrough'/>
  </cpu>

and use:

<cpu mode='host-passthrough' check='none'>
    <topology sockets='1' cores='1' threads='8'/>
    <cache mode='passthrough'/>
  </cpu>
  • Author

Thank you so much I will try this. So unpin all of the CPUs from this VM as well as make the edits above?

  • Author

None of this worked sorry. Made all the adjustments. Unpinned CPUs and let unraid decide. DDU me display driver and installed from scratch. Booted great and windows itself is fine coming out from the AMD HDMI but first game i opened the VM crashes

If the VM boots and your in windos. verify device manger... i would suspect the rom file:

<rom file='/mnt/user/isos/vbios/amdrx6750xt.rom'/>

at this point. When doing GPU passthorugh I never specfied a rom file and had plenty of windwos VM and games runnign.

so remove the rom file line...

we also need to make sure the GPU is corectly setup for VFIO PCIE Passthorugh meaning taht the unraid host is not touching or using the G-card and only the VM wil use the G-card.

Please.... reviewing diag file to confirm correct vfio settings. Otherwise, its a issues of the host not letting go of the graphics card. amd reset bug.

  • Author

Yea I found that ROM online for that card and uploaded it to unraid. Ill remove the ROM line and try. LMK on the CFIO settings pleae and thanks!!!!!!

I see your using some grub edits

BOOT_IMAGE=/bzimage video=efifb:off,vesafb:off pcie_acs_override=multifunction vfio_iommu_type1.allow_unsafe_interrupts=1 initrd=/bzroot

this is close...

you also have a werid go file

modprobe i915

chmod -R 777 n/dev/dri

callig and manipulating g-cards...
yet your modprobe is blacklisting the
blacklist i915

go file is not a place for the modprobe go file is too ealry inteh boot porcess...

lspic -v and make sure the gcard say vfio-pci drvier in use...

vfio looks good otherwise..

success...

Device 1912:0014 at 0000:06:00.0 bound to vfio-pci

---

Devices listed in /sys/bus/pci/drivers/vfio-pci:

lrwxrwxrwx 1 root root 0 Jul 1 19:03 0000:03:00.0 -> ../../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/0000:03:00.0

lrwxrwxrwx 1 root root 0 Jul 1 19:03 0000:03:00.1 -> ../../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/0000:03:00.1

lrwxrwxrwx 1 root root 0 Jul 1 19:03 0000:04:00.0 -> ../../../../devices/pci0000:00/0000:00:06.0/0000:04:00.0

lrwxrwxrwx 1 root root 0 Jul 1 19:03 0000:06:00.0 -> ../../../../devices/pci0000:00/0000:00:1c.0/0000:06:00.0

vfio-pci binding complete

having a hard time narrowing down if this is on a intel or AMD motehrboard... I asume Intel given some other things...

libvirt log is showing some tiant and problems...
2025-07-01 19:53:05.730+0000: 20146: warning : qemuDomainObjTaintMsg:5481 : Domain id=4 name='Windows 11' uuid=4c428f86-dc51-5435-fafd-aa3a4e1581e0 is tainted: high-privileges

2025-07-01 20:19:25.196+0000: 20141: error : virNetSocketReadWire:1782 : End of file while reading data: Input/output error

Quite a bit we need to check go over and fix...
##############################################

IT IS KEY TO REBOOT AT THE STEPS!!! AS OPTIONS CHANGE AFTER EACH REBOOT AND SETTINGS!!!


First reveiw:

https://forums.unraid.net/topic/160112-gpu-passthrough-in-ubuntu-desktop-2204-vm-not-recognized/

-WHile this is for nvidia simalr for AMD...

we need to fix your intell igpu and other settings...
remove the go file and restore it back to spec:

root@The-Borg:~# cd /boot/config

root@The-Borg:/boot/config# ls

Plus.key domain.cfg go iscsi/ parity-checks.log pools/ shares/ ssl/

default/ drift go~ machine-id passwd random-seed smb-extra.conf super.dat

disk.cfg editor.cfg history/ modprobe.d/ plugins/ secrets.tdb smb-override.conf super.old

disk.old flash.cfg hosts network-extra.cfg plugins-error/ shadow smbpasswd vsftpd.user_list

docker.cfg forcesync ident.cfg network.cfg plugins-removed/ share.cfg ssh/ wireguard/

root@The-Borg:/boot/config# cat go

#!/bin/bash

# Start the Management Utility

/usr/local/sbin/emhttp

root@The-Borg:/boot/config#


...

remove the modprobe that is blacklisting the intel IGPU:

root@The-Borg:/boot/config# cd modprobe.d/

root@The-Borg:/boot/config/modprobe.d# ls

root@The-Borg:/boot/config/modprobe.d# rm i915.conf

make a user screipt at first array start to run the modprobe call for i915

Next go to main and restore your default boot.
image.png

we need to edit vm setting before applying our grub lines...

Make sure Unraid OS is your default boot... we will not be using GUI mode as we will latter run comadns to wipe teh Frame buffer that has been known to cause issues in the past...

kernel /bzimage

append initrd=/bzroot

REBOOT UNRAID!!!

Next lets make some Unraid VM settings...

before the array starts (as you may need to fix other i915 modprobe settings...
as we will be rebooting again...

image.png

I recommend editing VM settings to set pcie acs override to both and VFIO allow unsafe intrupts...

uncheck all devices under tools > System devices I want a clean setup as this may move some IOMMU groups and devices we are passing...

there should be nothign bound at this point!
image.png

REBOOT UNRAID!!!

Now lets add the grub boot line.

kernel /bzimage
  append initrd=/bzroot video=vesafb:off,efifb:off,simplefb:off,astdrmfb initcall_blacklist=sysfb_init pci=noaer pcie_aspm=off pcie_acs_override=multifunction vfio_iommu_type1.allow_unsafe_interrupts=1

next go to tools > System Devices and check the devices taht you are removing fomr the unraid host to pass into a VM
all parts of the AMD GPU...

then we will go to tools >system drivers

int eh top right go to selet view all:
image.png

search for VFIO

image.png

here I want you to edit vfio and add option hit the pencil to edit a box to the right...

softdep amdgpu pre: vfio-pci

image.png

click save modprobe the small save icon(flopy disk and rebuild modules.

reboot and run these 3 lines as then we are ready to pass a gpu / pcie device into a VM aas the host unraids wil not be touching nor affecting the VM or hardware anymore...

As we need to make sure you Bios is setup corectly and Iommu is enabled:

dmesg | grep -e DMAR -e IOMMU
dmesg | grep 'remapping'

under system info:
image.png

syslog and diag will be needed after all of these chagnes to verify and confirm..
you should see simlar:
image.png

image.png

please post a new diag file. as you may need to redo the xml for the windwos VM as pcie device and IRQ address may have changed...

  • Author

omg these instructions are amazing. yes intel motherboard I just resat my GPU in the motherboard...and disabled CSM and 4g in the BIOS. I will now do all your steps and post back

  • Author

OK i screwed up something in the syslinux.cfg and now unraid wont boot. I took the usb drive to my pc and opened the syslinux.cfg and pasted a default one but its read only and wont let me save what do i do?

Edited by gonzoflick

  • Author

Ok i fixed the issue we are back in business with a standard syslinux.cfg like you wrote. onto the next

  • Author

OK all steps done! booted into new GRUB line with all changes made. Here is my diag. prob just need to tweak the VM. not going to start it up until i hear back. Thanks again pal!

tower-diagnostics-20250701-2349.zip

2 hours ago, gonzoflick said:

omg these instructions are amazing. yes intel motherboard I just resat my GPU in the motherboard...and disabled CSM and 4g in the BIOS. I will now do all your steps and post back

Bar 4g and up support should be enabled.

looks like your gcard his iommu memory cap

Jul 1 23:45:25 Tower kernel: pci 0000:00:02.0: BAR 4 [io 0x6000-0x603f]

Jul 1 23:45:25 Tower kernel: pci 0000:00:02.0: DMAR: Skip IOMMU disabling for graphics

Jul 1 23:45:25 Tower kernel: pci 0000:00:02.0: Video device with shadowed ROM at [mem 0x000c0000-0x000dffff]

Jul 1 23:45:25 Tower kernel: pci 0000:00:02.0: VF BAR 0 [mem 0x00000000-0x00ffffff 64bit]

Jul 1 23:45:25 Tower kernel: pci 0000:00:02.0: VF BAR 0 [mem 0x00000000-0x06ffffff 64bit]: contains BAR 0 for 7 VFs

Jul 1 23:45:25 Tower kernel: pci 0000:00:02.0: VF BAR 2 [mem 0x00000000-0x1fffffff 64bit pref]

Jul 1 23:45:25 Tower kernel: pci 0000:00:02.0: VF BAR 2 [mem 0x00000000-0xdfffffff 64bit pref]: contains BAR 2 for

looks like sriov and iommu is enabled corectly so we can now begin with the next stepson the xml
Jul 1 23:45:25 Tower kernel: DMAR: Intel(R) Virtualization Technology for Directed I/O

looks lke the amd gpu is in pceirq slot 04

per the vfio bind: BIND=0000:04:00.0|144d:a80a 0000:06:00.0|1912:0014

you may need to edit the xml to make sure the pcie device are correct.

    <!-- GPU passthrough (function 0: GPU) -->
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
      </source>
      <rom file='/mnt/user/isos/vbios/amdrx6750xt.rom'/>
      <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
    </hostdev>

    <!-- GPU HDMI Audio (function 1) -->
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x03' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x07' slot='0x01' function='0x0'/>
    </hostdev>

as the bus 0x03 will need to stay 03.... but gpu needs vfio bound...

    <!-- GPU passthrough (function 0: GPU) -->
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
      </source>
      <rom file='/mnt/user/isos/vbios/amdrx6750xt.rom'/>
      <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
    </hostdev>

    <!-- GPU HDMI Audio (function 1) -->
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x03' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x07' slot='0x01' function='0x0'/>
    </hostdev>

*no edits are needed mis read the bind in the diag file...

also it looks like your grub line is not in its not set, it 100% helps but not needed though..

diag shows:

BOOT_IMAGE=/bzimage initrd=/bzroot

per syslog of what currently running...

group 19 apears to be your amd gpu:

/sys/kernel/iommu_groups/19/devices/0000:04:00.0

but it appears you vfio bound your nvme???...


ok what did you bind...

04:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd NVMe SSD Controller PM9A1/PM9A3/980PRO [144d:a80a]

Subsystem: Samsung Electronics Co Ltd SSD 980 PRO [144d:a801]

Kernel driver in use: vfio-pci

Kernel modules: nvme

06:00.0 USB controller [0c03]: Renesas Electronics Corp. uPD720201 USB 3.0 Host Controller [1912:0014] (rev 03)

Kernel driver in use: vfio-pci

to use the amd gpu n a VM via pasthoguh the amd GPU need to be bound.

it appears your amd GPU is not vfio bound...

03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT] [1002:73df] (rev c0)

Subsystem: XFX Limited Device [1eae:6710]

Kernel driver in use: amdgpu

Kernel modules: amdgpu

03:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21/23 HDMI/DP Audio Controller [1002:ab28]

Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21/23 HDMI/DP Audio Controller [1002:ab28]

also you used vmd for modprobe not vfio...

Edited by bmartino1
Data - Typo

  • Author

OK 4g and UP are enabled in the BIOS. GPU/Soundcard are bound and in their own IMMOU groups. Not sure what this means "also you used vmd for modprobe not vfio..."

I bound my NVME and USB hub because I boot the VM from the NVME (no vDISK) and the USB hub so i can attach USB disks to VM. here are current diags with edited XML. Here are latest

tower-diagnostics-20250702-0148.zip

58 minutes ago, gonzoflick said:

OK 4g and UP are enabled in the BIOS. GPU/Soundcard are bound and in their own IMMOU groups. Not sure what this means "also you used vmd for modprobe not vfio..."

I bound my NVME and USB hub because I boot the VM from the NVME (no vDISK) and the USB hub so i can attach USB disks to VM. here are current diags with edited XML. Here are latest

tower-diagnostics-20250702-0148.zip


dont' worry about it.. I'm refering to the modprobe edit. You added data to vmd.conf for modprobe the edits are for vfio.conf

image.png

per your modprobe vmd.conf holds the extra modprobe data for the amdgpu to help transion it to vfio-pci.... its fine...


perfect the gcard is passed corectly:

03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT] [1002:73df] (rev c0)

Subsystem: XFX Limited Device [1eae:6710]

Kernel driver in use: vfio-pci

Kernel modules: amdgpu

03:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21/23 HDMI/DP Audio Controller [1002:ab28]

Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21/23 HDMI/DP Audio Controller [1002:ab28]

Kernel driver in use: vfio-pci

note the driver in use...
*Only the vm can see and use the gcard now.

go file and grub boot look ok...

and teh bind look good:

BIND=0000:03:00.0|1002:73df 0000:03:00.1|1002:ab28 0000:04:00.0|144d:a80a 0000:06:00.0|1912:0014

syslog shows good Iommu...

Now we need to test / rebuild the windows xml if needed.

double check your vfio devices are added to the VM G card data should still be:

<!-- GPU passthrough (function 0: GPU) --> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x03' slot='0x00' function='0x0'/> </source> <rom file='/mnt/user/isos/vbios/amdrx6750xt.rom'/> <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/> </hostdev> <!-- GPU HDMI Audio (function 1) --> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x03' slot='0x00' function='0x1'/> </source> <address type='pci' domain='0x0000' bus='0x07' slot='0x01' function='0x0'/> </hostdev>

your ready to try the windows VM once more

Edited by bmartino1
off to bed good luck

  • Author

I felt like we were close. VM booted great. Went into windows..started Cyberpunk...almost got to game play and the VM froze again. I even DDU'ed the drivers and reinstalled the newest AMD. I guess im going to have to sell this card and buy an nVidia. I cant thank you so much for your time.

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.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.