Switching driver interrupt affinity changes how the system prioritizes interrupt handling for that particular driver.
Switching driver interrupt affinity changes how the system prioritizes interrupt handling for that particular driver.
I've experienced some odd behavior with my PC lately (details given below, mainly it's lag or inconsistency, mostly noticeable during FPS games). I managed to temporarily resolve it—usually for 10 to 15 minutes—by adjusting the interrupt settings for my GPU and mouse. Although changing the affinity for each device seems to help a bit more than just one setting, I’m not keen on revealing exactly what those settings do. I want to understand what’s happening under the hood: does the driver actually reset itself? Does it temporarily raise its IRQL? My knowledge is solid enough that I might ask again later.
What I need to know is whether altering interrupt affinity triggers the driver (or Windows) to act differently. Could this be related to performance tuning or something deeper? The main sign of trouble is aiming issues in games and a rougher-than-expected frame rate. It seems like interrupt moderation, throttling, or coalescing might be at play here. I suspect it’s not an instant switch but a gradual adjustment.
I’m not sure if interrupt moderation fully explains this, since it doesn’t appear to jump back immediately—it seems to change slowly. I don’t have complete clarity on how drivers handle interrupts, or what exactly they use. It appears both the GPU and mouse might be involved, based on my tests so far. Reinstalling the mouse helped, as did changing the headset’s audio quality once (though I haven’t been able to match that setup).
Hardware-wise, my system is solid: CPU Ryzen 5 5600x, GPU Gigabyte RTX 3060 Ti Gaming OC with 8GB RAM, motherboard Gigabyte X470 Aorus Ultra Gaming (rev.1.0), mouse HyperX Pulsefire, monitor, and headset. All other drivers are up to date except the mouse driver, which is default on Windows. I disabled most power-saving features, set everything to maximum performance, and used LatencyMon and Performance Monitor to check for issues. No errors or shared interrupts were found.
Update: After some research and testing, it looks like certain changes—like adjusting a device’s interrupt affinity—can cause the driver to reset itself. From what I found online (though it’s hard to locate specifics), when the driver or OS detects too many interrupts, it may switch off interrupt moderation temporarily. Based on one article, this could explain why the behavior feels gradual rather than sudden. I haven’t checked xHCI registers yet, but it seems they might be involved.
Let me know if I missed anything important.
After some testing and research, it seems certain adjustments—such as altering a device's interrupt priority—trigger a reset. This reset affects USB devices in particular, causing the driver to disable interrupt moderation. Based on limited sources, when the driver or OS detects excessive interrupts (from either the device or system), it switches off moderation. I haven't checked the xHCI registers directly, but it's possible they increase the threshold, which explains the gradual effect rather than an immediate change. Yes, USB devices do have interrupt moderation. xHCI uses this feature (IMOD), EHCI has a threshold mechanism, and UHCI appears to have its own system. For more details, see the referenced links:
- xHCI: https://wiki.osdev.org/EXtensible_Host_C..._Interface
- EHCI: https://wiki.osdev.org/Enhanced_Host_Con..._Interface
- UHCI: https://wiki.osdev.org/Universal_Host_Co..._Interface
After some trials, the USB interrupt handling stays the same and doesn’t vary after resetting the driver. I noticed the value changed only once—right when I opened RW-Everything. After a few milliseconds it returned to normal, but I couldn’t match that behavior again. It looks like a bug with RW-Everything might be involved. I’m checking device priorities to see if that’s the cause.