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

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

  1. alexander1986

    alexander1986 Master Guru

    Messages:
    201
    Likes Received:
    21
    GPU:
    RTX 2060
    for anyone else who maybe tried alraedy

    yo, good to know :p

    regarding useplatformclock, yeah I have tried all combinations and seem to have settled on hpet off in bios and value deleted from bcdedit,
    something like this summary also seems to correspond with my testing:


    TSC+LAPIC - Seems to cause no latency or stutter, input and output are smooth
    High Precision Event Timer: Disabled
    bcdedit /deletevalue useplatformclock


    LAPIC - Seems to cause stutter but no latency
    High Precision Event Timer: Disabled
    bcdedit /set useplatformclock true


    TSC+HPET - Seems to cause latency and stutter
    High Precision Event Timer: Enabled
    bcdedit /deletevalue useplatformclock


    HPET - Seems to cause latency but no stutter, input and output are very, very smooth
    High Precision Event Timer: Enabled
    bcdedit /set useplatformclock true


    for different systems/people maybe experience will vary, IDK :p


    I wanted to ask you man though about your msi mode utility v2 app, is it good idea to set all the devices there to high interrupt priority ? SATA controller already is set to high interrupt priority by default btw, but how about setting also my nic/gfx/usb/sound to high interrupt prioirity ? will this cause some conflict of too many devices in high priority and better to set only maybe usb+gfx on top of the SATA in high ? and so on, if you have any idea!

    last question I would want to ask you is about the tscsyncpolicy , this setting I havent touched so far and not researched a lot either, any experience with using enhanced/legacy values instead of default in bcdedit? any difference if so between them? thanks a lot :p
     
  2. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,541
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
    Again, I can only speculate. Conflict of interrupts from several devices set to high priority is possible. And the more devices the more probability.
    I suspect there is no reason (aside from troubleshooting) to switch video- and sound-cards to high priority - these are not input devices (well I have no microphone).


    I am too lazy to try all known BCD tweaks. Plus I don`t really have any problems with devices and with games. Except for one game, which was (accidentally) fixed with the timer resolution tweak.
    If I was a developer from MS kernel team... :cool:

    PS
    I find these descriptions inaccurate, but that is the subject of another thread, and you don`t really need to have accurate picture since you tested all combinations and chose the one suited for your rig.
     
    Last edited: Mar 7, 2019
    alexander1986 likes this.
  3. alexander1986

    alexander1986 Master Guru

    Messages:
    201
    Likes Received:
    21
    GPU:
    RTX 2060
    indeed :p for me hpet off in bios is certainly the best in terms of raw mouse input feel/responsiveness atleast,


    now the rest of the combinations I cant personally say make a big difference in terms of input atleast :S but using TSC whenever possible should give the least overhead/latency no? and if im not mistaken (could very well be) deleting useplatformclock from bcdedit or setting it to no/false will use TSC whenever possible? or deleting it will make windows decide and setting to no/false will force always TSC?


    for the record - setting my gfx card to msi mode and interrupt to high prio on it made a very noticeable improvement for me in my test routine I always do when testing new settings! so went ahead and set rest of devices to high prio aswell in your app, no negative effects and feels really good, will keep it like this for now :p latencymon looks better too !
     
  4. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,541
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
    We only know for a facts that:
    - setting to "yes" we force Windows to use so called platform clocks for the implementation of QueryPerformanceCounter API function;
    - setting to "no" we forbid Windows to use so called platform clocks for the implementation of QueryPerformanceCounter API function;
    - not setting to "no" or "yes" we let Windows to decide which clocks (or counters) to use for the implementation of QueryPerformanceCounter API function.

    That`s it. And we know about existence of some clocks/counters - TSC, LAPIC, HPET. But I would not bet anything that these are the only ones. Who knows what CPU and chipset manufacturers create in their labs.

    Update: And do not forget, that the behaviour in question was changed from version to version, and can change again.


    Good. But, for the sake of the methodology, you should test each tweak (step, setting) in isolation from others. Like: turn high priority for the device - test - save the results - revert back - test - compare two results; turn device into MSI mode - test - save - revert - test - compare two results; ... If you turned all devices into MSI mode and turned high priority for all at once - you have skipped several combinations and can`t be sure that comparing only two results of "all off" and "all on" you found the best combination because you have not tried several ones.
     
    Last edited: Mar 7, 2019
    alexander1986 likes this.

  5. alexander1986

    alexander1986 Master Guru

    Messages:
    201
    Likes Received:
    21
    GPU:
    RTX 2060
    @mbk1969


    another question, what is difference if any between undefined interrupt priority and normal for example? :p
     
  6. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,541
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
    Undefined - let Windows and device manufacturer decide the priority. Normal - force the priority.
     
    akbaar and alexander1986 like this.
  7. alexander1986

    alexander1986 Master Guru

    Messages:
    201
    Likes Received:
    21
    GPU:
    RTX 2060

    another question if you have any idea about it, right now I have keyboard on usb3 controller and mouse on usb2, both are set on high interrupt prio but only usb3 supports msi mode on my pc,

    was wondering, I put kb and mouse separate since I read somewhere this is good if mouse is running at 1000hz for example or atleast better in theory to separate them, and also that usb2 better for mouse since if you put a usb2 mouse on usb3 port it could possibly be some added latency from the usb3 running in legacy mode or backwards compatibility mode for non usb3 devices?

    maybe no issue for keyboard but perhaps noticeable for mouse? then there is also the bios options like legacy usb and stuff, do these change mouse feeling you think? lol, that I have not tried anyway but have read about it, atleast I tested some combinations of mouse+kb together on usb2/3/separated etc, and kind of feels very slightly more floaty mouse feeling when its on usb3 port, could be placebo,


    but anyway, if you have any experience with this would be awesome to know, cheers !
     
  8. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,541
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
    @alexander1986

    I am not sensitive to all these minor mouse changes, so I have never experimented. Due to that I never put mouse to 1000Hz polling. I am fine with 500Hz and 250Hz.
    I connect both keyboard and mouse to 3rd party USB3 controller (ASMedia). Since USB3 is improvement over the USB2 it can be that legacy mode is improved as well.


    I have impression that legacy USB stuff in BIOS does with USB storage mostly, not with mouse and keyboard.
     
    alexander1986 likes this.
  9. alexander1986

    alexander1986 Master Guru

    Messages:
    201
    Likes Received:
    21
    GPU:
    RTX 2060
    I see I see, atleast my mouse, logitech g400s defaults to 800dpi 1000 hz without drivers so thats what I run it at, don't like to use logitechs drivers for some reason to change anyway,

    If I disable usb2 and only use the usb3 in msi mode the ISR meter in latency mon always stays at 0.0, this is if I also have gfx card in msi mode, if I enable usb2 and set mouse there for example ISR meter in latency mon will give like 4-60 us value or so on usbport.sys if I move mouse while measuring, doubt this matters in terms of mouse responsiveness while gaming tho, or? :p
     
  10. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,541
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
    60 microseconds is good. But if for some reason it starts to matter, you can adapt since you are aware of all these nuances. Knowledge rules.
     
    alexander1986 likes this.

  11. Calypto

    Calypto Guest

    Messages:
    1
    Likes Received:
    2
    GPU:
    GTX 970
    I'm not quite sure that's right.

    TSC (give or take whatever your clock speed is, but MHz), HPET forced off - lowest latency, may be unsmooth because it's not a fixed clock
    High Precision Event Timer: Disabled
    bcdedit /deletevalue useplatformclock

    TSC with HPET available to programs that need it (default on 1803 and lower)
    High Precision Event Timer: Enabled
    bcdedit /deletevalue useplatformclock

    ACPI PMT (~3.579 MHz) - Lower latency than HPET but still has the benefit of being a fixed clock (smooth), may cause stuttering in certain games like GTA V, lower FPS and higher latency because the timer is not in the CPU
    High Precision Event Timer: Disabled
    bcdedit /set useplatformclock true

    HPET (~14.318/24MHz) - Highest latency, lowest FPS, in my experience PMT is smoother with better FPS and latency
    High Precision Event Timer: Enabled
    bcdedit /set useplatformclock true

    Windows 1809+ (10Mhz) (TSC with software clock layered to mitigate against Spectre)
    I've not found a way to circumvent this clock other than by using ACPI PMT or HPET. Many motherboard manufacturers don't have an HPET toggle so you're stuck with the slow HPET instead of faster PMT.

    Results vary based on chipsets and manufacturers (Intel/AMD). I've found that having HPET off and /deletevalue causes video playback to stutter on my system.
     
    Last edited: Dec 2, 2019
    Smough and Blackfyre like this.
  12. EDK-Rise

    EDK-Rise Active Member

    Messages:
    54
    Likes Received:
    13
    GPU:
    AsusStrixTop 6900XT
  13. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,541
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
  14. EDK-Rise

    EDK-Rise Active Member

    Messages:
    54
    Likes Received:
    13
    GPU:
    AsusStrixTop 6900XT
    yes i installed driver. but not from that link. my mobo (MSI Z270-M7) has two ASmedia usb 3.1 2142 controller and Intel USB 3.0.that asmedia usb 3.0 is integrated in my PCI_E sound card asus dlx raid.
     
  15. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,541
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
    Then I would not advise to connect something permanent to that integrated controller.
     

  16. EDK-Rise

    EDK-Rise Active Member

    Messages:
    54
    Likes Received:
    13
    GPU:
    AsusStrixTop 6900XT
    i can't connect any thing to that.. my sound card has usb 3.0 controller inside it and it using itself!
     
  17. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,541
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
    If you switch view in Device manager to "devices by connection" will there any devices dangling on that internal USB3 controller?
     
  18. EDK-Rise

    EDK-Rise Active Member

    Messages:
    54
    Likes Received:
    13
    GPU:
    AsusStrixTop 6900XT
    no there wasn't there.
    http://prntscr.com/n5l3ig
     
  19. alexander1986

    alexander1986 Master Guru

    Messages:
    201
    Likes Received:
    21
    GPU:
    RTX 2060

    interesting! my motherboard has a hpet toggle but will upgrade soon, will see how it looks on the new system :p

    appreciate the information anyway!
     
    Last edited: Apr 6, 2019
  20. Matrixqw

    Matrixqw Guest

    Messages:
    9
    Likes Received:
    0
    GPU:
    GTX 260 1GB
    Ethernet RSS in line mode can use more than one cpu core ?
    I would think so, but I have no idea.

    Ethernet RSS in msi mode can use more than one cpu core with messagenumberlimit 1 ?
    I don't think so because RSS queues (ethernet properties) creates x ethernet devices, wich would be one for each core.
     
    Last edited: Apr 10, 2019

Share This Page