Overclock.net - An Overclocking Community - Reply to Topic

Thread: USB polling precision Reply to Thread
Title:
Message:

Register Now

In order to be able to post messages on the Overclock.net - An Overclocking Community forums, you must first register.
Please enter your desired user name, your email address and other required details in the form below.
User Name:
If you do not want to register, fill this field only and the name will be used as user name for your post.
Password
Please enter a password for your user account. Note that passwords are case-sensitive.
Password:
Confirm Password:
Email Address
Please enter a valid email address for yourself.
Email Address:

Log-in


  Additional Options
Miscellaneous Options

  Topic Review (Newest First)
12-04-2019 06:13 AM
empl
Quote: Originally Posted by x7007 View Post
I literally just gave the program from Microsoft to do the affinity change specific to the Drivers. and you should do it even with 4 Cores because Core0-1 has too much on it.

And you see the different load in LatencyMon on the CPU tab. clearly Core0 20.000 while others are 5.000 instead Core0 100.000 other cores 20.000 is a big improvement.
That's interesting, but it doesn't mean system will always abide by these settings, as latmon expert said it can be ignored at driver/hardware level. I know what you mean. I already tried that in past, but i didn't see change, i tried put gpu on all cores. But still it may be good tweak, what if it works in some cases. People were saying about certain things it doesn't work, while it seemed to work. Like about putting gpu to msi-x, nvidia dev said it shouldn't have any effect, but i can clearly tell difference in input lag. Yeah i too have 90% of interrupts on core 0 from short test, which is strange - given i have everything in msi-x except usb, so drivers should utilize multicore. I will test it once again and see if it helps.

Problem is i don't see how many dpc calls come from specific driver on each core. I can see only overall count of dpc calls on each core and which driver had highest execution time on specific core. So only way too see if it helped i guess is look for overall highest execution time, if it lowers. How do you measure if it helps ? After i set gpu in regedit to IrqPolicyAllProcessorsInMachine to 3 in hexadecimal, i didn't see much more interrupts on other cores.

I have so contradictory results, overall latency is great only 400 max after 20 minutes of testing for nvlddmkm.sys, which is usually at least 700. Again these results can vary, it is hard to test. But other cores are still barely touched, core 0 - 353k dpc calls, core 1 - 23k, others 700-5000, barely touched. And i set it in enum, under affinity policy for my gpu hardware id, so i don't think i set it wrong.

I would like to have interrupts spread evenly on all cores, despite i have everything in msi/ msi-x mode, i have still 90% of interrupts on core 0 and setting core affinity in registry didn't help much.
11-30-2019 06:53 PM
x7007
Quote: Originally Posted by empl View Post
Yeah, if you have like 16, or 32 cores, thats good thing to do theoretically. Problem is expert from latmon, said interrupt affinity can be ingored, on driver, or hardware level, so it doesn't always work. Also most of drivers should use msi, or msi-x, so they should use all, or multiple cores and spread evenly... Still if you have like 16, or 32 cores, if you could reserve for interrupts some, it would be good. I can't otherwise see how many cores each driver using, latmon shows only one driver with maximum latency per core. Maybe it is possible somehow, don't know about such feature in latencymon.



I get like highest 700 on nvddklm.sys or how it calls - nvidia drivers and usb i have usually 80, when maxing polling rate, one time i run that i got spike to 200 for some reason, both in mouse tester and latmon i have 80 usually when moving mouse a lot. Overall latency is in green and quite low, slightly increases when i switch into game, from only thing i get most dpc latency is usb, because it won't work in msi-x mode on my motherboard. Still i have everything tweaked and still very low dpc latency.
I got asrock phantom gaming itx/ax, which is supposed to have very low dpc latency even, it is hard to test, because it different on hw and sw configurations. Unfortunately i got bad socket, so i decided to wait for intel 10 gen cpus. I would buy amd, but i need single core performance and it will still max out my gpu so i don't care.



Ye platformclock should be only used for debbuging and you shouldn't force hpet on, but let windows decide based on hpet expert mail conversation - can be found on tweakhound.com write platformclock.

What i did not know about is platformtick (same syntax), which disable synthetic timers and use hpet as timer. Platformcock is counter, for driver and appplications to optimize performance and time out events "says microsoft". I switched on platformtick and mouse feels more accurate, you can try it, for delete i think: deletevalue useplatformtick, again it is on tweakhound.



Why are you measuring polling stability, are you afraid your mouse polling isn't stable. Every good mouse today should have stable 1k, unless it is faulty, or sw bug like in win 8.1, rather measure inteval vs time, which tests when your polls are handled by os, make sure you max out polling rate, aka move mouse quickly in circles and than zoom and check biggest curve's maximum time.

Btw this site contains interesting info about latency etc. https://www.resplendence.com/latencymon Main thins is disable all thottling features in bios and keep cpu in c0 state aka disable idle saver- google it if you don't know what that is. Process lasso can turn it on by app , but than can't restored balanced mode, which is stupid.

Btw manufacturers experimenting with 480 hz monitors and DP has already bandwidth for 1000 hz gaming pog, tho you get barelly 60 fps in some games with 2080 , still on games like cs go it would be epic, if devs upgraded engine. Unfortunately some of most competetive games like sc2, still run only on 60fps.
I literally just gave the program from Microsoft to do the affinity change specific to the Drivers. and you should do it even with 4 Cores because Core0-1 has too much on it.

And you see the different load in LatencyMon on the CPU tab. clearly Core0 20.000 while others are 5.000 instead Core0 100.000 other cores 20.000 is a big improvement.
11-30-2019 06:20 PM
empl
Quote: Originally Posted by x7007 View Post
With the affinity program you need to deselect Core0-1 and leave the others, this way you offload all the processes to other cores because every single crap and driver works on Core0-1 so having it without GPU and USB processing makes it better.
Yeah, if you have like 16, or 32 cores, thats good thing to do theoretically. Problem is expert from latmon, said interrupt affinity can be ingored, on driver, or hardware level, so it doesn't always work. Also most of drivers should use msi, or msi-x, so they should use all, or multiple cores and spread evenly... Still if you have like 16, or 32 cores, if you could reserve for interrupts some, it would be good. I can't otherwise see how many cores each driver using, latmon shows only one driver with maximum latency per core. Maybe it is possible somehow, don't know about such feature in latencymon.

Quote: Originally Posted by Spieler4 View Post
Maybe you got not the best drivers or windows was setup wrong
I try not to get spikes when I dont want them. my latencymon attached
I get like highest 700 on nvddklm.sys or how it calls - nvidia drivers and usb i have usually 80, when maxing polling rate, one time i run that i got spike to 200 for some reason, both in mouse tester and latmon i have 80 usually when moving mouse a lot. Overall latency is in green and quite low, slightly increases when i switch into game, from only thing i get most dpc latency is usb, because it won't work in msi-x mode on my motherboard. Still i have everything tweaked and still very low dpc latency.
I got asrock phantom gaming itx/ax, which is supposed to have very low dpc latency even, it is hard to test, because it different on hw and sw configurations. Unfortunately i got bad socket, so i decided to wait for intel 10 gen cpus. I would buy amd, but i need single core performance and it will still max out my gpu so i don't care.

Quote: Originally Posted by BroadPwns View Post
No HPET switch in bios (most likely ON by default) so only by deleting the useplatformclock the software works properly (reporting 1000Hz +-50Hz). Now a wild part - after deleting the useplatformclock through cmd NieR Automata started to utilize my GPU in constant 99%, instead of jumping 65-90, which results in keeping a nice 57-80FPS instead of getting dips below 40 lol. No changes in Deus Ex Mankind Divided, can't say if there are other changes as I did not test more titles. So just an engine specific issue.
Ye platformclock should be only used for debbuging and you shouldn't force hpet on, but let windows decide based on hpet expert mail conversation - can be found on tweakhound.com write platformclock.

What i did not know about is platformtick (same syntax), which disable synthetic timers and use hpet as timer. Platformcock is counter, for driver and appplications to optimize performance and time out events "says microsoft". I switched on platformtick and mouse feels more accurate, you can try it, for delete i think: deletevalue useplatformtick, again it is on tweakhound.

Quote: Originally Posted by James N View Post
Yep Windows 7 is way better than 10 in that regard, but it doesn't matter since sooner or later everyone has to make the switch to 10. And on 10 you won't ever get a result as good as this
Why are you measuring polling stability, are you afraid your mouse polling isn't stable. Every good mouse today should have stable 1k, unless it is faulty, or sw bug like in win 8.1, rather measure inteval vs time, which tests when your polls are handled by os, make sure you max out polling rate, aka move mouse quickly in circles and than zoom and check biggest curve's maximum time.

Btw this site contains interesting info about latency etc. https://www.resplendence.com/latencymon Main thins is disable all thottling features in bios and keep cpu in c0 state aka disable idle saver- google it if you don't know what that is. Process lasso can turn it on by app , but than can't restored balanced mode, which is stupid.

Btw manufacturers experimenting with 480 hz monitors and DP has already bandwidth for 1000 hz gaming pog, tho you get barelly 60 fps in some games with 2080 , still on games like cs go it would be epic, if devs upgraded engine. Unfortunately some of most competetive games like sc2, still run only on 60fps.
11-28-2019 01:12 AM
numberfive
Quote: Originally Posted by BroadPwns View Post
The end accuracy of mine is perfect and I see no reason to dip into polling voodoo further. I also meant that the software reads properly, not that the score itself is proper.
dude, you did not dip anywhere, you are using default settings (not that there is something wrong with it)
11-27-2019 05:20 PM
Spieler4
Quote: Originally Posted by empl View Post
Is it pci-e card ? Dedicated nic is always better than any pci-e card, because pci-e cards generate high amount of dpc latency. Unless there is a exception and your card is godlike. But i haven't seen yet pci-e card that would be better than dedicated.



Test setting - think it was called inteval vs time, it shows time, in which your polls are being handled by system. This looks like it just shows your polling rate stability.
Also problem is, how do you test this setting objectively, there is not same load, in your system at any time, even in idle there can be small variance and who knows what can affect it. I get like 88us, but sometimes i get spike to 200us as highest execution in latencymon. But you can tell if there would be huge difference.

Btw i am currently thinking, if would be possible stream audio to second pc and render it there, so you avoid dpc latency from sound card. I was looking at couple programs, but not sure if they do what i want. Because sound card makes a lot of dpc latency.
Maybe you got not the best drivers or windows was setup wrong
I try not to get spikes when I dont want them. my latencymon attached
11-27-2019 04:55 PM
BroadPwns The end accuracy of mine is perfect and I see no reason to dip into polling voodoo further. I also meant that the software reads properly, not that the score itself is proper.
11-27-2019 04:28 PM
numberfive
Quote: Originally Posted by BroadPwns View Post
so only by deleting the useplatformclock the software works properly.
no value = default value, so you basically have all the timers enabled and OS chooses which one to use at any given moment.

Quote: Originally Posted by BroadPwns View Post
(reporting 1000Hz +-50Hz)

this is garbage to be honest, it is not "properly"
11-27-2019 08:18 AM
BroadPwns No HPET switch in bios (most likely ON by default) so only by deleting the useplatformclock the software works properly (reporting 1000Hz +-50Hz). Now a wild part - after deleting the useplatformclock through cmd NieR Automata started to utilize my GPU in constant 99%, instead of jumping 65-90, which results in keeping a nice 57-80FPS instead of getting dips below 40 lol. No changes in Deus Ex Mankind Divided, can't say if there are other changes as I did not test more titles. So just an engine specific issue.
11-27-2019 08:04 AM
x7007
Quote: Originally Posted by BroadPwns View Post
I use the USB 2.0 port, 800dpi + 1000Hz polling rate, which is correctly read with HPET off. I bet my ass this software goes monkey **** when HPET is on. I see no reason to tamper with anything as these scores have literally no reflection on reality.

HPET Off in bios and windows Bcdedit useplatformClock?

Please specify
11-26-2019 02:00 PM
BroadPwns I use the USB 2.0 port, 800dpi + 1000Hz polling rate, which is correctly read with HPET off. I bet my ass this software goes monkey **** when HPET is on. I see no reason to tamper with anything as these scores have literally no reflection on reality.
This thread has more than 10 replies. Click here to review the whole thread.

Posting Rules  
You may post new threads
You may post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off