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.

bobbintb

Members
  • Joined

  • Last visited

  1. @ich777 I don't want to be a bother but I was hoping to get some further input on this regarding my last comment, now that I realize I never tagged anyone so it probably never got seen. This is what the config currently has is regards to BPF: CONFIG_BPF=y CONFIG_HAVE_EBPF_JIT=y CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y # BPF subsystem CONFIG_BPF_SYSCALL=y CONFIG_BPF_JIT=y CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_BPF_JIT_DEFAULT_ON=y CONFIG_BPF_UNPRIV_DEFAULT_OFF=y # CONFIG_BPF_PRELOAD is not set # end of BPF subsystem CONFIG_CGROUP_BPF=y CONFIG_IPV6_SEG6_BPF=y CONFIG_NETFILTER_BPF_LINK=y CONFIG_NETFILTER_XT_MATCH_BPF=m CONFIG_NET_CLS_BPF=m CONFIG_NET_ACT_BPF=m # CONFIG_BPF_STREAM_PARSER is not set CONFIG_LWTUNNEL_BPF=y # HID-BPF support # CONFIG_HID_BPF is not set # end of HID-BPF support CONFIG_BPF_EVENTS=y # CONFIG_BPF_KPROBE_OVERRIDE is not set # CONFIG_TEST_BPF is not set Again, without CONFIG_DEBUG_INFO_BTF enabled, these configuration options are all essentially useless because without CONFIG_DEBUG_INFO_BTF, anything that uses eBPF (including those in docker containers) would have to be compiled against the specific kernel version that unRaid uses, which also changes frequently. Everything eBPF uses CO:RE now, which makes it kernel agnostic, and CONFIG_DEBUG_INFO_BTF is a hard requirement for that.
  2. I know this doesn't concern most users but I compile a custom kernel for some development work I am doing and 7.3.0 broke my process. I have a script that automatically builds the kernel but some changes were made to the bz* files. As far as I can tell: bzroot - no change bzimage - no change bzfirmware - renamed tobzmodules bzmodules>firmware (subfolder) - now bzfirmware bzmodules - moved to bzmodules>lib Have there been any other changes to those files I may have missed? I know this isn't the kind of thing that is typically documented so any help is appreciated.
  3. Seems so. I submitted a PR for the wiki page but @SpencerJ will have to change the post on the forum thread.
  4. The documentation says this kernel version is 6.18.28 but file shows it's 6.18.29: bzimage: Linux kernel x86 boot executable bzImage, version 6.18.29-Unraid (root@Develop) #1 SMP PREEMPT_DYNAMIC Mon May 11 15:54:50 PDT 2026, RO-rootFS, swap_dev 0X8, Normal VGA
  5. A couple of settings might be conflicting with one another. I'd recommend starting from scratch and trying one thing at a time. I would undo the "PCIe ACS override" or "VFIO allow unsafe interrupts" changes and the system devices/modprobe changes you made. For one, if your VM was working without them before, I can't think of a reason why you would suddenly need them. For another, it might be the reason the script isn't working. There's just too many variables so let's address them one at a time. Also, remove the sysconfig settings I mentioned. I haven't actually tried those settings myself so I can't be certain they will work. In my situation, the script did fix my issue but it may return once I reboot, I don't know. I usually have to schedule a time to reboot. So basically, the sysconfig should prevent the conflict from happening on boot (though I cannot attest to that), and the script should fix the conflict after the fact. Of course, this is still assuming the issue is what I think it is. So, undo all those settings, reboot, and we'll take things one step at a time. After you reboot try this: 1. Check the system devices page. The GPU and GPU audio should still be showing as bound to VFIO. 2. Open a terminal and run echo 0000:0c:00.0 > /sys/bus/pci/devices/0000:0c:00.0/driver/unbind 3. Then run echo 0000:0c:00.1 > /sys/bus/pci/devices/0000:0c:00.1/driver/unbind 4. Check the system devices page again. The GPU and GPU audio should not be bound to VFIO now. 5. Go back to the terminal and run echo 1 > /sys/bus/pci/devices/0000:0c:00.0/reset 6. Then run echo 0000:0c:00.0 > /sys/bus/pci/drivers/vfio-pci/bind 7. Then run echo 0000:0c:00.1 > /sys/bus/pci/drivers/vfio-pci/bind Check the devices page again to see if the GPU is not bound to VFIO again and start the VM. If you encounter any issues, post a screenshot of the device in the system devices page along with the output of lspci -vv -s 0c:00 and we'll go from there.
  6. I had to double check to make sure I was using the correct terms but you have the wrong values for GPU and AUDIO in your script it isn't finding them. It looks like you put 1002:7550 and 1002:ab40 which are the vendorID:deviceID I believe. You need the ones just to the right of that, with the leading zeros as in the example. For your setup, this is what you need: GPU="0000:0c:00.0" AUDIO="0000:0c:00.1" It may not be needed for this but it's good to know for future reference. Also, in line with what bmartino1 said, the VNC could further complicate things. It's best to remove it and only have the real GPU in your VM config.
  7. I removed one of my GPUs and so I have only one GPU in the motherboard. Then my VM quit working. After some research, this is what I found. I didn't see this information anywhere else on the forum so apologies if it is a repeat. Either the VM would be on but never boot or boot with no video, as I could still hear it. I have an Nvidia card and it was showing Code 43 in device manager. It seems like I could get it to work once after the server reboot, if I was lucky. I have my GPU passed through to the VM. Eventually, I found the Linux framebuffer is touching the GPU before vfio binds it so the GPU no longer resets cleanly. I have not yet tried this but the permanent fix is to add to this to the append line in your syslinux: video=efifb:off video=simpledrm:off video=vesafb:offIn the Unraid webui, go to the main tab and click on your flash drive. At the bottom is your syslinux config. Again, I have not tried this yet myself because I have not found the time to restart my server. There are other posts that detail this is well. You can use the following method if you don't want to reboot or as a troubleshooting step. What worked for me without rebooting was to force the video card to reset. I made this script but you can just use the individual commands. Make sure and change the bus appropriately to match your system: #!/bin/bash GPU="0000:21:00.0" AUDIO="0000:21:00.1" # Always force FLR echo flr > /sys/bus/pci/devices/$GPU/reset_method 2>/dev/null # Unbind GPU + audio echo "$GPU" > /sys/bus/pci/devices/$GPU/driver/unbind echo "$AUDIO" > /sys/bus/pci/devices/$AUDIO/driver/unbind # Perform FLR echo 1 > /sys/bus/pci/devices/$GPU/reset # Rebind to vfio echo "$GPU" > /sys/bus/pci/drivers/vfio-pci/bind echo "$AUDIO" > /sys/bus/pci/drivers/vfio-pci/bind echo "GPU reset (FLR) complete."I'll explain what it does. If you look at the output from lspci -vv -s 21:00.0 (change the bus to match your system), you will see what reset methods your GPU supports. It's a mess but it's in there somewhere under DevCap and DevCtl. Here is what mine looks like: root@Tower:~# lspci -vv -s 21:00.0 21:00.0 VGA compatible controller: NVIDIA Corporation AD104 [GeForce RTX 4070] (rev a1) (prog-if 00 [VGA controller]) Subsystem: Gigabyte Technology Co., Ltd Device 40ee Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 305 IOMMU group: 49 Region 0: Memory at c2000000 (32-bit, non-prefetchable) [size=16M] Region 1: Memory at a400000000 (64-bit, prefetchable) [size=16G] Region 3: Memory at a800000000 (64-bit, prefetchable) [size=32M] Region 5: I/O ports at 3000 [size=128] Expansion ROM at c3000000 [disabled] [size=512K] Capabilities: [60] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+ Address: 00000000fee00000 Data: 0000 Capabilities: [78] Express (v2) Legacy Endpoint, IntMsgNum 0 DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 <64us ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ TEE-IO- DevCtl: CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+ RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop- FLReset- MaxPayload 256 bytes, MaxReadReq 512 bytes DevSta: CorrErr+ NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend+ LnkCap: Port #0, Speed 16GT/s, Width x16, ASPM L1, Exit Latency L1 <4us ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+ LnkCtl: ASPM Disabled; RCB 64 bytes, LnkDisable- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- FltModeDis- LnkSta: Speed 16GT/s, Width x16 TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range AB, TimeoutDis+ NROPrPrP- LTR- 10BitTagComp+ 10BitTagReq+ OBFF Via message, ExtFmt- EETLPPrefix- EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit- FRS- AtomicOpsCap: 32bit- 64bit- 128bitCAS- DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- AtomicOpsCtl: ReqEn- IDOReq- IDOCompl- LTR- EmergencyPowerReductionReq- 10BitTagReq- OBFF Disabled, EETLPPrefixBlk- LnkCap2: Supported Link Speeds: 2.5-16GT/s, Crosslink- Retimer+ 2Retimers+ DRS- LnkCtl2: Target Link Speed: 16GT/s, EnterCompliance- SpeedDis- Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+ EqualizationPhase1+ EqualizationPhase2+ EqualizationPhase3+ LinkEqualizationRequest- Retimer- 2Retimers- CrosslinkRes: unsupported, FltMode- Capabilities: [b4] Vendor Specific Information: Len=14 <?> Capabilities: [100 v1] Virtual Channel Caps: LPEVC=0 RefClk=100ns PATEntryBits=1 Arb: Fixed- WRR32- WRR64- WRR128- Ctrl: ArbSelect=Fixed Status: InProgress- VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256- Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01 Status: NegoPending- InProgress- Capabilities: [258 v1] L1 PM Substates L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2- ASPM_L1.1+ L1_PM_Substates+ PortCommonModeRestoreTime=255us PortTPowerOnTime=10us L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1- T_CommonMode=0us L1SubCtl2: T_PwrOn=10us Capabilities: [128 v1] Power Budgeting <?> Capabilities: [420 v2] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UncorrIntErr- BlockedTLP- AtomicOpBlocked- TLPBlockedErr- PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP- PCRC_CHECK- TLPXlatBlocked- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UncorrIntErr- BlockedTLP- AtomicOpBlocked- TLPBlockedErr- PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP- PCRC_CHECK- TLPXlatBlocked- UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- UncorrIntErr+ BlockedTLP- AtomicOpBlocked- TLPBlockedErr- PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP- PCRC_CHECK- TLPXlatBlocked- CESta: RxErr+ BadTLP+ BadDLLP+ Rollover- Timeout+ AdvNonFatalErr- CorrIntErr- HeaderOF- CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+ CorrIntErr- HeaderOF+ AERCap: First Error Pointer: 00, ECRCGenCap- ECRCGenEn- ECRCChkCap- ECRCChkEn- MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap- HeaderLog: 00000000 00000000 00000000 00000000 Capabilities: [600 v1] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?> Capabilities: [900 v1] Secondary PCI Express LnkCtl3: LnkEquIntrruptEn- PerformEqu- LaneErrStat: LaneErr at lane: 14 Capabilities: [bb0 v1] Physical Resizable BAR BAR 0: current size: 16MB, supported: 16MB BAR 1: current size: 16GB, supported: 64MB 128MB 256MB 512MB 1GB 2GB 4GB 8GB 16GB BAR 3: current size: 32MB, supported: 32MB Capabilities: [c1c v1] Physical Layer 16.0 GT/s Phy16Sta: EquComplete+ EquPhase1+ EquPhase2+ EquPhase3+ LinkEquRequest- Capabilities: [d00 v1] Lane Margining at the Receiver PortCap: Uses Driver+ PortSta: MargReady- MargSoftReady- Capabilities: [e00 v1] Data Link Feature <?> Kernel driver in use: vfio-pci Kernel modules: nouveauMine only supports FLR. If you run cat /sys/bus/pci/devices/$GPU/reset_method (make sure to sub the $GPU variable) it will show you what the current reset method it set to. Mine was set to flr bus, meaning it tries FLR, then falls back to bus (which mine doesn't support). So this script will set the reset method to just FLR, then unbind the GPU, reset it, and then rebind to VFIO without having to reboot. You might want to comment out the "Always force FLR" line first and just try the default method. Your card might support other methods you can try as well. You just need to replace the flr after the echo in the "Always force FLR" command with another method that your card supports. I don't know what those would be but you can look it up if you need to. You don't need to worry about putting an invalid option and breaking things because if it doesn't support it or you put in an invalid option, it just will say it is an invalid option. For me, it didn't work the first time with the default method but it did when forcing FLR. Make sure the VM is off before you try this, then turn it on after and see if it worked.
  8. One last note. In regards to the vBIOS, the extraction script can be tricky and painful. If you don't have an issue getting it online, go to https://www.techpowerup.com/vgabios/ and enter your GPU details to download it. Techpowerup is pretty trustworthy but I get that some people don't want to risk it. If you don't know your info, you can install GPU-z and click on "Lookup". I think GPU-z used to have a way to take you directly to the vBIOS page for your card but if it did, it doesn't now. You can also try saving the vBIOS using GPU-z but I'm pretty sure it won't work in a VM.
  9. It sounds like you are having the same issue I was just having, or at least very similar. I recently removed a GPU so now I have only one GPU. Then it started acting up. I was able to get the VM to boot properly once. Either it would be on but never boot or boot with no video, as I could still hear it. I have an Nvidia card and it was showing Code 43 in device manager. So this may not work for you. I have my GPU passed through so the VM can use it directly. Eventually, I found the Linux framebuffer is touching the GPU before vfio binds it so the GPU no longer resets cleanly. I have not yet tried this but the permanent fix is to add to this to the append line in your syslinux: video=efifb:off video=simpledrm:off video=vesafb:offIn the Unraid webui, go to the main tab and click on your flash drive. At the bottom is your syslinux config. Again, I have not tried this yet myself because I have not found the time to restart my server. What worked for me without rebooting was to force the video card to reset. I made this script but you can just use the individual commands. Make sure and change the bus appropriately to match your system: #!/bin/bash GPU="0000:21:00.0" AUDIO="0000:21:00.1" # Always force FLR echo flr > /sys/bus/pci/devices/$GPU/reset_method 2>/dev/null # Unbind GPU + audio echo "$GPU" > /sys/bus/pci/devices/$GPU/driver/unbind echo "$AUDIO" > /sys/bus/pci/devices/$AUDIO/driver/unbind # Perform FLR echo 1 > /sys/bus/pci/devices/$GPU/reset # Rebind to vfio echo "$GPU" > /sys/bus/pci/drivers/vfio-pci/bind echo "$AUDIO" > /sys/bus/pci/drivers/vfio-pci/bind echo "GPU reset (FLR) complete."It looks like you may be somewhat familiar with it already from the previous troubleshooting but I'll explain a bit what it does. If you look at the output from lspci -vv for your GPU (include your bus like below), you will see what reset methods your GPU supports. It's a mess but it's in there somewhere under DevCap and DevCtl. Here is what mine looks like: root@Tower:~# lspci -vv -s 21:00.0 21:00.0 VGA compatible controller: NVIDIA Corporation AD104 [GeForce RTX 4070] (rev a1) (prog-if 00 [VGA controller]) Subsystem: Gigabyte Technology Co., Ltd Device 40ee Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 305 IOMMU group: 49 Region 0: Memory at c2000000 (32-bit, non-prefetchable) [size=16M] Region 1: Memory at a400000000 (64-bit, prefetchable) [size=16G] Region 3: Memory at a800000000 (64-bit, prefetchable) [size=32M] Region 5: I/O ports at 3000 [size=128] Expansion ROM at c3000000 [disabled] [size=512K] Capabilities: [60] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+ Address: 00000000fee00000 Data: 0000 Capabilities: [78] Express (v2) Legacy Endpoint, IntMsgNum 0 DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 <64us ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ TEE-IO- DevCtl: CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+ RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop- FLReset- MaxPayload 256 bytes, MaxReadReq 512 bytes DevSta: CorrErr+ NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend+ LnkCap: Port #0, Speed 16GT/s, Width x16, ASPM L1, Exit Latency L1 <4us ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+ LnkCtl: ASPM Disabled; RCB 64 bytes, LnkDisable- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- FltModeDis- LnkSta: Speed 16GT/s, Width x16 TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range AB, TimeoutDis+ NROPrPrP- LTR- 10BitTagComp+ 10BitTagReq+ OBFF Via message, ExtFmt- EETLPPrefix- EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit- FRS- AtomicOpsCap: 32bit- 64bit- 128bitCAS- DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- AtomicOpsCtl: ReqEn- IDOReq- IDOCompl- LTR- EmergencyPowerReductionReq- 10BitTagReq- OBFF Disabled, EETLPPrefixBlk- LnkCap2: Supported Link Speeds: 2.5-16GT/s, Crosslink- Retimer+ 2Retimers+ DRS- LnkCtl2: Target Link Speed: 16GT/s, EnterCompliance- SpeedDis- Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+ EqualizationPhase1+ EqualizationPhase2+ EqualizationPhase3+ LinkEqualizationRequest- Retimer- 2Retimers- CrosslinkRes: unsupported, FltMode- Capabilities: [b4] Vendor Specific Information: Len=14 <?> Capabilities: [100 v1] Virtual Channel Caps: LPEVC=0 RefClk=100ns PATEntryBits=1 Arb: Fixed- WRR32- WRR64- WRR128- Ctrl: ArbSelect=Fixed Status: InProgress- VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256- Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01 Status: NegoPending- InProgress- Capabilities: [258 v1] L1 PM Substates L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2- ASPM_L1.1+ L1_PM_Substates+ PortCommonModeRestoreTime=255us PortTPowerOnTime=10us L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1- T_CommonMode=0us L1SubCtl2: T_PwrOn=10us Capabilities: [128 v1] Power Budgeting <?> Capabilities: [420 v2] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UncorrIntErr- BlockedTLP- AtomicOpBlocked- TLPBlockedErr- PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP- PCRC_CHECK- TLPXlatBlocked- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UncorrIntErr- BlockedTLP- AtomicOpBlocked- TLPBlockedErr- PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP- PCRC_CHECK- TLPXlatBlocked- UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- UncorrIntErr+ BlockedTLP- AtomicOpBlocked- TLPBlockedErr- PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP- PCRC_CHECK- TLPXlatBlocked- CESta: RxErr+ BadTLP+ BadDLLP+ Rollover- Timeout+ AdvNonFatalErr- CorrIntErr- HeaderOF- CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+ CorrIntErr- HeaderOF+ AERCap: First Error Pointer: 00, ECRCGenCap- ECRCGenEn- ECRCChkCap- ECRCChkEn- MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap- HeaderLog: 00000000 00000000 00000000 00000000 Capabilities: [600 v1] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?> Capabilities: [900 v1] Secondary PCI Express LnkCtl3: LnkEquIntrruptEn- PerformEqu- LaneErrStat: LaneErr at lane: 14 Capabilities: [bb0 v1] Physical Resizable BAR BAR 0: current size: 16MB, supported: 16MB BAR 1: current size: 16GB, supported: 64MB 128MB 256MB 512MB 1GB 2GB 4GB 8GB 16GB BAR 3: current size: 32MB, supported: 32MB Capabilities: [c1c v1] Physical Layer 16.0 GT/s Phy16Sta: EquComplete+ EquPhase1+ EquPhase2+ EquPhase3+ LinkEquRequest- Capabilities: [d00 v1] Lane Margining at the Receiver PortCap: Uses Driver+ PortSta: MargReady- MargSoftReady- Capabilities: [e00 v1] Data Link Feature <?> Kernel driver in use: vfio-pci Kernel modules: nouveauMine only supports FLR. If you run cat /sys/bus/pci/devices/$GPU/reset_method (make sure to sub the $GPU variable) it will show you what the current reset method it set to. Mine was set to flr bus, meaning it tries FLR, then falls back to bus (which mine doesn't support). So this script will set the reset method to just FLR, then unbind the GPU, reset it, and then rebind to VFIO without having to reboot. You might want to comment out the "Always force FLR" line first and just try the default method. Since your GPU is AMD, it might support other methods you can try as well. You just need to replace the flr after the echo in the "Always force FLR" command with another method that your card supports. I don't know what those would be but you can look it up if you need to. You don't need to worry about putting an invalid option and breaking things because if it doesn't support it or you put in an invalid option, it just will say it is an invalid option. For me, it didn't work the first time with the default method but it did when forcing FLR. Make sure the VM is off before you try this, then turn it on after and see if it worked. Another note that may make things easier. Instead of setting the GPU to VNC, use remote desktop. I find it makes things easier and you don't have to change your VM config back and forth while troubleshooting. Log into Windows, mount the virtio CD and install the virtio tools. Then when you start your VM, in the same menu where you start and stop it, there will be an option for remote desktop. The VM has to fully boot first so if you get an error just wait a bit, reload the page, and try again.
  10. This is almost certainly an issue with the browser. Try clearing the cache or see if it works with a different browser.
  11. Just for anyone else that might be having a similar issue, I am fairly certain I found the cause. I have a riser cable for my GPU and I believe that is the culprit. I found that out by running this command: lspci -vv -s 21:00 | grep -E "LnkCap|LnkSta" The 21:00 part is the bus address of my GPU, which can be found under Tools>System Devices in the Unraid UI. This is the output I got: LnkCap: Port #0, Speed 16GT/s, Width x16, ASPM L1, Exit Latency L1 <4us LnkSta: Speed 2.5GT/s (downgraded), Width x16 LnkCap2: Supported Link Speeds: 2.5-16GT/s, Crosslink- Retimer+ 2Retimers+ DRS- LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+ EqualizationPhase1+ LnkCap: Port #0, Speed 16GT/s, Width x16, ASPM L1, Exit Latency L1 <4us LnkSta: Speed 2.5GT/s (downgraded), Width x16 LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete- EqualizationPhase1- You can see the speed has been downgraded to 2.5GT/s, which is PCIe 1.0 speed, not PCIe 4.0. I haven't yet taken the time to install my GPU directly into the slot because I have to do a lot of reconfiguring, but I am fairly certain that is evidence enough that that is the issue.
  12. Try this: Go to your VM config and get the PCIe bus address of you NVMe (ex. 43:00.0). Then put this into the terminal, substituting the bus address, and post the result: lspci -vv -s <bus_address> | grep -E "LnkCap|LnkSta" Here is what my NVMe drive shows: root@Tower:~# lspci -vv -s 43:00.0 | grep -E "LnkCap|LnkSta" LnkCap: Port #0, Speed 16GT/s, Width x4, ASPM L1, Exit Latency L1 <64us LnkSta: Speed 16GT/s, Width x4 LnkCap2: Supported Link Speeds: 2.5-16GT/s, Crosslink- Retimer+ 2Retimers+ DRS- LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+ EqualizationPhase1+This line in particular: LnkSta: Speed 16GT/s, Width x4 shows my NVMe has negotiated PCIe 4.0 speeds, which is 16GT/s, which is correct. Something like this: LnkSta: Speed 2.5GT/s (downgraded), Width x4 would show it was downgraded, in this case to PCIe 1.0. That should at least rule one thing out.
  13. I'm having very similar issues and recently posted about it: https://forums.unraid.net/topic/195319-vm-sluggishness-that-has-been-plaguing-me-forever/ I don't seem to be having the same disk latency issues though. My reads and writes are much faster. I am thinking my latency issues are GPU passthrough related at this point. But just about everything else you've posted is the same for me and I've been dealing with it for a while. I'll be following this thread. Maybe between the two of us we can figure it out.
  14. I've been dealing with issues with my Windows 11 VM forever and I can't seem to figure out what the issue is. It gets very sluggish, jittery and choppy. It acts as if it just doesn't have enough resources but it does. It's not all the time either. It really only happens when it needs more resources, like I open a program. But it has plenty of resources and I've check the RAM and CPU usage and it looks normal. What I mean by that is it has nominal spikes for the RAM and CPU, as you would expect when opening a new program, yet it behaves as if the CPU and/or RAM is maxed out. After a bit, it smooths out and is fine. I recently found a possible clue when playing Fortnite. It is virtually unplayable normally, but it's ok if I enable the "Performance mode" in Fortnite. It will be a bit sluggish at first but if I wait for a bit, it starts working fine. Sometimes it takes minutes. Sometimes it will start to slow down in the middle of a game, but after a while, it will start to work. It's like night and day, because it will be a few frames a second, choppy video and audio, and then it seems like it "catches up" and it's instantly super smooth. It may be unrelated, but when I check the performance metrics in the Windows task manager it only seems to happen when the SSD drive utilization is over 7%. Here are my specs: VM: 24 cores, 32GB RAM (also tried a VM with 8 cores and 8GB RAM) CPU pinning, huge pages enabled (sysconfig: append transparent_hugepage=never default_hugepagesz=1G hugepagesz=1G hugepages=64 isolcpus=12-31,44-63) Hardware: Motherboard: Gigabyte Technology Co., Ltd. TRX40 DESIGNARE BIOS: American Megatrends International, LLC. Version F7f Dated 09/24/2025 CPU: AMD Ryzen Threadripper 3970X 32-Core @ 3700 MHz HVM: Enabled IOMMU: Enabled Cache: L1 - Cache: 2 MiB, L2 - Cache: 16 MiB, L3 - Cache: 128 MiB SSD Rocket 2TB (two slightly different models) GPU Nvidia RTX 4070 (passed through, latest driver) Memory: 128 GiB DDR4 Multi-bit ECC (4x 32GB Kingstom 9965745-020.A00G) I've tried everything I can think of: CPUs pinned (in pairs) Enabled hugepages Only one numa node Reinstalled windows on different VM GPU passthrough SSD controller passthrough Updated UEFI Disabled virtual memory/page file in Windows memtest86+ Windows Power Plan: High Performance. Core Isolation / Memory Integrity: OFF. BitLocker: OFF / Fully Decrypted. Write Caching: Enabled in Device Manager Global C-States: Disabled IOMMU / SVM: Enabled I'm sure there are other things I have tried that I am forgetting and I will try to keep the list updated. I've seriously been trying to figure this out for at least a year. I'm pretty sure I've updated my GPU firmware but I might check that again. I'm wondering if it might be because my RAM is meant for servers and not gaming. But that seems a little far fetched. I might try disabling ECC, but it's hard to find a good time to reboot the server and test that. Short of wasting a bunch of time researching and disabling or enabled UEFI settings, I'm pretty much out of ideas.
  15. I found out by accident that enabling the Virtual Machine Platform feature in Windows works as well. At least it did for Fortnite.

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.