Issue with PCI Passthrough


Bur0k

Recommended Posts

Try this.  On the unRAID webGui, go to the main tab, click on the word flash to go to the flash device settings page, then go to Syslinux Configuration and find this section:

 

label unRAID OS (GUI)

  menu default

  kernel /bzimage

  append pcie_acs_override=downstream initrd=/bzroot

 

change it to this:

 

label unRAID OS (GUI)

  menu default

  kernel /bzimage

  append iommu=pt pcie_acs_override=downstream initrd=/bzroot

 

Apply and then reboot your system.  Report back and let me know if this changes anything for you.  You can also try this:

 

label unRAID OS (GUI)

  menu default

  kernel /bzimage

  append iommu=pt vfio_iommu_type1.allow_unsafe_interrupts=1 pcie_acs_override=downstream initrd=/bzroot

 

 

Link to comment

Tried it with both of your Configs. (Mine doesn't say (GUI) at all)

default /syslinux/menu.c32
menu title Lime Technology
prompt 0
timeout 50
label unRAID OS
  menu default
  kernel /bzimage
  append intel_pstate=disable vfio_iommu_type1.allow_unsafe_interrupts=1 iommu=pt pcie_acs_override=downstream initrd=/bzroot
label unRAID OS Safe Mode (no plugins)
  kernel /bzimage
  append initrd=/bzroot unraidsafemode
label Memtest86+
  kernel /memtest

 

Both of the times the same error as without your config.  :'( :'( :'(

Mainboard: http://www.gigabyte.de/products/product-page.aspx?pid=4146#ov

 

Link to comment

Tried it with both of your Configs. (Mine doesn't say (GUI) at all)

default /syslinux/menu.c32
menu title Lime Technology
prompt 0
timeout 50
label unRAID OS
  menu default
  kernel /bzimage
  append intel_pstate=disable vfio_iommu_type1.allow_unsafe_interrupts=1 iommu=pt pcie_acs_override=downstream initrd=/bzroot
label unRAID OS Safe Mode (no plugins)
  kernel /bzimage
  append initrd=/bzroot unraidsafemode
label Memtest86+
  kernel /memtest

 

Both of the times the same error as without your config.  :'( :'( :'(

Mainboard: http://www.gigabyte.de/products/product-page.aspx?pid=4146#ov

 

I suspect the (GUI) is a feature of 6.2, don't worry about it.  It's just a label....

 

[glow=red,2,300]HEY EVERYONE!!! COME AND HAVE A LOOK AT THIS, ANOTHER CLUE ABOUT 6.2!!!![/glow]  ;D

 

Link to comment

Tried it with both of your Configs. (Mine doesn't say (GUI) at all)

default /syslinux/menu.c32
menu title Lime Technology
prompt 0
timeout 50
label unRAID OS
  menu default
  kernel /bzimage
  append intel_pstate=disable vfio_iommu_type1.allow_unsafe_interrupts=1 iommu=pt pcie_acs_override=downstream initrd=/bzroot
label unRAID OS Safe Mode (no plugins)
  kernel /bzimage
  append initrd=/bzroot unraidsafemode
label Memtest86+
  kernel /memtest

 

Both of the times the same error as without your config.  :'( :'( :'(

Mainboard: http://www.gigabyte.de/products/product-page.aspx?pid=4146#ov

Most likely your device doesn't support the INTx disable, but you can check that with the attached script.

Save it somewhere and SSH to your server and go to the folder you saved the file. Issue this command to make it executable:

 

chmod 755 intx_check.sh

 

Then you run the script like this:

 

intx_check.sh 07:04.0

 

You now get a message if INTx disable is supported or not.

If you want to see what is on the same IRQ to see if you can disable that device, issue this command and post it here:

 

cat /proc/interrupts

intx_check.zip

Link to comment

Tried it with both of your Configs. (Mine doesn't say (GUI) at all)

default /syslinux/menu.c32
menu title Lime Technology
prompt 0
timeout 50
label unRAID OS
  menu default
  kernel /bzimage
  append intel_pstate=disable vfio_iommu_type1.allow_unsafe_interrupts=1 iommu=pt pcie_acs_override=downstream initrd=/bzroot
label unRAID OS Safe Mode (no plugins)
  kernel /bzimage
  append initrd=/bzroot unraidsafemode
label Memtest86+
  kernel /memtest

 

Both of the times the same error as without your config.  :'( :'( :'(

Mainboard: http://www.gigabyte.de/products/product-page.aspx?pid=4146#ov

 

I suspect the (GUI) is a feature of 6.2, don't worry about it.  It's just a label....

 

[glow=red,2,300]HEY EVERYONE!!! COME AND HAVE A LOOK AT THIS, ANOTHER CLUE ABOUT 6.2!!!![/glow]  ;D

 

This time you get the award for hawk eyes  ;D

Link to comment
default /syslinux/menu.c32

menu title Lime Technology

prompt 0

timeout 50

label unRAID OS

  menu default

  kernel /bzimage

  append intel_pstate=disable vfio_iommu_type1.allow_unsafe_interrupts=1 iommu=pt pcie_acs_override=downstream initrd=/bzroot

label unRAID OS Safe Mode (no plugins)

  kernel /bzimage

  append initrd=/bzroot unraidsafemode

label Memtest86+

  kernel /memtest

 

What's that bit in bold for?  Tried it without that?

 

 

Link to comment

default /syslinux/menu.c32

menu title Lime Technology

prompt 0

timeout 50

label unRAID OS

  menu default

  kernel /bzimage

  append intel_pstate=disable vfio_iommu_type1.allow_unsafe_interrupts=1 iommu=pt pcie_acs_override=downstream initrd=/bzroot

label unRAID OS Safe Mode (no plugins)

  kernel /bzimage

  append initrd=/bzroot unraidsafemode

label Memtest86+

  kernel /memtest

 

What's that bit in bold for?  Tried it without that?

That is just to fix the non throttling of Intel CPU's.

Link to comment

Most likely your device doesn't support the INTx disable, but you can check that with the attached script.

Save it somewhere and SSH to your server and go to the folder you saved the file.

 

You now get a message if INTx disable is supported or not.

If you want to see what is on the same IRQ to see if you can disable that device, issue this command and post it here:

cat /proc/interrupts

 

not available :(

 

/proc/interrupts:

           CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7
  0:         28          0          0          0          0          0          0          0  IR-IO-APIC-edge      timer
  1:          1          0          0          1          0          0          0          0  IR-IO-APIC-edge      i8042
  8:         13          0          0          1          1          1          0          0  IR-IO-APIC-edge      rtc0
  9:          0          0          0          0          0          0          0          0  IR-IO-APIC-fasteoi   acpi
12:          2          1          0          0          0          0          0          0  IR-IO-APIC-edge      i8042
16:       2682        760        540        302       1166        521        761        347  IR-IO-APIC  16-fasteoi   ehci_hcd:usb3
17:        276         24          7          4         44         41          6          0  IR-IO-APIC  17-fasteoi   vfio-intx(0000:01:00.1)
22:       3897        981       1767        608       1718       1195        948        408  IR-IO-APIC  22-fasteoi   vfio-intx(0000:00:1b.0)
23:        348         60        101         19        169        112         80         29  IR-IO-APIC  23-fasteoi   vfio-intx(0000:00:1d.0)
24:          0          0          0          0          0          0          0          0  DMAR_MSI-edge      dmar0
26:       6740       2498       5989       1512       5982       4698       4403       1465  IR-PCI-MSI-edge      vfio-msi[0](0000:00:14.0)
27:      22164       8164       5704       2640      14995       8278       3967       2182  IR-PCI-MSI-edge      0000:00:1f.2
28:       3368       1497       1073        508       2224       1416        860        526  IR-PCI-MSI-edge      eth0
29:      17729       4046       5134       2155       8949       5768       5074       2582  IR-PCI-MSI-edge      vfio-msi[0](0000:01:00.0)
NMI:          0          0          0          0          0          0          0          0   Non-maskable interrupts
LOC:     707003     730010     436962     476887     238584     247565     269955     289209   Local timer interrupts
SPU:          0          0          0          0          0          0          0          0   Spurious interrupts
PMI:          0          0          0          0          0          0          0          0   Performance monitoring interrupts
IWI:          0          1          0          0          2          0          0          0   IRQ work interrupts
RTR:          0          0          0          0          0          0          0          0   APIC ICR read retries
RES:      27345      26023     193274     202322     138197     134310     164271     150996   Rescheduling interrupts
CAL:        263        216        414        344        344        244        334        297   Function call interrupts
TLB:       1428       1634       4177       2604       2474       2184       3317       2850   TLB shootdowns
TRM:          0          0          0          0          0          0          0          0   Thermal event interrupts
THR:          0          0          0          0          0          0          0          0   Threshold APIC interrupts
MCE:          0          0          0          0          0          0          0          0   Machine check exceptions
MCP:          4          4          4          4          4          4          4          4   Machine check polls
HYP:          0          0          0          0          0          0          0          0   Hypervisor callback interrupts
ERR:          0
MIS:          0

 

 

 

 

intel_pstate=disable

 

What's that bit in bold for?  Tried it without that?

That is just to fix the non throttling of Intel CPU's.

^This

 

Link to comment
  • 4 weeks later...

UPDATE:

I bought the Xonar DG (DGX is the same but on PCIe). Plugged it in and it recognized as:

04:00.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 41)
05:00.0 Multimedia audio controller: C-Media Electronics Inc CMI8788 [Oxygen HD Audio]

/sys/kernel/iommu_groups/13/devices/0000:04:00.0
/sys/kernel/iommu_groups/13/devices/0000:05:00.0

 

But it worked straight away when i passed only 5:00.0 through. Now i am happy :)

Link to comment
  • 1 year later...
On 2/10/2016 at 6:51 PM, Bur0k said:

UPDATE:

I bought the Xonar DG (DGX is the same but on PCIe). Plugged it in and it recognized as:

 


04:00.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 41)
05:00.0 Multimedia audio controller: C-Media Electronics Inc CMI8788 [Oxygen HD Audio]
 

 

 


/sys/kernel/iommu_groups/13/devices/0000:04:00.0
/sys/kernel/iommu_groups/13/devices/0000:05:00.0
 

 

 

But it worked straight away when i passed only 5:00.0 through. Now i am happy :)

 

 

i got the exact same card, could you send me you're syslinix.cfg?

Link to comment
  • 3 years later...

Sorry to resurrect an old threat but, did you guys ever get this working?

 

I could use a working syslinux.cfg as well. It seems my card is recognized in a similar way:

IOMMU group 12:                
[10b5:8112] 03:00.0 PCI bridge: PLX Technology, Inc. PEX8112 x1 Lane PCI Express-to-PCI Bridge (rev aa)
[13f6:8788] 04:04.0 Multimedia audio controller: C-Media Electronics Inc CMI8788 [Oxygen HD Audio]

But I get the same error:

internal error: process exited while connecting to monitor: 2020-11-12T21:56:52.505369Z qemu-system-x86_64: -device vfio-pci,host=0000:04:04.0,id=hostdev4,bus=pci.0,addr=0xa: vfio 0000:04:04.0: Failed to set up TRIGGER eventfd signaling for interrupt INTX-0: VFIO_DEVICE_SET_IRQS failure: Device or resource busy

I'm not passing through my NVIDIA HDMI audio controller.

 

EDIT: The fix was moving the Asus Xonar Essence STX sound card from a PCIe x16 slot to a PCIe x1 slot. It seems, according to various reddit threads and the threads here, that the PCIe x16 slots interact on some motherboards, and so a VFIO was caused somehow. All good and no stutters for me.

Edited by oldsweatyman
Link to comment

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...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.