Interrupt affinity policies, latency spikes and weird behaviour

Discussion in 'Videocards - NVIDIA GeForce Drivers Section' started by klunka, Oct 16, 2020.

  1. EdKiefer

    EdKiefer Ancient Guru

    Messages:
    3,128
    Likes Received:
    394
    GPU:
    ASUS TUF 3060ti
    IMO, I don't think it would matter but every system is different. The only thing I do is turn off power management in the device manager for USB devices.

    But if you have a problem, then try it and see if it improves.
     
  2. BlackNova92

    BlackNova92 Master Guru

    Messages:
    206
    Likes Received:
    13
    GPU:
    16gb
    i'm actually curious about this, i've set my gpu to IRQ 16, i know there are several other values, but what exactly would a value of 16 do compared to one that is higher like 20-30?
     
  3. EdKiefer

    EdKiefer Ancient Guru

    Messages:
    3,128
    Likes Received:
    394
    GPU:
    ASUS TUF 3060ti
    You would be better off setting GPU into MSI mode so no sharing with any other IRQ.
     
  4. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,543
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
    How exactly have you set GPU to IRQ 16?
     

  5. Smough

    Smough Master Guru

    Messages:
    984
    Likes Received:
    303
    GPU:
    GTX 1660
    30 us isn't a latency spike at all. Anything below 150-200 is fine, below 100 is optimal, there will be spikes; even at idle to over 100 at times, it's normal, Windows is like this, it does background stuff so that leads to spikes sometimes. But it does not really affect games unless they were 1000us constant spikes. However, 30 us for USB seems a bit high, since on my 1809 Windows is only 5, spikes to 10-15 if I move the mouse very quickly, but nothing strange. Still, as I said, 30 is something you will never notice.

    You can get low latencies by disabling services, using MSI modes and using bcdedit tweaks, but I am still not sure if they are good for gaming, but 100% these 2 do lower DPC latency a bit more.

    Open CMD as admin and type in: (Press enter after doing each command).

    bcdedit /set useplatformtick yes

    bcdedit /set disabledynamictick yes

    Then reboot.

    To undo them, open CMD as admin again and type in:

    bcdedit /deletevalue useplatformtick

    bcdedit /deletevalue disabledynamictick


    And reboot.

    Try them and see if they make any difference, if they don't, return to stock settings.
     
    Last edited: Oct 19, 2020
  6. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,543
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
    @Smough
    Check your post for typo :cool:
     
    Smough likes this.
  7. klunka

    klunka Member

    Messages:
    37
    Likes Received:
    6
    GPU:
    1080ti / 11gb
    I'm not looking for ways to lower my latencymon numbers. In the OP i already wrote how I can completely remove the spiking by changing GPU affinity mask.
    I want to figure out why this is happening....why is nvlddmkm not spreading DPCs, no matter the affinity mask or interrupt steering I set? Why is my usb driver affected by gpu affinity masks that seemingly make no difference?

    It's a long shot to ask. Probably noone here can recreate this issue which makes it even harder to find an answer. I appreciate the discussions anyway!
     
  8. BlackNova92

    BlackNova92 Master Guru

    Messages:
    206
    Likes Received:
    13
    GPU:
    16gb
    sorry i'm stupid, i meant my system not gpu, i still had gpu in mind because of my issues with it. whoops.
     
  9. janos666

    janos666 Ancient Guru

    Messages:
    1,648
    Likes Received:
    405
    GPU:
    MSI RTX3080 10Gb
    The question remains (and only get wirder): How did you set your system IRQ to 16? (Hint: there is no such thing as system IRQ)
    Did you find some IRQ settings in your UEFI Setup?
     
  10. EdKiefer

    EdKiefer Ancient Guru

    Messages:
    3,128
    Likes Received:
    394
    GPU:
    ASUS TUF 3060ti
    Hehe, that brings back memories with an old 440BX MB were you could set device IRQ so no sharing in OS, I think that was around the W95-98 timeline :)
    But yeah, there no "system" device, only the system process.
     

  11. janos666

    janos666 Ancient Guru

    Messages:
    1,648
    Likes Received:
    405
    GPU:
    MSI RTX3080 10Gb
    I can still set the IRQ of the serial port (SuperIO) on my Z370 board. And there is an option which controls some similar parameters (some resource allocation limit or such, I can't recall the name) which might be confused with IRQs by some at first glance (even though that's something else).
     
  12. BlackNova92

    BlackNova92 Master Guru

    Messages:
    206
    Likes Received:
    13
    GPU:
    16gb
    i was talking about this thing here: "Win32PrioritySeparation"=dword:00000016
    it might be something completely different, i think IRQ8Priority set to enabled via reg.(i think i meant that), must have mixed things up on my end, sorry about that.
     
  13. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,543
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
    https://docs.microsoft.com/en-us/previous-versions//cc976120(v=technet.10)?redirectedfrom=MSDN

    https://medium.com/@dikrek/processo...ndows-and-a-bit-about-unix-linux-fb5ab02828e2

    I would suggest to you to not waste your time with this...

    PS And has nothing to do with interrupts.
     
    Last edited: Oct 19, 2020
  14. BlackNova92

    BlackNova92 Master Guru

    Messages:
    206
    Likes Received:
    13
    GPU:
    16gb
  15. hemla

    hemla Master Guru

    Messages:
    239
    Likes Received:
    27
    GPU:
    nvidia
    I have pushed usb3 controller and GPU to CPU(2,3). Didn't notice much except for LatencyMon changes. Would pushing Realtek HD Audio(x2) and Relaltek Network Controller away from CPU(0,1) be good? Those two front cores(0,1) are being used most of time on my system.
     

  16. Smough

    Smough Master Guru

    Messages:
    984
    Likes Received:
    303
    GPU:
    GTX 1660
    I'd just change USB affinity and GPU affinity, the rest does not matter that much. I have my USB set to Core 3 and Thread 3 and my GPU set to Core 4 and Thread 4. Works nicely that way and lowers DPC latency numbers a bit, but it's not anything dramatic. 5 microseconds at much, but hey, if you can get any performance gains from your system and the tweaks are not dangerous, go ahead and try.
     
    Th3Awak3n1ng likes this.
  17. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,543
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
    I am curious what exactly do you mean by "Core 3 and Thread 3"/"Core 4 and Thread 4". I understand what core part is about, but the thread part...
     
  18. bensmooth

    bensmooth Member Guru

    Messages:
    193
    Likes Received:
    38
    GPU:
    3060Ti Elite Rev2
    Method for Users with SMT or Hyper-Threading disabled:
    ==========================================

    Ignore the Error Message and search your AMD or Nvidia Graphic Card inside the Policy Tool
    When you found your Graphic Card click on: Set Mask, ignore the Error Message once again
    and switch your Graphic Card Driver to the 4 core of your CPU. Once you click on apply,
    ignor the Error Message, once again. Now the Interrupr Affinity Policy Tool will do it's magic
    and apply the changes, you have made. In this process your screen will flicker and turn black
    for a few seconds, as the tool is restarting your graphic card driver and also switches your driver
    to your desired cpu core and thread.


    Core and Thread Counting without using Hyper-Threading:
    ==========================================
    CPU 0 = Core 1
    CPU 1 = Core 2
    CPU 2 = Core 3
    CPU 3 = Core 4
    CPU 4 = Core 5
    CPU 5 = Core 6
    .
    .
    .
    and so on

    in this case tick:
    ==============
    [x] CPU 3 (Core 4)








    ==========================================
    Method for Users with SMT or Hyper-Threading enabled:
    ==========================================

    Ignore the Error Message and search your AMD or Nvidia Graphic Card inside the Policy Tool
    When you found your Graphic Card click on: Set Mask, ignore the Error Message once again
    and switch your Graphic Card Driver to the fitth core of your CPU and fifth Thread. Once you
    click on apply, ignor the Error Message, once again. Now the Interrupr Affinity Policy Tool
    will do it's magic and apply the changes, you have made. In this process your screen will
    flicker and turn black for a few seconds, as the tool is restarting your graphic card driver and
    also switches your driver to your desired cpu core and thread.


    Core and Thread Counting with enabled Hyper-Threading::
    ==========================================
    CPU 0 = Core 1
    CPU 1 = Thread 1
    CPU 2 = Core 2
    CPU 3 = Thread 2
    CPU 4 = Core 3
    CPU 5 = Thread 3
    CPU 6 = Core 4
    CPU 7 = Thread 4
    CPU 8 = Core 5
    CPU 9 = Thread 5
    CPU 10 = Core 6
    CPU 11 = Thread 6
    .
    .
    .
    and so on

    in this case tick:
    ==============
    [x] CPU 8 (Core 5)
    [x] CPU 9 (Thread 5)
     
    babyboom666 likes this.
  19. Smough

    Smough Master Guru

    Messages:
    984
    Likes Received:
    303
    GPU:
    GTX 1660
    Sorry for late reply. On the Affinity Program for the CPU, it says Core 1 to Core 8. On CPU's with HT, Core 1 and Core 2 would be core 1 and thread 1 and so forth, so that's what I did with the CPU affinity.
     
  20. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,543
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
    And you see there writings "Thread 1", "Thread 2"? I mean is it official term? Because from Windows point of view there are no "Thread #", there are only CPUs.

    PS Or is it invented by users to decrease confusion with SMT processors?
     
    Last edited: Nov 7, 2020

Share This Page