Windows: Line-Based vs. Message Signaled-Based Interrupts. MSI tool.

Discussion in 'Operating Systems' started by mbk1969, May 7, 2013.

  1. mbk1969

    mbk1969 Ancient Guru

    Messages:
    12,283
    Likes Received:
    10,381
    GPU:
    GF RTX 3060TI
    It is simple - you switch MSI mode on and if device doesn't work you switch it back.
    Killer NICs have very bad reputation in my world - I have seen so many troubleshooting requests about them (and solution was namely in messing with their drivers). But again - switch-test-revert-if-something-is-wrong.

    PS And I just noticed that you have changed the priorities of almost all devices to High - against the advises in this thread. It is OK if you see a good difference, but that approach violates the logic of testing - one step per test. Have you changed the priority one by one with tests between?

    PPS You can omit the Latencymon from the screenshots, or at least show the page with details about ISRs - that`s what is affected by MSI mode tweak.
     
    Last edited: Mar 18, 2020
  2. roflmaooo

    roflmaooo New Member

    Messages:
    2
    Likes Received:
    0
    GPU:
    GTX 1080 8Go
    hi just a message to say with windows 10 my realtek lan controller (msi b450 gaming plus) have msi mode on by default and it cause fake input, teleport with mini lag in online games (stable ping /stable speed)
    msi mode turned off = perfect
     
  3. Astyanax

    Astyanax Ancient Guru

    Messages:
    13,254
    Likes Received:
    5,212
    GPU:
    GTX 1080ti
    Thats because they're Atheros based :oops:
     
  4. franpa

    franpa Active Member

    Messages:
    58
    Likes Received:
    0
    GPU:
    Gigabyt 760 4GB WForce x3
    Should Limit and Max Limit be changed when applying MSI to Nvidia graphics drivers? I'm using a Geforce 1070Ti and the application defaults to blank minimum and a maximum of 1.
     

  5. EdKiefer

    EdKiefer Ancient Guru

    Messages:
    2,757
    Likes Received:
    301
    GPU:
    MSI 970 Gaming 4G
    IMO, leave it all alone, just switch to MSI on, then if you like you can test priority higher but do so very limited per device.
    Do one change at a time and test, if not different then leave as it was.
     
  6. ylpkm

    ylpkm New Member

    Messages:
    6
    Likes Received:
    1
    GPU:
    Nvidia 1080ti
    It can be good to challenge certain methods and suggestions (because operating systems are complex systems and any set of components can be rewritten and further optimized), but I agree with mbk on this. From my observations, just having my usb host controller (for my mouse) and 1080Ti set to High priority and everything else to Undefined or Normal, reduced TimerBench fps and increased frametime variance. I also tried with my NIC set to High in addition and my primary ssd sata controller later as well, I didn't like it.

    FPS gaming felt "off". I don't have quantifiable evidence in game for input delay/rendering pipeline congestion (and my major is EE not CS, so I'm probably incorrect in my explanation), but I would describe it as the higher priority of the usb controller/mouse and gpu would cut off some processing time from the NIC or at least put it later in the execution chain. As though it would take my mouse input, render the image, and at the end send data packets, rather than take mouse input, send packet, render image. (If only my main pc title could be debugged/monitored with nsight or something similar to confirm my suspicions.)

    If I recall correctly from a microcontroller course, an interrupt "pauses" the active code loop, to go and execute something else, then returns where it left off. On something much more complex like a multicore pc with tons of gpio connections and process threads, I'm sure (as my professor always said) "everything's the same, but a little bit different." So also consider the opposite side of this tweak, a higher interrupt priority can be detrimental due to more frequent stopping of the current task to move data to/from gpu or whatever devices are High. I presume if this is the case, stopping the cpu from its current task, to take on a new short task could potentially push data out of the cpu cache (l1>l2>l3>l4/Ram) congesting the processing pipeline because now that there is a page miss, you eat the delay and have to try to access the required data again. But this is an interconnected system, you may have gotten the data to/from the mouse or gpu, etc, a little bit faster, at the cost of potentially slowing down everything else in the chain. I know there's much more under the hood and that applications themselves have an order; the gpu rendering pipeline has its own order/structure. And if you delay the cpu to the point where there is measurable frametime variance, you also have delayed the gpu because the gpu needs the frame from the cpu to do its job (afaik).

    This is why I presume people have suggested to not set every device to High priority or have suggested to have as little as possible set High. It congests the few devices that really should have access when they are called.

    Like Sata controllers, because windows accesses the disk like every second or two if chrome is open (Go open perfmon and observe disk usage). But getting the data you need, game assets, pagefile access, etc, when the cpu calls for it, is important. Why? Cpu optimizations, like Prefetching, indirect branch prediction, etc, have their own order and if you rearrange the order so other devices take precedence rather than the cpu optimizing the workload, it can cause negative results that are require more investigation than just "it feels better". You might be feeling a small increase in mouse and graphics smoothness, you might be looking at the fps and noticing it hits a slightly higher fps peak than before, but are you hooking the application with a debugger to see the actual flow of the I/O and rendering pipeline? The fps peak boost may very well be real, but in that time your cpu and gpu pushed out the extra frames, what other device was put on hold? And this can be different for any application. Dx11 vs Dx12 vs Vulkan, Mantle,Metal, whatever have their own order, and their own optimizations and weaknesses. Setting the interrupts high for dx12 games may have awesome results, where dx11 titles suffer due to its draw call limitations and cpu<->gpu congestion.

    Like the network adapter, because like disks, it gets the data you need to move forward, you need the get the data of whats changed in game and you need to update the game server with your actions. Typically only these two things are set high priority from a clean install in my experience. But it's understandable that data retrieval and network communication take precedence, it's pretty much required for any app, you need access to/from the data. Plus you need to be able to move certain data first. For instance, say my ping/rtt time is 70ms, and I'm gaming at 300fps. 1/300=3.3ms. If you're stable at 300fps, every frame should be pushed out every 3.3ms (this varies, in actuality, and is hard to get exact and true values as measuring/logging these metrics can add variance and delay. Some frames are simpler than others, and some more complex, but the gpu has its own order in trying to maintain a stable output.) What's more important to deliver first, a packet that has 70ms of travel time to the server, or a completed frame that goes straight to your monitor every 3.3ms? So say you have everything set to high, normally if devices are called the priority hierarchy allows data setters and getters to go first, get the data you need for the future first and send data via network first. Now with everything high, which device gets priority? I actually don't know the answer. If someone knows, please share. Does the decision get offloaded to the application, does the cpu have instructions to pull data and attempt optimizations first? So now rather than accessing data and sending packets, you might be busy getting those extra 5 fps, wow, so smooth, the mouse glides now... but are you still getting headshots? Yeah, well cool, I'm glad you've put time and energy into something and you feel that it has paid off. No? It's a give and take kind of tweak? Most are...

    No one knows exactly what you want or every detail regarding your hardware,software, and how you interact with said hard/software. From my experience, some tweaks or suggestions can be wholly beneficial (Stable tight ram overclocks on Zen2), some can be detractory (Changing windows timer), and some shift the balance/order of a system that has some degree of flexibility, and with the latter only you can determine whether the change is worth it (unless the nerd has the same setup which magically works identically to yours and they debug the app before and after the tweak and prove you wrong). There's 2 Russian proverbs I'm trying to recollect, and I'm paraphrasing it at this point:

    "Don't go to someone else's with your own rulebook."

    "There's always another (critical) detail (you are not yet aware of)." Usually expressed upon self reflection and hindsight.

    But if I'm off base, correct me while educating me and maybe everyone will learn something. I'm here to learn.


    I agree. Generally setting msi mode to on will be beneficial. Sometimes (rarely) it can cause problems. But generally, in every case so far on my personal setups, it has been beneficial to simply turn MSI mode on. And MAYBE changing the interrupt message limit, but this varies depending on the device, its own configuration (whether it actually supports more message interrupts), and overall system specs. Just recognize that a higher interrupt priority isn't a good or bad thing by itself, it's one part of a system, a complex system that generally one single person does not fully understand inside and out. Unless you can verify the tweak is beneficial through something as thorough as debugging, tracing, logging everything, it will simply be a blind test based on feeling or a skewed metric due to a device now having a higher priority.

    If you want windows to feel faster, you can always shorten the animation delay of popups and windows minimizing and opening. Want higher fps? Overclock the cpu, ram, gpu. Its amazing how much performance can be squeezed out of some setups, when you push everything to the limit.
     
    Stefan Ganderils likes this.
  7. franpa

    franpa Active Member

    Messages:
    58
    Likes Received:
    0
    GPU:
    Gigabyt 760 4GB WForce x3
    If a device supports MSI does increasing the Message Interrupt Limit potentially introduce instability, driver no longer loading and/or just performance loss?
     
  8. mbk1969

    mbk1969 Ancient Guru

    Messages:
    12,283
    Likes Received:
    10,381
    GPU:
    GF RTX 3060TI
    If device uses multiple MSIs you will see in Device Manager multiple instances of IRQs for that device (one IRQ is one MSI) - that`s when limit value comes into consideration (you can limit the number of IRQs for such device). When device uses single IRQ then either this device does not utilise multiple MSIs or it is already limited by the setting in question.
     
  9. Gedza91

    Gedza91 Member

    Messages:
    12
    Likes Received:
    3
    GPU:
    Gtx 750 Ti 2GB
    Hi to all! Im new in this world of MSI mode,and im wondering if i can solve Audio cracking sound,sttutering in games. Im using Windows 10 Pro,and problems just getting worse with sound,i cant watch youtube at 1080p now. Everything goes laggy. I didnt have this problem before. No malwares on PC,all drivers is updated. So i have question,can i enable MSI mode on my Pc parts? Here is the image of mine situation on MSI utility software : https://ibb.co/GpztBj1
     
  10. narukun

    narukun Master Guru

    Messages:
    217
    Likes Received:
    24
    GPU:
    EVGA GTX 970 1561/7700
    Sorry to make this question since a lot of people probably already did, but which settings are the best for you guys? for games mostly

    https://imgur.com/a/zYXX94Z
     

  11. mbk1969

    mbk1969 Ancient Guru

    Messages:
    12,283
    Likes Received:
    10,381
    GPU:
    GF RTX 3060TI
    Turn MSI on for all devices with "MSI" in supported modes column (and reboot). Judging by the listed hardware you have ancient rig. I would disable unneeded services and background apps - to lower the load on the CPU. Also there is a possibility that some of the drivers behave wrong - you can research that with the help of this https://forums.guru3d.com/threads/simple-way-to-trace-dpcs-and-isrs.423884/

    All devices are in MSI mode and priorities are at default states - if you have no issues in games then do not touch anything.
     
  12. Gedza91

    Gedza91 Member

    Messages:
    12
    Likes Received:
    3
    GPU:
    Gtx 750 Ti 2GB
    Man,you saved my life! I will report if i solved the issue by doing like you said to me.
     
  13. Gedza91

    Gedza91 Member

    Messages:
    12
    Likes Received:
    3
    GPU:
    Gtx 750 Ti 2GB
    Msi mode done. PC boot properly but audio stuttering still here. I disable all enchentments in sound option,and i put to cd quality bitrate (i heard the lowest can solve prob). Youtube at 1080p still stuttering and lag whole pc (cpu usage higher then normal). So the problem are not solves yet. I will try to detect which drivers cause this problem with your suggestion. I will report back after more investigation.
     
  14. Astyanax

    Astyanax Ancient Guru

    Messages:
    13,254
    Likes Received:
    5,212
    GPU:
    GTX 1080ti
    sounds like IO errors.
     
  15. mbk1969

    mbk1969 Ancient Guru

    Messages:
    12,283
    Likes Received:
    10,381
    GPU:
    GF RTX 3060TI
    @Gedza91

    I just noticed that there is no network controller in your screenshot of MSI tool. Do you use USB dongle for Internet? If yes, then it is very unlucky for your rig because it has no USB3 controllers.
    You wrote about poor performance at YouTube videos, but have you tried to view locally saved videos? If your Internet connection is poor then local playback should be stutter-free.

    PS If your rig is not a laptop then you can purchase PCI-E card with USB3 controller.
     

  16. Nguyen Trong Tinh

    Nguyen Trong Tinh New Member

    Messages:
    4
    Likes Received:
    0
    GPU:
    Nvidia GTX 1050 4GB
    test.jpg
    this is mine from my laptop, what should i have to do with it ? how about limit box and interupt priority ?
     

    Attached Files:

  17. ppdemo

    ppdemo Member

    Messages:
    22
    Likes Received:
    0
    GPU:
    gtx 1080
    what is the latest version? Does it still work with windows 10 in April 2020?
     
  18. EdKiefer

    EdKiefer Ancient Guru

    Messages:
    2,757
    Likes Received:
    301
    GPU:
    MSI 970 Gaming 4G
    Version 2 link is in the first post, it works fine in 1909 here.
     
  19. mbk1969

    mbk1969 Ancient Guru

    Messages:
    12,283
    Likes Received:
    10,381
    GPU:
    GF RTX 3060TI
    Usually NVMe and SATA controllers are set to high interrupt priority (by default). If you do not use SATA disks then you can disable SATA controller.
    Also I see both network controllers active - Ethernet and Wireless - you can disable unused one.
     
  20. EdKiefer

    EdKiefer Ancient Guru

    Messages:
    2,757
    Likes Received:
    301
    GPU:
    MSI 970 Gaming 4G
    I notice he has a few devices in MSI mode but doesn't show check-marked and no info on these devices (supported modes).
     

Share This Page