Cool you got any sources to validate this?
Extended understanding of system timers in Windows.
- Tiberiusmoon
- Posts: 147
- Joined: 10 Feb 2023, 05:05
Re: Extended understanding of system timers in Windows.
Microsoft's own internal documentation:
https://learn.microsoft.com/en-us/windo ... ime-stamps
APIC timer: https://wiki.osdev.org/APIC_timer
HPET: https://wiki.osdev.org/HPET
VMWare's Documentation on modern timekeeping: https://www.vmware.com/content/dam/digi ... -guide.pdf
(there are countless publications)
RedHat has a nice little rant about timekeeping sources in x86: https://www.kernel.org/doc/Documentatio ... eeping.txt
Some earlier discussions on drifting TSC;
https://community.osr.com/discussion/84 ... -anomalies
See Intel 64 Architecture SDM vol. 3A, "17.16 Invariant TSC":
On Intel (and moreso AMD); TSC frequency is stable since Nehalem. See Intel 64 Architecture SDM vol. 3A, "17.16 Invariant TSC":
Processor families increment the time-stamp counter differently:
Code: Select all
For Pentium M processors (family [06H], models [09H, 0DH]); for Pentium 4 processors, Intel Xeon processors (family [0FH], models [00H, 01H, or 02H]); and for P6 family processors: the time-stamp counter increments with every internal processor clock cycle. The internal processor clock cycle is determined by the current core-clock to bus-clock ratio. Intel SpeedStep technology transitions may also impact the processor clock.
For Intel Xeon processors (family [0FH], models [03H and higher]); for Intel Core Solo and Intel Core Duo processors (family [06H], model [0EH]); for the Intel Xeon processor 5100 series and Intel Core 2 Duo processors (family [06H], model [0FH]); for Intel Core 2 and Intel Xeon processors (family [06H], DisplayModel [17H]); for Intel Atom processors (family [06H], DisplayModel [1CH]): the time-stamp counter increments at a constant rate. That rate may be set by the maximum core-clock to bus-clock ratio of the processor or may be set by the maximum resolved frequency at which the processor is booted. The maximum resolved frequency may differ from the processor base frequency, see Section 18.18.2 for more detail. On certain processors, the TSC frequency may not be the same as the frequency in the brand string.
The time stamp counter in newer processors may support an enhancement, referred to as invariant TSC. Processor’s support for invariant TSC is indicated by CPUID.80000007H:EDX[8]. The invariant TSC will run at a constant rate in all ACPI P-, C-. and T-states. This is the architectural behavior moving forward. On processors with invariant TSC support, the OS may use the TSC for wall clock timer services (instead of ACPI or HPET timers). TSC reads are much more efficient and do not incur the overhead associated with a ring transition or access to a platform resource.
-
- Posts: 28
- Joined: 23 Jul 2017, 08:19
Re: Extended understanding of system timers in Windows.
What are the optimal settings for an AMD newish system (5800x3d)?
-
- Posts: 24
- Joined: 22 Aug 2022, 08:42
Re: Extended understanding of system timers in Windows.
Hey guys
Wanted to ask if any of you tried these changes and it made valorant run smoother ?
Tried a couple of tweaks so far and the game feels sluggish at some times :/
Wanted to ask if any of you tried these changes and it made valorant run smoother ?
Tried a couple of tweaks so far and the game feels sluggish at some times :/
- Tiberiusmoon
- Posts: 147
- Joined: 10 Feb 2023, 05:05
Re: Extended understanding of system timers in Windows.
Post specs of your system including ram.dannyoceanic wrote: ↑12 Jul 2023, 08:58Hey guys
Wanted to ask if any of you tried these changes and it made valorant run smoother ?
Tried a couple of tweaks so far and the game feels sluggish at some times :/
-
- Posts: 121
- Joined: 08 Jan 2022, 23:43
Re: Extended understanding of system timers in Windows.
noskill wrote: ↑21 Jun 2023, 10:11Tiberiusmoon wrote: ↑14 Jun 2023, 06:05Is there a way to force enable this on windows 10 or 11.ACPI is not really outdated (It's still apart of the ACPI specification). On HAL (Windows 7+), if it detects TSC errata (unable to properly sync, etc), it will drive timekeeping with ACPI (or even LAPIC). It has a 24‐bit counter that increments at 3.579545MHz. Not as bad as the RTC / PIT, though.
- The90sPope
- Posts: 11
- Joined: 06 Jul 2023, 09:42
Re: Extended understanding of system timers in Windows.
kyube wrote: ↑17 Jun 2023, 18:41https://github.com/amitxv/PC-Tuning/blo ... ule-change
Timer res changes don't work on newer windows releases except Server 2022 and W11
https://github.com/djdallmann/GamingPCS ... /README.md
Don't mess with bcdedit, it's not worth it considering the sheer amount of hardware combinations.
Is there a way to still set timer resolution in Win 10 2H22 or is it forced 15ms no matter what?
“Death is a funny thing. Not funny haha, like a Woody Allen movie, but funny strange, like a Woody Allen marriage.”
― Norm Macdonald, Based on a True Story
Re: Extended understanding of system timers in Windows.
Nope, as per this comment from the links above:The90sPope wrote: ↑15 Jul 2023, 16:36kyube wrote: ↑17 Jun 2023, 18:41https://github.com/amitxv/PC-Tuning/blo ... ule-change
Timer res changes don't work on newer windows releases except Server 2022 and W11
https://github.com/djdallmann/GamingPCS ... /README.md
Don't mess with bcdedit, it's not worth it considering the sheer amount of hardware combinations.
Is there a way to still set timer resolution in Win 10 2H22 or is it forced 15ms no matter what?
Meaning you either use pre-2004 builds (such as 1703,1709 or 1803), Server 2022 or W11 22H2 (preferred imo, due to recent high polling rate changes too)After collecting all the kernels from Windows 10 2004 - 22H2 client, LTSC and server editions, I can conclude that the entry only exists in server 2022+ and Windows 11+ and we can test this by checking if the entry can be successfully read, see below for an example. Random observation; the registry key is present and already set to 1 on server 2022+
Server 2022+ and Windows 11+:
lkd> dd KiGlobalTimerResolutionRequests L1
fffff803`444fb5c6 00000000
Any other build:
lkd> dd KiGlobalTimerResolutionRequests L1
Couldn't resolve error at 'KiGlobalTimerResolutionRequests '
- The90sPope
- Posts: 11
- Joined: 06 Jul 2023, 09:42
Re: Extended understanding of system timers in Windows.
Thanks for clarifying it. I though workaround was implemented, but nah.
Timer is dynamic in Windows 10 2H22 when I set it to 0.5ms
It keeps being 15ms and drops to 0.5ms and basically lives its own life. I have no control over it. Setting it to 0.5ms still reduces sleep time by like 0.2ms for me. But it's so small number I don't care about it.
I guess W11 2H22 is the next OS. I hope me ram and cpu overclock is stable on W11, I have little time to tune ram or cpu from scratch again.
Timer is dynamic in Windows 10 2H22 when I set it to 0.5ms
It keeps being 15ms and drops to 0.5ms and basically lives its own life. I have no control over it. Setting it to 0.5ms still reduces sleep time by like 0.2ms for me. But it's so small number I don't care about it.
I guess W11 2H22 is the next OS. I hope me ram and cpu overclock is stable on W11, I have little time to tune ram or cpu from scratch again.
“Death is a funny thing. Not funny haha, like a Woody Allen movie, but funny strange, like a Woody Allen marriage.”
― Norm Macdonald, Based on a True Story
Re: Extended understanding of system timers in Windows.
Ram stability is independent from software. If it's stable on win10 it'll also be stable on 11. If it shows errors in 11 it's because you didn't properly test it/tuned it in the first place.The90sPope wrote: ↑17 Jul 2023, 13:39Thanks for clarifying it. I though workaround was implemented, but nah.
Timer is dynamic in Windows 10 2H22 when I set it to 0.5ms
It keeps being 15ms and drops to 0.5ms and basically lives its own life. I have no control over it. Setting it to 0.5ms still reduces sleep time by like 0.2ms for me. But it's so small number I don't care about it.
I guess W11 2H22 is the next OS. I hope me ram and cpu overclock is stable on W11, I have little time to tune ram or cpu from scratch again.